adc 发表于 2013-1-4 12:49:18

尺寸重叠检查

本帖最后由 adc 于 2013-1-4 12:51 编辑

有时候尺寸标注会有重叠,这种情况很难检查,希望能有个程序可以检查出这种情况。详见附件

yjr111 发表于 2013-1-4 12:49:19

(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:20



yjr111 发表于 2013-1-4 18:32:25

yjr111 发表于 2013-1-4 14:37 static/image/common/back.gif


我是08,xp,可以用,请上真相

adc 发表于 2013-1-4 19:37:53

真相来啦

adc 发表于 2013-1-4 20:17:34

本帖最后由 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

yjr111 发表于 2013-1-4 20:30:04

(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:39:15

本帖最后由 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个币

tth02 发表于 2013-1-4 20:50:18

如果标注旋转到任意角度都可用就更好了。

adc 发表于 2013-1-6 19:31:31

本帖最后由 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
查看完整版本: 尺寸重叠检查