;***************************************** AUTOUCS.LSP ********************************* ; AUTOLISP PROGRAM DESCRIPTION: SINGLE KEY STROKE UCS MANIPULATION AND AUTOMATIC ZOOMING ; ; DEVELOPED ON AUTOCAD R12c2 DOS PLATFORM ; ; COPYRIGHT (C) 1993,94,95,96 Patrick J. Hughes Jr. ALL RIGHTS RESERVED ; ; ; DEVELOPED BY: Patrick J. Hughes Jr. ; ENGINEERED DESIGN SOLUTIONS ; 2620 Auburn Street ; Rockford Il, 61101 ; (815) 965-0882 ; e-mail: support@engds.com ; homepage: http://www.engds.com ; ; CREATED: 12/15/93 ; LAST MODIFIED: 10/02/96 (AUTOCAD R13c4a, WIN95 PLATFORM) ; ; A HELPFUL HINT: THIS IS THE SCREEN MENU ADDITION I USE: ; [AUTOUCS ]^C^C^C(IF C:AUTOUCS NIL (LOAD "AUTOUCS")) AUTOUCS (AUTOUCS); ; ; THIS AUTOLISP ROUTINE USES THE GRREAD FUNCTION WHICH IS PLATFORM DEPENDENT. ; IF YOU FIND THE ASSIGNED KEY VALUES DO NOT FUNCTION PROPERLY YOU CAN TRACK ; YOUR KEYBOARD LAYOUT AT THE COMMAND PROMPT WITH THE FOLLOWING CODE: ; (WHILE (SETQ A (GRREAD NIL 2)) (PRINT A)) AND SUBSTITUTE THE RETURNED VALUES ; IN THE APPROPRIATE PLACE IN THE CODE. ; ; Permission to use, copy, modify, and distribute this software ; for any purpose and without fee is hereby granted, provided ; that the above copyright notice appears in all copies and that ; both that copyright notice and this permission notice appear in ; all supporting documentation. ; ; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED ; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR ; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED. ;************************************************ ERROR HANDLER **************************** (defun autoucs_err (s) ; If an error (such as CTRL-C) occurs (if (/= s "Function cancelled") (princ (strcat "\nError: " s)) ) ; VARIABLE RESETS AND COMMANDS TO PERFORM UPON ERRORS: (SETVAR "OSMODE" OMODE) (if olderr (setq *error* olderr)) ; Restore old *error* handler (princ) ) ;************************************************ MAIN PROGRAM ******* (defun C:autoucs (/ olderr) (setq olderr *error* ; Save acad error routine *error* autoucs_err ; Substitute eds routine ) ;SAVE VARIABLES TO RESTORE UPON ERRORS HERE: (SETQ OMODE (GETVAR "OSMODE")) (SETVAR "OSMODE" 0) ; (WHILE (/= 13 CHAR) ; (PROMPT "\n* UCSMODE * ,,L,R,U,D,HOME,I,E,O,P,Z,3,?") (SETQ CHAR (CAR (CDR (GRREAD NIL 2 1)))) (COND ((= CHAR 51) ;3 (3) (SETQ OC (GETPOINT "\nPick Origin: \n")) (SETQ OX (GETPOINT "\nPick Point on positive x: \n")) (SETQ OY (GETPOINT "\nPick Point on positive y: \n")) (COMMAND "UCS" "3" OC OX OY)) ((OR (= CHAR 101) (= CHAR 69)) ;E (ENTITY) (PROMPT "\nPick Entity") (COMMAND "_.UCS" "_E" PAUSE)) ((OR (= CHAR -6) (= CHAR 203)) ;(LEFT ARROW) (COMMAND "_.UCS" "_Y" "-90")) ((OR (= CHAR -7) (= CHAR 205)) ;(RIGHT ARROW) (COMMAND "_.UCS" "_Y" "90")) ((OR (= CHAR -4) (= CHAR 200)) ;(UP ARROW) (COMMAND "_.UCS" "_X" "-90")) ((OR (= CHAR -5) (= CHAR 208)) ;(DOWN ARROW) (COMMAND "_.UCS" "_X" "90")) ((= CHAR 32) ; (COMMAND "_.UCS" "_Z" "90")) ((OR (= CHAR 53) (= CHAR 72) (= CHAR 104) (= CHAR 999) (= CHAR 199)) ;(HOME) (COMMAND "_.UCS" "_W")) ((OR (= CHAR 112) (= CHAR 80)) ;P (COMMAND "_.PLAN" "")) ((OR (= CHAR 105) (= CHAR 73)) ;I (COMMAND "_.VPOINT" "1.5,-1.75,.875")) ((OR (= CHAR 122) (= CHAR 90)) ;Z (AUTOZOOM)) ((OR (= CHAR 111) (= CHAR 79)) ;O (SETQ OC (GETPOINT "\nPick Origin: \n")) (COMMAND "_.UCS" "_O" OC)) ((OR (= CHAR 118) (= CHAR 86)) ;V (COMMAND "_.UCS" "_V")) ((= CHAR 63) ;? (PROMPT "\n rotate z, rotate y, rotate x, ucs world entity\n") (PROMPT "\n zoom mode, iso view, origin,

