尺寸重叠检查
本帖最后由 adc 于 2013-1-4 12:51 编辑有时候尺寸标注会有重叠,这种情况很难检查,希望能有个程序可以检查出这种情况。详见附件
(defun c:tt(/ E SS SS1 SS2 N P1 P2 LSTSS1 LSTSS2 SSS)
(defun getdxf(s num)(cdr(assoc num s)))
(setq ss(ssget '((0. "dimension"))) n 0 SSS (SSADD))
(repeat (sslength ss)
(setq e(ssname ss n)
s(entget e)
p1(getdxf s 10)
clz1(abs(-(car(getdxf s 13))(car(getdxf s 14))))
clz2(abs(-(cadr(getdxf s 13))(cadr(getdxf s 14))))
P2(list (- (car p1)clz1)(- (cadr p1)clz2)(caddr p1))
)
(SETQ SS1(SSGET "C" P1 P1 '((0. "dimension")))
LSTSS1(SS2LST SS1)
SS2(SSGET "C" P2P2 '((0. "dimension")))
LSTSS2(SS2LST SS2)
)
(if (and ss1 ss2)
(progn
(SSDEL E SS1)
(SSDEL E SS2)
(IF (AND (EQUAL LSTSS1 LSTSS2)
(>(LENGTH LSTSS1)0)
(>(LENGTH LSTSS2)0)
)
(repeat(setq m(sslength ss1))
(SSADD (ssname ss1(setq m(1- m))) SSS)
)
)
)
)
(setq n(1+ n))
)
(SSSETFIRST SSS SSS)
(princ)
)
(defun ss2lst (ss / nn ee lst)
(if ss
(repeat (setq nn (sslength ss))
(setqlst (cons (ssname ss (setq nn (1- nn))) lst))
)
)
)
yjr111 发表于 2013-1-4 14:37 static/image/common/back.gif
我是08,xp,可以用,请上真相 真相来啦 本帖最后由 adc 于 2013-1-4 20:18 编辑
adc 发表于 2013-1-4 19:37 static/image/common/back.gif
真相来啦
我也全部重新下载了一遍,纯cad08,没加载任何插件
命令: tt
选择对象: 指定对角点: 找到 4 个,2 个编组
选择对象:; 错误: no function definition: SS2LST (defun ss2lst (ss / nn ee lst)
(repeat (setq nn (sslength ss))
(setqlst (cons (ssname ss (setq nn (1- nn))) lst))
)
) 本帖最后由 adc 于 2013-1-4 20:43 编辑
yjr111 发表于 2013-1-4 20:30 static/image/common/back.gif
(defun ss2lst (ss / nn ee lst)
(repeat (setq nn (sslength ss))
(setqlst (cons (ssname ss (se ...
如果选中的标注里有对齐标注,程序就不能正常执行,希望对齐标注类似的情况也能检查出来,抱歉遗漏了,加多2个币
如果标注旋转到任意角度都可用就更好了。 本帖最后由 adc 于 2013-1-6 19:32 编辑
yjr111 发表于 2013-1-4 20:30 static/image/common/back.gif
(defun ss2lst (ss / nn ee lst)
(repeat (setq nn (sslength ss))
(setqlst (cons (ssname ss (se ...
严总,遇到一张图,用你的程序会出错,选中的标注都没有重叠,麻烦请看看是什么原因?
页:
[1]
2