如何获取和修改多段线的多个顶点坐标
例如:(assoc 10 (entget (car (entsel))))
运行上述代码后,选择了一个多段线,只能返回第一个顶点的坐标。
如何获取多段线的所有顶点? (defun c:abc (/ curve dxf point)
(vl-load-com)
(setq curve (car (entsel "\n选择对象")))
(setq dxf (entget curve))
(setq point
(mapcar
'(lambda (x) (vlax-curve-getclosestpointto curve (cdr x)))
(vl-remove-if-not '(lambda (x) (= 10 (car x))) dxf)
)
)
(princ point)
(prin1)
) http://bbs.mjtd.com/forum.php?mod=viewthread&tid=96422&fromuid=7303840
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=168719&fromuid=7303840 有个笨方法,用vl-remove删除,while循环获取。 ;; (PLVertexs (setq s1 (car (entsel "\n选择多段线: "))))
(defun PLVertexs (s1)(mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) (entget s1))))
lisp入门必学题-------获取多段线顶点坐标 多谢楼上各位的回答,现在基本了解如何获取多段线的各个顶点了。
但是这些方法都是另外建立了一个存储数据的表,如何修改多段线顶点数据并更新还是不清楚。
还请各位再帮帮忙
页:
[1]