怎样用lisp获得多义线的各顶点以及各段是直线还是圆弧
大侠们,怎样用lisp获得多义线的各顶点以及各段是直线还是圆弧?!! 顶点是组码10组码43,0就是直线,不是0就是圆弧 还是基础知识呀 列出顶点:
(defun c:test ()
(setq obj (car (entsel "\nSelect a Polyline: ")))
(foreach x (entget obj)
(if (eq 10 (car x))(setq nlist (cons (cdr x) nlist)))
)
(reverse nlist)
)
列出所点击子段序号, 坐标及凸度:
(defun c:test ( / en j oldos ss)
(cond ((setq ent (entsel "Pick a polyline: "))
(getSegment (vlax-ename->vla-object (car ent))
(cadr ent)
)
)
)
)
(defun getSegment (obj pt / cpt eParam stParam)
(cond ((setq cpt (vlax-curve-getClosestPointTo obj pt T))
(setq eParam (fix (vlax-curve-getEndParam obj)))
(setq bul (vla-getBulge obj (fix (vlax-curve-getParamAtPoint obj cpt))))
(if (= eParam (setq stParam (fix (vlax-curve-getParamAtPoint obj cpt))))
(setq stParam (1- stParam))
(setq eParam (1+ stParam))
)
(list eParam (vlax-curve-getPointAtParam obj stParam)
(vlax-curve-getPointAtParam obj eParam) bul)
)
)
)
页:
[1]