;Tested in R12, R13, R14, A2K, ADT2i, ADT2000, ADT2004, AutoCAD 2006 ;V2.08 ;Z0.lsp Written by Bill DeShawn last modified 2-1-2008 (defun z0err (msg) (if c:r (c:r) redraw) (if pea (setvar "peditaccept" pea)) (setq oldunitmode nil oldprec nil os nil all nil sslen nil cycles nil index nil qty nil display nil ent nil next nil elev1 nil elev2 nil ds nil dst nil lmoov nil pws1 nil pos2 nil newpos1 nil newpos2 nil) (setq *error* olderr) (princ msg) (prompt ". Please try again.") (princ) ) (defun 3dplflat (/ pea xset xlen xdex xnam xnext xelev1 xelev2 xpos1 xpos2 npos1 npos2) (if (getvar "peditaccept") (progn (setq pea (getvar "peditaccept")) (setvar "peditaccept" 0) ) ) (command "_.explode" (cdar next)) (setq xset (ssget "p")) (setq xlen (sslength xset)) (setq xdex 0) (repeat xlen (setq xnam (ssname xset xdex)) (setq xnext (entget xnam)) (setq xelev1 (cadddr (assoc 10 xnext))) (setq xelev2 (cadddr (assoc 11 xnext))) (if (not (eq xelev1 0.0)) (progn (setq xpos1 (assoc 10 xnext)) (setq npos1 (list (car xpos1) (cadr xpos1) (caddr xpos1) 0.0)) (setq xnext (entmod (subst npos1 xpos1 xnext))) ) ) (if (not (eq xelev2 0.0)) (progn (setq xpos2 (assoc 11 xnext)) (setq npos2 (list (car xpos2) (cadr xpos2) (caddr xpos2) 0.0)) (setq xnext (entmod (subst npos2 xpos2 xnext))) ) ) (setq xdex (1+ xdex)) ) (command "_.pedit" (cdar xnext) "" "j" xset "" "") ) (defun c:z0 (/ oldunitmode oldprec os all sslen cycles index qty display ent next elev1 elev2 ds dst moov pos1 pos2 newpos1 newpos2 hatchqty rayqty xlineqty lineqty textqty attdefqty tolqty dimqty insertqty arcqty circleqty lwpolylineqty polylineqty ellipseqty splineqty solidqty mlineqty mhatchq mrayq mxlineq mlineq mtextq mattdefq mtolq mdimq minsertq marcq mcircleq mlwpolylineq mpolylineq mellipseq msplineq msolidq mmlineq wipeqty mwipeq) (command "_.undo" "g") (setq olderr *error*) (setq *error* z0err) ; (command "_.ucs" "w") (if (null qty)(setq qty 0)) (if (null sslen)(setq sslen 0)) (setq oldunitmode (getvar "unitmode")) (setvar "unitmode" 1) (setq oldprec (getvar "luprec")) (setvar "luprec" 8) (setq os (getvar "osmode")) (setvar "osmode" 0) (prompt "\nChecking WIPEOUTS . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "WIPEOUT")))) (if (null all) (setq wipeqty "0")) (if (/= all nil) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (setq qty 0) (while (< index cycles) (setq display (strcat "\nWIPEOUT " (itoa (1+ index)) " of " (itoa (1+ (- cycles 1))))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev1 (cadddr (assoc 10 next))) ; (setq elev2 (cadddr (assoc 11 next))) (if (not (eq elev1 0.0)) (progn (setq pos1 (assoc 10 next)) (setq newpos1 (list (car pos1) (cadr pos1) (caddr pos1) 0.0)) (setq next (entmod (subst newpos1 pos1 next))) (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq mwipeq (itoa qty)) (setq wipeqty (itoa sslen)) ) ) (terpri) (princ (strcat "\Moved " (itoa qty) " of " (itoa sslen) " HATCHES.")) ; (command "delay" "500") ; (setvar "luprec" 3)(princ);temporary EOF ;);temporary EOF (setq sslen 0)(setq qty 0) (terpri) (prompt "\nChecking HATCHES . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "HATCH")))) (if (null all) (setq hatchqty "0")) (if (/= all nil) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (setq qty 0) (while (< index cycles) (setq display (strcat "\nHATCH " (itoa (1+ index)) " of " (itoa (1+ (- cycles 1))))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev1 (cadddr (assoc 10 next))) (setq elev2 (cadddr (assoc 11 next))) (if (not (eq elev1 0.0)) (progn (setq pos1 (assoc 10 next)) (setq newpos1 (list (car pos1) (cadr pos1) (caddr pos1) 0.0)) (setq next (entmod (subst newpos1 pos1 next))) (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq mhatchq (itoa qty)) (setq hatchqty (itoa sslen)) ) ) (terpri) (princ (strcat "\Moved " (itoa qty) " of " (itoa sslen) " HATCHES.")) ; (command "delay" "500") ; (setvar "luprec" 3)(princ);temporary EOF ;);temporary EOF (setq sslen 0)(setq qty 0) (terpri) (prompt "\nChecking RAYS . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "RAY")))) (if (null all) (setq rayqty "0")) (setq qty 0) (setq sslen 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nRAY "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq mrayq (itoa qty)) (setq rayqty (itoa sslen)) ) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " RAYS.")) ; (command ".delay" "1000") (setq sslen 0)(setq qty 0) ;);temporary EOF (terpri) (prompt "\nChecking XLINES . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "XLINE")))) (if (null all) (setq xlineqty "0")) (setq qty 0) (setq sslen 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nXLINE "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq mxlineq (itoa qty)) (setq xlineqty (itoa sslen)) ) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " XLINES.")) ; (command ".delay" "1000") (setq sslen 0)(setq qty 0) ;);temporary EOF (terpri) (prompt "\nChecking LINES . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "LINE")))) (if (null all) (setq lineqty "0")) (if (/= all nil) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (setq qty 0) (while (< index cycles) (setq display (strcat "\nLINE " (itoa (1+ index)) " of " (itoa (1+ (- cycles 1))))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev1 (cadddr (assoc 10 next))) (setq elev2 (cadddr (assoc 11 next))) (if (not (eq elev1 0.0)) (progn (setq pos1 (assoc 10 next)) (setq newpos1 (list (car pos1) (cadr pos1) (caddr pos1) 0.0)) (setq next (entmod (subst newpos1 pos1 next))) ) ) (if (not (eq elev2 0.0)) (progn (setq pos2 (assoc 11 next)) (setq newpos2 (list (car pos2) (cadr pos2) (caddr pos2) 0.0)) (setq next (entmod (subst newpos2 pos2 next))) (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq mlineq (itoa qty)) (setq lineqty (itoa sslen)) ) ) (terpri) ; (if (null qty)(setq qty 0)) ; (if (null sslen)(setq sslen 0)) (setq sslen 0)(setq qty 0) (princ (strcat "\nFlattened " (itoa qty) " of " (itoa sslen) " LINES.")) ; (command "delay" "500") ; (setvar "luprec" 3)(princ);temporary EOF ;);temporary EOF (terpri) (prompt "\nChecking TEXT . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "TEXT")))) (if (null all) (setq textqty "0")) (setq sslen 0) (setq qty 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nTEXT ENTITY "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ; (if (null txtset) (progn (command "_.select" ent "") (setq txtset (ssget "p"))) (ssadd ent txtset)) ) ) (setq index (1+ index)) ) (setq mtextq (itoa qty)) (setq textqty (itoa sslen)) ) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " TEXT OBJECTS.")) (setq sslen 0)(setq qty 0) (terpri) (prompt "\nChecking ATTDEF OBJECTS . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "ATTDEF")))) (if (null all) (setq attdefqty "0")) (setq sslen 0) (setq qty 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nATTDEF ENTITY "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq mattdefq (itoa qty)) (setq attdefqty (itoa sslen)) ) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " ATTDEF OBJECTS.")) ; (command ".delay" "1000") (setq sslen 0)(setq qty 0) (terpri) (prompt "\nChecking Tolerances . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "TOLERANCE")))) (if (null all) (setq tolqty "0")) (setq sslen 0) (setq qty 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nTOLERANCE "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq mtolq (itoa qty)) (setq tolqty (itoa sslen)) ) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " TOLERANCES.")) ; (command ".delay" "1000") (setq sslen 0)(setq qty 0) (terpri) (prompt "\nChecking DIMENSIONS . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "DIMENSION")))) (if (null all) (setq dimqty "0")) (setq sslen 0) (setq qty 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nDIMENSION "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq mdimq (itoa qty)) (setq dimqty (itoa sslen)) ) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " DIMENSIONS.")) ; (command ".delay" "1000") (setq sslen 0)(setq qty 0) (terpri) (prompt "\nChecking INSERTs . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "INSERT")))) (if (null all) (setq insertqty "0")) (setq qty 0) (setq sslen 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nINSERT ENTITY "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq minsertq (itoa qty)) (setq insertqty (itoa sslen)) ) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " INSERTS.")) ; (command ".delay" "1000") (setq sslen 0)(setq qty 0) (terpri) (prompt "\nChecking MLINES . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "MLINE")))) (if (null all) (progn (setq mlineqty "0") (setq mmlineq "0"))) (setq qty 0) (setq sslen 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nMLINE "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq mmlineq (itoa qty)) (setq mlineqty (itoa sslen)) ) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " MLINES.")) ; (command ".delay" "1000") (setq sslen 0)(setq qty 0) (terpri) (prompt "\nChecking ARCS . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "ARC")))) (if (null all) (setq arcqty "0")) (setq qty 0) (setq sslen 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nARC "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq marcq (itoa qty)) (setq arcqty (itoa sslen)) ) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " ARCS.")) ; (command ".delay" "1000") (setq sslen 0)(setq qty 0) (terpri) (prompt "\nChecking CIRCLES . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "CIRCLE")))) (if (null all) (setq circleqty "0")) (setq qty 0) (setq sslen 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nCIRCLE "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq mcircleq (itoa qty)) (setq circleqty (itoa sslen)) ) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " CIRCLES.")) (setq sslen 0)(setq qty 0) ; (command ".delay" "1000") (terpri) (prompt (strcat "\nChecking " " " (chr 34) "HEAVY" (chr 34) " POLYLINES . . . . . . . . . ")) (setq all (ssget "X" (list (cons 0 "POLYLINE")))) (if (null all) (setq polylineqty "0")) (setq qty 0) (setq sslen 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nPOLYLINE "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) ; (if (= (cdar(cddddr (cddddr next))) "AcDb3dPolyline")DOESN'T WORK - NOT NEC. ANYWAY (progn;NOT NEC, BUT DOESN'T HURT ANYTHING (princ "\nWorking.....") (3DPLFLAT) );NOT NEC, BUT DOESN'T HURT ANYTHING (progn (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) );end progn ); end if (setq index (1+ index)) );end progn ; );end if DOESN'T WORK - NOT NEC. ANYWAY ); end while (setq mpolylineq (itoa qty)) (setq polylineqty (itoa sslen)) );end progn );end if (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " " (chr 34) "HEAVY" (chr 34) " POLYLINES.")) (terpri) (prompt "\nChecking LWPOLYLINES . . . . . . . . . ") (setq sslen 0)(setq qty 0) (setq all (ssget "X" (list (cons 0 "LWPOLYLINE")))) (if (null all) (setq lwpolylineqty "0")) (setq qty 0) (setq sslen 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nLWPOLYLINE "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cdr (assoc 38 next))) (if (null elev) (setq elev 0.0)) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq mlwpolylineq (itoa qty)) (setq lwpolylineqty (itoa sslen)) ) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " LWPOLYLINES.")) (setq sslen 0)(setq qty 0) (terpri) (prompt "\nChecking ELLIPSES . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "ELLIPSE")))) (if (null all) (setq ellipseqty "0")) (setq qty 0) (setq sslen 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nELLIPSE "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq mellipseq (itoa qty)) (setq ellipseqty (itoa sslen)) ) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " ELLIPSES.")) (terpri) (prompt "\nChecking SPLINES . . . . . . . . . ") (setq sslen 0)(setq qty 0) (setq all (ssget "X" (list (cons 0 "SPLINE")))) (if (null all) (setq splineqty "0")) (setq qty 0) (setq sslen 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nSPLINE "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq msplineq (itoa qty)) (setq splineqty (itoa sslen)) ) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " SPLINES.")) (setq sslen 0)(setq qty 0) (terpri) (prompt "\nChecking SOLIDS . . . . . . . . . ") (setq all (ssget "X" (list (cons 0 "SOLID")))) (if (null all) (setq solidqty "0")) (setq sslen 0)(setq qty 0) (setq qty 0) (setq sslen 0) (if (not (null all)) (progn (setq sslen (sslength all)) (setq cycles sslen) (setq index 0) (while (< index cycles) (setq display (strcat "\nSOLID "(itoa (1+ index)) " of " (itoa cycles))) (setq ent (ssname all index)) (princ display) (setq next (entget ent)) (setq elev (cadddr (assoc 10 next))) (setq ds (rtos (* -1 elev) 1 8)) (setq dst (atof ds)) (setq moov (strcat "0,0," (rtos dst 1 8))) (if (/= dst 0.0) (progn (command "._move" ent "" moov "") (setq qty (1+ qty)) ) ) (setq index (1+ index)) ) (setq msolidq (itoa qty)) (setq solidqty (itoa sslen)) ) (princ (strcat "\nMoved " (itoa qty) " of " (itoa sslen) " SOLIDS.")) ) (terpri)(terpri)(terpri)(terpri) (if mwipeq (princ (strcat "\nMoved " mwipeq " of " wipeqty " WIPEOUTS."))(princ (strcat "\nMoved 0 of " wipeqty " WIPEOUTS."))) (if mhatchq (princ (strcat "\nMoved " mhatchq " of " hatchqty " HATCHES."))(princ (strcat "\nMoved 0 of " hatchqty " HATCHES."))) (if mrayq (princ (strcat "\nMoved " mrayq " of " rayqty " RAYS."))(princ (strcat "\nMoved 0 of " rayqty " RAYS."))) (if mxlineq (princ (strcat "\nMoved " mxlineq " of " xlineqty " XLINES."))(princ (strcat "\nMoved 0 of " xlineqty " XLINES."))) (if mlineq (princ (strcat "\nMoved " mlineq " of " lineqty " LINES."))(princ (strcat "\nMoved 0 of " lineqty " LINES."))) (if mtextq (princ (strcat "\nMoved " mtextq " of " textqty " TEXT OBJECTS."))(princ (strcat "\nMoved 0 of " textqty " TEXT OBJECTS."))) (if mattdefq (princ (strcat "\nMoved " mattdefq " of " attdefqty " ATTDEF OBJECTS."))(princ (strcat "\nMoved 0 of " attdefqty " ATTDEF OBJECTS."))) (if mtolq (princ (strcat "\nMoved " mtolq " of " tolqty " TOLERANCES."))(princ (strcat "\nMoved 0 of " tolqty " TOLERANCES."))) (if mdimq (princ (strcat "\nMoved " mdimq " of " dimqty " DIMENSIONS."))(princ (strcat "\nMoved 0 of " dimqty " DIMENSIONS."))) (if minsertq (princ (strcat "\nMoved " minsertq " of " insertqty " INSERTS."))(princ (strcat "\nMoved 0 of " insertqty " INSERTS."))) (if mmlineq (princ (strcat "\nMoved " mmlineq " of " mlineqty " MLINES."))(princ (strcat "\nMoved 0 of " mlinetqty " MLINES."))) (if marcq (princ (strcat "\nMoved " marcq " of " arcqty " ARCS."))(princ (strcat "\nMoved 0 of " arcqty " ARCS."))) (if mcircleq (princ (strcat "\nMoved " mcircleq " of " circleqty " CIRCLES."))(princ (strcat "\nMoved 0 of " circleqty " CIRCLES."))) (if mpolylineq (princ (strcat "\nMoved " mpolylineq " of " polylineqty " HEAVY POLYLINES."))(princ (strcat "\nMoved 0 of " polylineqty " HEAVY POLYLINES."))) (if mlwpolylineq (princ (strcat "\nMoved " mlwpolylineq " of " lwpolylineqty " LWPOLYLINES."))(princ (strcat "\nMoved 0 of " lwpolylineqty " LWPOLYLINES."))) (if mellipseq (princ (strcat "\nMoved " mellipseq " of " ellipseqty " ELLIPSES."))(princ (strcat "\nMoved 0 of " ellipseqty " ELLIPSE."))) (if msplineq (princ (strcat "\nMoved " msplineq " of " splineqty " SPLINES."))(princ (strcat "\nMoved 0 of " splineqty " SPLINES."))) (if msolidq (princ (strcat "\nMoved " msolidq " of " solidqty " SOLIDS."))(princ (strcat "\nMoved 0 of " solidqty " SOLIDS."))) (textscr) (setvar "osmode" os) (setvar "luprec" oldprec) (setvar "unitmode" oldunitmode) (setq *error* olderr) (command "_.undo" "end") (princ) )