删除短线---这个程序有时候能删干净,有时候删不干净,有没有大佬能帮忙看看吗?
(defun c:ee1 ()(vl-load-com)
(setq ss_n:err *error* *error* *merr*)
(setq ss (ssget '((0 . "line"))))
(setq n -1)
(setq util (vla-get-utility
(vla-get-activedocument
(vlax-get-acad-object))))
(setq dn (vla-GetReal util "\n删除短线长度: "))
(repeat (sslength ss)
(setq ss_n (Vlax-Ename->Vla-Object (ssname ss (setq n (1+ n)))))
(setq an (vla-get-length ss_n))
(if (= an dn)
(vla-delete ss_n)
)
)
(princ)
)
(if (EQUAL an dn 0.1)0.1是容差,改成这样就行了,虽然dli量取的是13mm,但是属性可能是13.000001mm
删短直线
本帖最后由 XGZS1234 于 2022-10-4 18:17 编辑(vl-load-com)
(defun C:ee1 (/ ee i minl ss)
(setq MinL (getdist "\n直线长:"))
(while (setq ss (ssget ":s" '((0 . "LINE")))
i 0
)
(while (setq ee (ssname ss i))
(cond
((> (vlax-get-property (vlax-ename->vla-object ee) 'Length) MinL))
(T
(entdel ee)
)
)
(setq i (1+ i))
)
)
(princ)
) liuhe 发表于 2022-10-6 08:30
(if (EQUAL an dn 0.1)0.1是容差,改成这样就行了,虽然dli量取的是13mm,但是属性可能是13.000001mm
谢谢了,受教了,问题可以解决了,你的方法可以完成。 本帖最后由 XGZS1234 于 2022-10-4 17:17 编辑
短线不一定是直线!也可能是圆弧。是直线的时候你当然可以删除,如果包含圆弧呢? 现在只考虑直线 C:\Users\Administrator\Desktop\LSP 是不是选取的时候图形不在屏幕中 tigcat 发表于 2022-10-4 17:29
是不是选取的时候图形不在屏幕中
肯定在可视范围内啊 XGZS1234 发表于 2022-10-4 17:16
短线不一定是直线!也可能是圆弧。是直线的时候你当然可以删除,如果包含圆弧呢?
就是要删掉很多开槽口的小短线!!! zhufeng1004 发表于 2022-10-4 17:31
肯定在可视范围内啊
试试8楼的吧删短直线 XGZS1234 发表于 2022-10-4 18:18
试试8楼的吧删短直线
好的,我先试一下!!!
页:
[1]
2