;| ******************************************** * CHRAD.LSP - (c) 1998 Tee Square Graphics * ******************************************** Two utilities to globally change the radius of existing circles in an AutoCAD drawing. CAUTION: This is "demonstration" level software, and has no error traps or other refinements. These enhancements are left to the discretion of the end user. Both of the commands defined below will select ALL circles of the chosen "old radius" and change all to the "new radius." To allow the user to select a superset of objects to be scanned, remove the "x" from the (ssget...) function in either case: (setq ss (ssget (list '(0 . "CIRCLE")(cons 40 or)))) ******************************************** CHRAD command uses (command...) function and appears to be somewhat faster where the change of radius is fairly small. |; (defun C:CHRAD (/ or nr ss) (setq ce (getvar "cmdecho") or (getdist "\nOld radius: ") nr (getdist "\nNew radius: ") ss (ssget "x" (list '(0 . "CIRCLE")(cons 40 or)))) (if ss (progn (setvar "cmdecho" 0) (command "_.change" ss "" "" nr) (while (= (logand (getvar "cmdactive") 1) 1) (command nr)) (setvar "cmdecho" ce)) (alert (strcat "No " (rtos or) " radius circles found."))) (princ) ) ;| ******************************************** CHRAD1 command uses (entmod...) and is considerably faster where the change of radius is large. |; (defun C:CHRAD1 (/ or nr ss n obj) (setq or (getdist "\nOld radius: ") nr (getdist "\nNew radius: ") ss (ssget "x" (list '(0 . "CIRCLE")(cons 40 or))) n 0) (if ss (while (< n (sslength ss)) (setq obj (entget (ssname ss n)) obj (subst (cons 40 nr)(assoc 40 obj) obj) n (1+ n)) (entmod obj)) (alert (strcat "No " (rtos or) " radius circles found."))) (princ) )