plan, ucs 3 point")) );COND );WHILE (SETVAR "OSMODE" OMODE) (setq *error* olderr) ; Reset acad error handler (princ) (SETQ CHAR NIL) );DEFUN AUTOUCS ;****************************************** AUTOZOOM.LSP ********************************* (DEFUN AUTOZOOM () (WHILE (/= 13 CHAR) ; (PROMPT "\n* ZOOMMODE * L,R,U,D,I,O,P,S,R,U,V,W,?") (SETQ CHAR (CAR (CDR (GRREAD NIL 2 1)))) (COND ((OR (= CHAR 112) (= CHAR 80)) ;P (COMMAND "_.ZOOM" "_P")) ((OR (= CHAR 118) (= CHAR 86)) ;V (COMMAND "_.ZOOM" "_V")) ((OR (= CHAR 115) (= CHAR 83)) ;S (COMMAND "_.VIEW" "_S" "TEMP")) ((OR (= CHAR 114) (= CHAR 82)) ;R (IF (TBLSEARCH "VIEW" "TEMP") (COMMAND "_.VIEW" "_R" "TEMP") (PROMPT "\n NO SAVED VIEW"))) ((OR (= CHAR 117) (= CHAR 85)) ;U (AUTOUCS)) ((OR (= CHAR 105) (= CHAR 73)) ;I (COMMAND "_.ZOOM" "_C" (GETVAR "VIEWCTR") (* 0.95 (GETVAR "VIEWSIZE")))) ((OR (= CHAR 111) (= CHAR 79)) ;O (COMMAND "_.ZOOM" "_C" (GETVAR "VIEWCTR") (* 1.05 (GETVAR "VIEWSIZE")))) ((OR (= CHAR 119) (= CHAR 87)) ;W (PROMPT "\nPick corners:\n") (COMMAND "_.ZOOM" "_W" PAUSE PAUSE)) ((OR (= CHAR -6) (= CHAR 203)) ;(LEFT ARROW) (SETQ VSIZE (GETVAR "VIEWSIZE") PDIST (LIST (/ VSIZE -3.0) 0.0)) (COMMAND "_.PAN" PDIST "")) ((OR (= CHAR -7) (= CHAR 205)) ;(RIGHT ARROW) (SETQ VSIZE (GETVAR "VIEWSIZE") PDIST (LIST (/ VSIZE 3.0) 0.0)) (COMMAND "_.PAN" PDIST "")) ((OR (= CHAR -4) (= CHAR 200)) ;(UP ARROW) (SETQ VSIZE (GETVAR "VIEWSIZE") PDIST (LIST 0.0 (/ VSIZE 3.0))) (COMMAND "_.PAN" PDIST "")) ((OR (= CHAR -5) (= CHAR 208)) ;(DOWN ARROW) (SETQ VSIZE (GETVAR "VIEWSIZE") PDIST (LIST 0.0 (/ VSIZE -3.0))) (COMMAND "_.PAN" PDIST "")) ((= CHAR 63) ;? (PROMPT "\n in, out, vmax, save temp, restore temp,\n") (PROMPT "\n ucs mode,

zoom prev, zoom window, pan")) );COND );WHILE );DEFUN AUTOZOOM (SETQ CHAR NIL) (PRINC)