;; | ---------------------------------------------------------------------------- ;; | PL_MeasuredPoints ;; | ---------------------------------------------------------------------------- ;; | Function : Returns the points obtained by measuring the given polyline ;; | (either in 'entity' form or list form ) ;; | Arguments: ;; | 'vlist' - Polyline list or Object name [overloaded] ;; | 'MeasD' - Length of each segment ;; | Updated : August 13, 1999 ;; | e-mail : rakesh.rao@4d-technologies.com ;; | Web : www.4d-technologies.com ;; | ---------------------------------------------------------------------------- (defun PL_MeasuredPoints ( vlist MeasD / ss p1 p2 ename OS oname StartPt ) (setq OS (getvar "OSMODE")) (setvar "OSMODE" 0) (if (= (type vlist) 'ENAME) (progn (setq ename vlist oname (vlax-ename->vla-object ename) StartPt (vlax-curve-getStartPoint oname) ) (vlax-release-object oname) (command "._Measure" (list ename StartPt) MeasD) (setq ss (ssget "_P")) ) (progn (setq ename (PL_mk_pl vlist 8 0.0) oname (vlax-ename->vla-object ename) StartPt (vlax-curve-getStartPoint oname) ) (vlax-release-object oname) (command "._Measure" (list ename StartPt) MeasD) (setq vlist (PL_plist ename) ss (ssget "_P") ) (entdel ename) )) (if ss (progn (setq vlist (SS_SS2Pt ss) p1 (car vlist) p2 (last vlist) vlist (cons p1 vlist) ) (if (>= (distance p2 (last vlist)) 0.001) (setq vlist (append vlist (list p2))) ) (command "._Erase" ss "") ) (setq vlist nil) ) (setvar "OSMODE" OS) vlist )