我需要改进我的代码与MLEADER的工作方式。Entmake可以工作,但我最终得到了2000万行代码。执行mleader命令可以工作,但无法预测,因为其他用户的AutoCAD设置可能与我的不同。根据Lee Mac的建议,我尝试使用AddMLeader方法,但我只找到比entmake过程或代码长的示例,这些示例对我的需求没有用处。当然,当你在AutoCAD或AutoLISP帮助中寻找AddMLeader时,你得到的只是VBA代码。李·麦克在一篇旧帖子中提供了这个,至少我可以让它画一个多重引线,但我也需要一种添加多行文字的方法。此外,这总是将平台拉回左侧。我怎样才能控制那个财产。
我的目标是能够调用这个例程,并将点作为变量传递给它。不需要用户输入,或者在我的情况下,不允许用户输入。
- (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)
- )
|