densan 发表于 2022-9-1 04:19:48

如果出现以下情况,请选择直线和多段线。

大家好,我清理一个地形图文件,其中包含1000条随机线和多段线形式的数字碎片,每个对象都有两个顶点(客户按原样交付)。
如果我只按长度选择,快速选择将捕获我想要保留的大量轮廓信息。
我在另一篇文章中找到了这段代码,并想寻求一些指导。
我一直在考虑,在哪里包括计算顶点的部分,如何将其合并到代码中,以及使用vlax curve getendparam的方法是否适用于直线和多段线。
希望大家能给一点建议,谢谢。

若长度小于x且对象有两个顶点,则选择直线和多段线。

另一种方法是从原始集合中删除不需要的对象;但是,请注意,这仅适用于使用递减索引迭代选择集时:

(defun c:mysel ( / e i s )
   (if (setq s (ssget '((-4 . "<OR") (0 . "LINE") (-4 . "<AND") (0 . "LWPOLYLINE") (-4 . "<NOT") (-4 . "&=") (70 . 1) (-4 . "NOT>") (-4 . "AND>") (-4 . "OR>"))))
       (repeat (setq i (sslength s))
         (setq e (ssname s (setq i (1- i))))
         (if (<= 1500 (vlax-curve-getdistatparam e (vlax-curve-getendparam e))) (ssdel e s))
       )
   )
   (sssetfirst nil s)
   (princ)
)
(vl-load-com) (princ)

页: [1]
查看完整版本: 如果出现以下情况,请选择直线和多段线。