尘缘一生 发表于 2022-9-14 23:03:02

炸开标注(三领集成源码)

本帖最后由 尘缘一生 于 2022-9-14 23:40 编辑


[*];;三领设计 V2.0 炸尺寸标注
[*];; modify by: 尘缘一生 QQ:15290049
[*];; ss 标注选择集-----(一级)-----
[*](defun expl-dim (ss / num pk ss2 oas i sn pt1 pt2)
[*](setq num (atof (substr (getvar "ACADVER") 1 4)))
[*](if (= nil (getcname "tpscale")) ; 非天正图纸,炸开
[*]    (progn
[*]      (setq pk (get-box ss))
[*]      (setq ss2 (entlast))
[*]      (cond
[*]      ((<= num 15.1) ;低于CAD2002
[*]          (setq oas (getvar "dimaso"))
[*]          (setvar "dimaso" 1) ;设为关联标注
[*]      )
[*]      ((> num 15.1) ;高于CAD2002
[*]          (setq oas (getvar "dimassoc"))
[*]          (setvar "dimassoc" 1)
[*]      )
[*]      )
[*]      (repeat (setq i (sslength ss))
[*]      (setq sn (ssname ss (setq i (1- i))))
[*]      (command "EXPLODE" sn)
[*]      )
[*]      (cond
[*]      ((<= num 15.1)
[*]          (setvar "dimaso" oas)
[*]      )
[*]      ((> num 15.1)
[*]          (setvar "dimassoc" oas)
[*]      )
[*]      )
[*]      (setq ss (last_ent ss2))
[*]      (setq ss2 (entlast))
[*]      (repeat (setq i (sslength ss))
[*]      (setq sn (ssname ss (setq i (1- i))))
[*]      (if (= (dxf1 sn 0) "MTEXT")
[*]          (command "EXPLODE" sn)
[*]      )
[*]      )
[*]      (setq ss (last_ent ss2)) ;文字炸开后
[*]      (setq ss2 (ssadd))
[*]      (repeat (setq i (sslength ss))
[*]      (setq sn (ssname ss (setq i (1- i))))
[*]      (if (= (dxf1 sn 1) "0")
[*]          (ssadd sn ss2)
[*]      )
[*]      )
[*]      (setq ss (ssdiff ss ss2)) ;;差集
[*]      (if (> (sslength ss2) 0) (sl:-erase ss2)) ;;删除数值为0的标注
[*]      (sl-wzgz ss) ;;文字归正集成
[*]      (setq pt1 (car pk) pt2 (cadr pk))
[*]      (setq ss (ssget "c" pt1 pt2))
[*]      (ssduppe ss) ;;清理、合并重复实体集成
[*]    )
[*])
[*])
三领新版下载:三领设计V2.0- date 2022-9-13
链接:https://pan.baidu.com/s/1Be_V3xaqIdVhaBKUYonx2Q
提取码:fyr6

雨的节奏 发表于 2022-9-15 08:25:38

分解就不要用command了嘛,,,,用vla-explode....然后自己写一个方法,,得到炸开后的东西,完美出锅
页: [1]
查看完整版本: 炸开标注(三领集成源码)