炸开标注(三领集成源码)
本帖最后由 尘缘一生 于 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
分解就不要用command了嘛,,,,用vla-explode....然后自己写一个方法,,得到炸开后的东西,完美出锅
页:
[1]