领导口齿不清
你好我有Lisp程序的这一部分,可以成为领导者。
我使用ACAD 2008/2010。它对我来说是可行的,但当我在办公室的另一个桌面上执行它时,它就不起作用了。
它的行为类似于,它请求lisp中的三个点,但在即将输入文本时停止。
为什么它对我有效,但对他无效。我们使用相同的台式机,相同的ACAD。真奇怪。设置中是否有一些选项可以阻止领导者成功执行?
代码如下:
(defun leader(/ p1 p2 p3)
(setq p1 (getpoint "\nstart point: ")
p2 (getpoint p1 "\nsecond point: ")
)
(grdraw p1 p2 1 1)
(setq p3 (getpoint p2 "\ntext: "))
(command "_leader" p1 p2 p3 "" "" "" "")
(redraw)
) 您最好将引线的设置更改为2点,或者更好地将其包含在代码中,以使其在所有其他Cad引线设置中正常运行。
祝你好运 根据您发布的代码,这*应该*就是您所需要的:
(defun c:FOO (/ p1 p2)
(if (setq p1 (getpoint "\n>>Specify Start Point: "))
(progn
(setq p2 (getpoint p1 "\n>>Specify End Point: "))
(command "._leader" p1 p2 "" pause)))
(princ))
干得好Renderman。
但例程的名称是cad的标准命令之一。加载例程时,cad将从cad的命令开始
根据我前面提到的,该例程还将首先考虑Cad的命令设置,因此如果Qleader的点数被切换到无限制
因此qleader根本不会停止插入文本。
如果你想用的话,这是我的。
(defun c:LEAD (/ p1 p2)
(if (and (setq p1 (getpoint "\n Specify Start Point: "))
(setq p2 (getpoint p1 "\n Specify End Point: "))
)
(command "._leader" p1 p2 "" pause))
(princ)
)
谢谢
谢谢你指出这一点,这是我的疏忽。代码已在我之前的帖子中更正。 不确定您是否需要文本,但我的条目:
(defun c:test ( / p1 p2 ) (vl-load-com)
(if (and (setq p1 (getpoint "\nPick First Point: "))
(setq p2 (getpoint "\nPick Next Point: " p1))
)
(vlax-invoke
(vlax-get (vla-get-ActiveDocument (vlax-get-acad-object))
(if (= 1 (getvar 'CVPORT)) 'PaperSpace 'ModelSpace)
)
'AddMLeader (append p1 p2) 0
)
)
(princ)
)
李,在这里,领导者的“尾巴”总是向左,即使领导者的坡度向右。
我想我把事情搞砸了,还是程序中有错误?
史蒂夫
这是一个非常简单的代码Steve,只是用来创建leader对象的。如果用户要走这条路线,他们必须修改引线以添加文本/更改狗腿方向等。我可以添加更多代码,但我会先看看OP希望以哪种方式继续。 嗯,李。。。这将创建一个多重引线。OP想要一个老式的QLeader。并不是说我不喜欢MLEADER,而是有些人想要旧的类型,因为有些功能不容易使用MLEADER。如果要通过vla AddLeader创建引线实体,首先需要创建多行文字实体,然后将其用作AddLeader方法的参数。或者随后将其添加到引线的注释属性中。 哦,对了,那就忽略我的帖子吧
页:
[1]
2