669423907 发表于 2018-7-19 12:09:25

请教 entmake 创建 qleader 问题

请教一下,如何用 entmak 创建 qleader,以下哪里错了?
(defun c:13()
(if (setq o(getpoint (strcat"\n请指定引线的箭头位置"))) (progn
(setq b(getpoint o(strcat"\n请指定文字的位置")))
(setq wz "1")
(entmake(list '(0 . "qleader")'(100 . "AcDbEntity")'(100 . "AcDbLeader")'(8 . "4标注")(cons 1 wz)(cons 10 o)(cons 10 b) ) )
) )
)

LPACMQ 发表于 2018-7-19 12:09:26

;;函        数
;;功        能:关联引线+注释
;;方        法:(Cq-Ldr&txt 引线图元 文本图元)
(defun Cq-Ldr&txt (LDR TXT / acaddocumentacadobject annotationobject leaderobj leadertype lst mspace num obj pnts sc x)
(VL-LOAD-COM)
 (setq AcadObject(vlax-get-acad-object)
          AcadDocument(vla-get-ActiveDocument Acadobject)
          mSpace(vla-get-ModelSpace Acaddocument)
        )
        (setq lst(apply 'append(mapcar 'cdr(vl-remove-if-not '(lambda(x)(= 10(car x)))(entget ldr)))))
        (setq num (1-(length lst)))
        ;;; 引线数据
        (setq pnts(vlax-make-safearray vlax-vbDouble (cons 0 num)))
        (vlax-safearray-fill pnts lst)
        ;;;引线类型:acLineNoArrow、acLineWithArrow、acSplineNoArrow 或 acSplineWithArrow
        (setq leaderType acLineWithArrow)
;;附着对象
        (setq annotationObject (vlax-ename->vla-object TXT))
        ;;关联,返回引线对象
        (setq leaderOBJ(vla-AddLeader mSpace pnts annotationObject leaderType))
        ;;修改引线对象比例
        (setq sc(vla-get-ScaleFactor(vlax-ename->vla-object ldr)))
        (vla-put-ScaleFactor leaderOBJ sc)
        (entdel ldr)
)

(defun c:tt()
        (setq p1(getpoint "指定第一点:"))
        (setq ep(getpoint p1 "指定下一点:"))
        (setq Ldr
                (entmakeX
                        (list '(0 . "LEADER")
                                                '(100 . "AcDbEntity")
                                                '(100 . "AcDbLeader")
                                                '(40 . 0.9875)
                                                (cons 10 p1)
                                                (cons 10 ep)
                                                '(-3 ("ACAD" (1000 . "DSTYLE") (1002 . "{") (1070 . 40) (1040 . 1) (1070 . 340) (1005 . "139") (1002 . "}")))
                        )
                )
        )
       
       
        ;;Mtext
        (setq Mtext
                (entmakeX
                        (list '(0 . "MTEXT")
                                                '(100 . "AcDbEntity")
                                                '(100 . "AcDbMText")
                                                '(71 . 7)
                                                '(72 . 1)
                                                (cons 1 "111")
                                                (cons 10 ep)
                        )
                )
        )
        (Cq-Ldr&txt ldr mtext)
        (princ)
)

w245272914 发表于 2018-7-19 16:26:50

道友,我過來幫你頂貼子,希望你能找到你的答案。

LPACMQ 发表于 2018-7-19 18:40:32


(defun c:13()
        (if (setq o(getpoint (strcat"\n请指定引线的箭头位置")))
                (progn
                        (setq b(getpoint o(strcat"\n请指定文字的位置")))
                        (setq wz "1")
                  (command "LEADER" O B "" WZ "")
                )
        )
)

669423907 发表于 2018-7-19 19:12:48

LPACMQ 发表于 2018-7-19 18:40
(defun c:13()
        (if (setq o(getpoint (strcat"\n请指定引线的箭头位置")))
                (progn


首先非常感谢你的回复,command我知道,只是想用 entmake 创建

669423907 发表于 2018-7-19 19:15:15

是不是一个 entmake 无法两种不同类型的图元(引线和文字)?
entmake,,,引线
entmake,,,文字
???

namezg 发表于 2018-7-20 01:14:35

entmake可以的,不过麻烦。

669423907 发表于 2018-7-20 08:27:31

namezg 发表于 2018-7-20 01:14
entmake可以的,不过麻烦。

可否来个 史无前例 :lol

669423907 发表于 2018-7-20 09:36:34

LPACMQ 发表于 2018-7-20 09:20


可以用,非常感谢!我想把LEADER改为qleader,要改哪个地方呢?

669423907 发表于 2018-7-20 10:08:59

LPACMQ 发表于 2018-7-20 09:20


还有一个问题:如何让引线箭头大小随当前标注样式的箭头大小
页: [1] 2
查看完整版本: 请教 entmake 创建 qleader 问题