weilu 发表于 2023-4-20 16:59:30

如何用entmake函数创建多重引线?

(entmake (list '(0 . "MULTILEADER") '(100 . "AcDbEntity")
         '(100 . "AcDbMLeader")
          '(300 . "CONTEXT_DATA{") '(10 4.0 2.0 0.0)
          '(302 . "LEADER{") '(10 2.0 2.0 0.0)
          '(304 . "LEADER_LINE{") '(10 0.0 0.0 0.0) '(305 . "}")
          '(304 . "LEADER_LINE{") '(10 2.0 0.0 0.0) '(305 . "}")
         '(303 . "}") '(301 . "}")))

先手动创建了一个多重引线,查DXF组码,试图抠出关键元素,失败,不知道有没有人会,还有用vla-addMleader创建的例子么》


liuhe 发表于 2023-4-20 17:22:11

放弃吧   还不如改当前设定样式,用command调用来的方便,虽然速度不如entmake 。多重结构的dxf码太麻烦

wzg356 发表于 2023-4-20 17:02:24

与标注一样,本质是块,不好做

weilu 发表于 2023-4-20 17:35:47

liuhe 发表于 2023-4-20 17:22
放弃吧   还不如改当前设定样式,用command调用来的方便,虽然速度不如entmake 。多重结构的dxf码太麻 ...

;P哈哈,理解理解~~~

自贡黄明儒 发表于 2023-4-20 17:37:19

本帖最后由 自贡黄明儒 于 2023-4-20 17:39 编辑

晓东上有         ,一般vla


(defun c:tt (/ p1 p2 mLeader p)
(if (and (setq p1 (getpoint "\nDim Point: "))
         (setq p2 (getpoint p1 "\nLocation Point: "))
      )
    (progn
      (setq mLeader (invoke (fy:acspace) 'addmleader (append p1 p2) 0))
      (while (setq p (getpoint p2 "\nNew Dim Point: "))
      (invoke      mLeader
                'AddLeaderline
                0
                (append p p2)
      )
      )
    )
)
(princ)
)

(defun c:tt (/ lst p v mLeader)
(fy:begin)
(princ "\n选择圆....")
(if (and (ssget '((0 . "circle")))
         (setq lst (fy:cset->objs))
         (setq lst (mapcar '(lambda (x)
                              (vlax-get x 'center)
                              )
                           lst
                     )
               lst (vl-sort lst
                              '(lambda (a b)
                                 (> (car a) (car b))
                               )
                     )
         )
         (setq p (getpoint (car lst) "\nPosition: "))
      )
    (progn
      (setq v            (mapcar '- p (car lst))
            mLeader (invoke (fy:acspace) 'addmleader (append (car lst)p ) 0)
      )
      (mapcar '(lambda (x)
               (invoke mLeader
                         'AddLeaderLine
                         0
                         (append x (mapcar '+ x v))
               )
               )
            (cdr lst)
      )
    )
)
(fy:end)
(princ)
)

weilu 发表于 2023-4-20 20:18:06

自贡黄明儒 发表于 2023-4-20 17:37
晓东上有         ,一般vla




感谢感谢,学习一下。

freedom_ice 发表于 2023-4-20 22:09:26

http://bbs.mjtd.com/thread-186442-1-1.html

wxa123wl 发表于 2023-12-7 10:11:39

自贡黄明儒 发表于 2023-4-20 17:37
晓东上有         ,一般vla




这个里面的(fy:acspace)什么什么函数呢
页: [1]
查看完整版本: 如何用entmake函数创建多重引线?