删除短线
请大侠帮忙写个程序。删除长度 = 0.1~0.5 MM之间的直线。
谢谢 本帖最后由 llsheng_73 于 2013-11-17 16:19 编辑
(defun c:XX(/ ss a);;命令自己改
(defun SstoEs(ss / a en lst)
(if ss(progn(setq a -1)
(while(setq en(ssname ss(setq a(1+ a))))(setq lst (cons en lst)))))
lst)
(setq ss(SstoEs(ssget"X"'((0 . "LINE")))))
(foreach a ss
(if(<= 0.0001(vlax-get-property(vlax-ename->vla-object a) 'Length) 0.0005)(entdel a));;距离自己调整
)) (defun c:tt (/ LINE-LENGTH N SS SS_N)
(setq ss (ssget '((0 . "line"))))
(setq n -1)
(repeat (sslength ss)
(setq ss_n (Vlax-Ename->Vla-Object (ssname ss (setq n (1+ n)))))
(setq line-length (vla-get-length ss_n))
(if (and (> line-length 0.1)
(< line-length 0.5)
)
(vla-delete ss_n)
)
)
(princ)
) 谢谢 !!!非常管用。 只能删除直线不能删除多义线 本帖最后由 llsheng_73 于 2013-11-18 08:34 编辑
香田里浪人 发表于 2013-11-17 19:43 static/image/common/back.gif
只能删除直线不能删除多义线
人家需要的是“删除长度.............. 的直线”
如果要别的线(setq ss(SstoEs(ssget"X"'((0 . "*LINE"))))) 受用了!刚刚改了一下,用的上
页:
[1]