大家好,我清理一个地形图文件,其中包含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)
|