怎么将多段线顶点DXF10组成表
怎么将多段线顶点DXF10组成表, ((10 299.934 -1500.9) (10 303.077 -1500)(10 303.077 -1502.3)(10 305.177 -1502.3) (10 305.177 -1500.4) (10 308.25 -1500.4))(setq ptlst (mapcar 'cdr (vl-remove-if (function (lambda (e) (/= 10 (car e)))) (entget ename)))) 要的是?
(10 299.934 -1500.9)
-->
(299.934 -1500.9) 本帖最后由 llsheng_73 于 2025-1-4 20:07 编辑
(defun plxyz(e fuz / pt p n);多段线节点三维坐标,连续重合点只取一个,根据fuz阀值过滤接近点
(or(=(type e)'vla-object)(setq e(vlax-ename->vla-object e)))
(cond((=(setq n(vlax-get-property e'objectname))"AcDbLine")
(list(vlax-curve-getstartpoint e)(vlax-curve-getendpoint e)))
((WCMATCH n"*Polyline")
(repeat(setq n(fix(+(vlax-curve-getendparam e)(if(=(vlax-get-property e'Closed):vlax-true)0 1))))
(or(equal(setq n(1- n)p(vlax-curve-getpointatparam e n))(car pt)fun)
(setq pt(cons p pt))))
pt))) (mapcar 'cdr lst) (cons(list (assoc 10 (member (assoc 10 e) e)))) (((10 -852.253 187.664) (42 . 0.0)) ((10 -544.534 187.664) (42 . -0.414214)) ((10 -524.534 167.664) (42 . 0.0)) ((10 -524.534 35.0234) (42 . -0.414214)) ((10 -544.534 15.0234) (42 . 0.0)) ((10 -852.253 15.0234) (42 . 0.0)))
页:
[1]