下面是众多取LWPline的顶点坐标的函数中的一个,不适用于有重复点的多段线,但是恰恰可以去除有重复的点,比如首尾相连但属性里是非闭合的多段线。望坛友们提供同样功能的函数,一起来扩展思路,测试速度。
 - (defun lwpent->lwppoints (ent) ;_取LWPline的顶点坐标,忽略重复点
- (setq lwppoints '())
- (if (= (type ent) 'ENAME)
- (progn
- (setq entlist (entget ent))
- (if (= (cdr (assoc 0 entlist)) "LWPOLYLINE")
- (progn
- (while (setq atom10 (assoc 10 entlist))
- (setq entlist (vl-remove atom10 entlist))
- (setq lwppoints (cons (cdr atom10) lwppoints)
- )
- )
- (reverse lwppoints)
- )
- )
- )
- )
- )
|