zhufeng1004 发表于 2022-10-4 16:48:11

删除短线---这个程序有时候能删干净,有时候删不干净,有没有大佬能帮忙看看吗?

(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)

)

liuhe 发表于 2022-10-6 08:30:45

(if        (EQUAL an dn 0.1)0.1是容差,改成这样就行了,虽然dli量取的是13mm,但是属性可能是13.000001mm

XGZS1234 发表于 2022-10-4 18:08:03

删短直线

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

zhufeng1004 发表于 2022-10-6 10:03:53

liuhe 发表于 2022-10-6 08:30
(if        (EQUAL an dn 0.1)0.1是容差,改成这样就行了,虽然dli量取的是13mm,但是属性可能是13.000001mm

谢谢了,受教了,问题可以解决了,你的方法可以完成。

XGZS1234 发表于 2022-10-4 17:16:53

本帖最后由 XGZS1234 于 2022-10-4 17:17 编辑

短线不一定是直线!也可能是圆弧。是直线的时候你当然可以删除,如果包含圆弧呢?

zhufeng1004 发表于 2022-10-4 17:18:19

现在只考虑直线

zhufeng1004 发表于 2022-10-4 17:20:59

C:\Users\Administrator\Desktop\LSP

tigcat 发表于 2022-10-4 17:29:12

是不是选取的时候图形不在屏幕中

zhufeng1004 发表于 2022-10-4 17:31:15

tigcat 发表于 2022-10-4 17:29
是不是选取的时候图形不在屏幕中

肯定在可视范围内啊

zhufeng1004 发表于 2022-10-4 17:35:01

XGZS1234 发表于 2022-10-4 17:16
短线不一定是直线!也可能是圆弧。是直线的时候你当然可以删除,如果包含圆弧呢?

就是要删掉很多开槽口的小短线!!!

XGZS1234 发表于 2022-10-4 18:18:18

zhufeng1004 发表于 2022-10-4 17:31
肯定在可视范围内啊

试试8楼的吧删短直线

zhufeng1004 发表于 2022-10-4 18:39:06

XGZS1234 发表于 2022-10-4 18:18
试试8楼的吧删短直线

好的,我先试一下!!!
页: [1] 2
查看完整版本: 删除短线---这个程序有时候能删干净,有时候删不干净,有没有大佬能帮忙看看吗?