引线起点
你好大家好,
有没有一条路径可以让引线从文本上的点开始,最后是箭头,因为我在拥挤的文本排列上需要它,如果最后一个点是箭头,很容易排列引线,
非常感谢 大家好,
我附加了一个图像,将由lsp完成,我需要的是
引线将反转起点命令,是否可以设置,
非常感谢
像这样的?
(defun c:Backwards_Leader (/ *error* GetPoints ENT OBJ PTLST UFLAG)
(vl-load-com)
;; Lee Mac~05.03.10
(setq *doc (cond (*doc) ((vla-get-ActiveDocument
(vlax-get-acad-object)))))
(defun *error* (msg)
(and uFlag (vla-EndUndoMark *doc))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(redraw) (princ))
(defun GetPoints (/ lst pt)
(if (car (setq lst (list (getpoint "\nPick First Point: "))))
(while (setq pt (getpoint "\nPick Next Point: " (car lst)))
(mapcar
(function
(lambda (from to)
(grdraw from to 40 1)))
(cdr (reverse (setq lst (cons pt lst))))
(reverse (cdr lst)))))
lst)
(while
(progn
(setq ent (car (entsel "\nSelect Text for Leader: ")))
(cond ((eq 'ENAME (type ent))
(if (eq (vla-get-ObjectName
(setq obj (vlax-ename->vla-object ent))) "AcDbMText")
(if (setq ptLst (GetPoints))
(progn
(setq uFlag (not (vla-StartUndoMark *doc)))
(vla-AddLeader
(if (eq AcPaperSpace (vla-get-ActiveSpace *doc))
(if (eq :vlax-true (vla-get-MSpace *doc))
(vla-get-ModelSpace *doc)
(vla-get-PaperSpace *doc))
(vla-get-ModelSpace *doc))
(variant
(vlax-safearray-fill
(safearray vlax-vbDouble
(cons 0 (1- (* 3 (length ptLst)))))
(apply (function append) ptLst)))
obj acLineWithArrow)
(setq uFlag (vla-EndUndoMark *doc))))
(princ "\n** Object Must be MText **"))))))
(redraw) (princ)) 嗨,李,麦克
请你开导一下,好吗
你为什么用它?
(setq*doc(cond(*doc)((vla get ActiveDocument
(vlax get acad object 1000;Ϩ)Ϩ)
而不是一个简单的
(setq*doc(vla get ActiveDocument(vlax get acad object))) 因此,*doc可以保持全局性,我不必多次调用vlax get acad对象加载。 非常感谢李,
工作正常:) 不客气,维斯塔克,写得很有趣 嗨,李
我写了这段代码,但没有成功
(defun c:drleader()
(setq MS (vla-get-ModelSpace (vla-get-activeDocument (vlax-get-acad-object)) ))
(setq p1 (getpoint "\n Getpoint p1 :"))
(setq p2 (getpoint p1 "\n Getpoint p2 :"))
(setq lst (append p1 p2))
(setq vri (vlax-make-variant
(vlax-safearray-fill
(vlax-make-safearray vlax-VBDouble
(cons 1 (length lst))
)
lst)
)
)
(vla-addleader MS vri nil acLineNoArrow)
(princ)
)
命令:drleader
获取点p1:
获取点p2:;错误:ActiveX服务器返回错误:参数不是可选的
请告诉我修复此代码
非常感谢你。 vla addleader方法的文档有一个小问题,即无法指定空的多行文字参数。您需要指定多行文字对象,然后将其删除。
页:
[1]