明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1216|回复: 7

[提问] 如何用entmake函数创建多重引线?

[复制链接]
发表于 2023-4-20 16:59:30 | 显示全部楼层 |阅读模式
(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创建的例子么》


"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-4-20 17:22:11 | 显示全部楼层
放弃吧   还不如改当前设定样式,用command  调用来的方便,虽然速度不如entmake 。多重结构的dxf码  太麻烦
回复 支持 0 反对 1

使用道具 举报

发表于 2023-4-20 17:02:24 来自手机 | 显示全部楼层
与标注一样,本质是块,不好做
 楼主| 发表于 2023-4-20 17:35:47 | 显示全部楼层
liuhe 发表于 2023-4-20 17:22
放弃吧   还不如改当前设定样式,用command  调用来的方便,虽然速度不如entmake 。多重结构的dxf码  太麻 ...

哈哈,理解理解~~~
发表于 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)
)

 楼主| 发表于 2023-4-20 20:18:06 | 显示全部楼层
自贡黄明儒 发表于 2023-4-20 17:37
晓东上有         ,一般vla

感谢感谢,学习一下。
发表于 2023-4-20 22:09:26 | 显示全部楼层
发表于 2023-12-7 10:11:39 | 显示全部楼层
自贡黄明儒 发表于 2023-4-20 17:37
晓东上有         ,一般vla

这个里面的(fy:acspace)什么什么函数呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-17 12:53 , Processed in 0.156297 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表