取得线结点坐标,返回点表:
(defun *ax:GetVertexList (Ename / obj tmp coords oname start end) (setq obj (*ax:MakeObject Ename) coords '() oname (*ax:ObjectName obj)) (if (member oname '("AcDbPolyline" "AcDb2dPolyline")) (progn (setq tmp (vlax-safearray->list (vlax-variant-value (vlax-get-property obj 'Coordinates)))) (cond ((= oname "AcDb2dPolyline") olyline (while tmp (setq coords (append coords (list (list (car tmp)(cadr tmp)(caddr tmp)))) tmp (cdddr tmp)) );while ); ((= oname "AcDbPolyline") ;LWPolyline (while tmp (setq coords (append coords (list (list (car tmp)(cadr tmp)))) tmp (cddr tmp)) );while ); );cond ); );if
(if (= oname "AcDbLine") (progn (setq start (vlax-safearray->list (vlax-variant-value (vlax-get-property obj 'StartPoint))) end (vlax-safearray->list (vlax-variant-value (vlax-get-property obj 'EndPoint))) coords (append coords (list start)) coords (append coords (list end))) ) );if coords ) |