; The following program is sample output from the LISP Generator (more info at www.LispGen.com). ; The LISP Generator is a full-featured code generator for Autocad's AuotLISP language. ; Legal notices: ; - This sample program is intended as a demonstration only. ; - The program is available on an 'as-is' basis with no warranties, either expressed or implied, of any kind. ; - The program may only be used at the user's own risk. ; - No license or rights to the code are either given or forfeited. ; Everything that follows is direct and unaltered output from the LISP Generator. ; This program was created on December 8 2006 using the LISP Generator. ; Define the function (the program). (defun c:INCH-CM ( / ENT OLDTEXT INCHES CMS CM-STR NEWTEXT OLDCE OLDERR OLDTE) ; Save the current value of cmdecho then redefine it. (setq OLDCE (getvar "cmdecho")) (setvar "cmdecho" 1) ; Save the current value of texteval then set it to 1 (setq OLDTE (getvar "texteval")) (setvar "texteval" 1) ; Save the current value of the error handling subroutine then redefine it. (setq OLDERR *error*) (defun *error* (errmes) (princ (strcat "\nExecution of INCH-CM halted by the following error: " ERRMES)) (setvar "cmdecho" OLDCE) (setq *error* OLDERR) (prin1) ) ;(setq *error* nil) ; NOTE: to turn error handling off, erase the semicolon in the line above. ; GET a ENTITY from the user and store it in ENT. (setq ENT (car (entsel "\nSelect object to modify: "))) ; EXTRACT the Text string from the entity ENT and store it in OLDTEXT. (setq OLDTEXT (cdr (assoc 1 (entget ENT)))) ; CONVERT the string OLDTEXT to a real number and store it in INCHES (setq INCHES (atof OLDTEXT)) ; assign result of MATH calculation to CMS. (setq CMS (* INCHES 2.54)) ; CONVERT the real number CMS to a string and store it in CM-STR (setq CM-STR (rtos CMS 2 2)) ; OPERATION - store the result in NEWTEXT. (setq NEWTEXT (STRCAT OLDTEXT " {" CM-STR " cm}")) ; MODIFY the code 1 value (Text string) of the entity ENT. (if (assoc 1 (entget ENT)) (entmod (subst (cons 1 NEWTEXT) (assoc 1 (entget ENT)) (entget ENT))) (entmod (cons (cons 1 NEWTEXT) (entget ENT))) ) ; Reset "cmdecho" to previous value. (setvar "cmdecho" OLDCE) ; Reset "texteval" to previous value. (setvar "texteval" OLDTE) ; Reset *error* to previous definition. (setq *error* OLDERR) ; Exit quietly (no return value.) (prin1) )