;; | ----------------------------------------------------------------------------- ;; | SS_Convert2Polylines ;; | ----------------------------------------------------------------------------- ;; | Function : Converts a given selection set into equivalent polyline objects ;; | The selection set passed may contain lines, polylines, arcs and ;; | circles. ;; | Arguments: ;; | 'ss' - Selection set passed ;; | '3D' - If this flag is T, the polylines created will be having ;; | the 3d flag set, even if their vertices may all be zero ;; | Return : The OR condition list that can be used by the ssget function. ;; | Updated : December 2, 1999 ;; | e-mail : rakesh.rao@4d-technologies.com ;; | Web : www.4d-technologies.com ;; | ----------------------------------------------------------------------------- (defun SS_Convert2Polylines( ss 3D / ss1 ss2 ssl cnt tmp ename entl en la dia OS ) (setq ss1 (ssadd) ss2 (ssadd) ssl (sslength ss) cnt 0 tmp (strcat " of " (itoa ssl)) OS (getvar "OSMODE") ) (setvar "OSMODE" 0) (princ "\n") (repeat ssl (setq ename (ssname ss cnt) cnt (1+ cnt) entl (entget ename) en (LI_item 0 entl) la (LI_item 8 entl) ) (LA_mk_c_lyr la "") (princ (strcat "\rFiltering Selected objects:" (itoa cnt) tmp)) (cond ((= en "LINE") (command "._3DPoly" (LI_item 10 entl) (LI_item 11 entl) "") (ssadd (entlast) ss1) (ssadd ename ss2) ) ((= en "CIRCLE") (setq dia (* 2.0 (LI_item 40 entl))) (command "._Donut" dia dia (LI_item 10 entl) "") (ssadd (entlast) ss1) (ssadd ename ss2) ) ((= en "ARC") (command "._Pedit" ename "_Y" "_X") (ssadd (entlast) ss1) (ssadd ename ss2) ) ) ) (setvar "OSMODE" OS) )