;***************************************** AUTODIM.LSP ********************************* ; AUTOLISP PROGRAM DESCRIPTION: SINGLE KEY STROKE DIMENSIONING ; ; 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: duhvinci@engds.com ; website: http://www.engds.com ; ; Visit http://www.engds.com/Products/Chronos/Chronos.html to download a 30 day free ; trial of Chronos for AutoCAD - a time logging utility for AutoCAD based products. ; ; ; Visit http://www.engds.com/Products/DwgGrid/DwgGrid.html to download a 15 day free ; trial of DwgGrid for AutoCAD - Preview ,Print, and save the AutoCAD preview image ; including Inventor, Apprentice, and Revit file types. ; ; ; ; CREATED: 12/20/93 ; LAST MODIFIED: 10/14/96 (AUTOCAD R13c4a, WIN95 PLATFORM) ; ; 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 autodim_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 "CMDECHO" CMDECH) (SETVAR "TEXTEVAL" TEXTEV) (SETVAR "OSMODE" OMODE) (SETVAR "CECOLOR" CCLR) (if olderr (setq *error* olderr)) ; Restore old *error* handler (princ) ) ;************************************************ MAIN PROGRAM ******* (defun C:autodim (/ olderr CHAR) (setq olderr *error* ; Save acad error routine *error* autodim_err ; Substitute eds routine ) ;SAVE VARIABLES TO RESTORE UPON ERRORS HERE: (SETQ TEXTEV (GETVAR "TEXTEVAL") CMDECH (GETVAR "CMDECHO") OMODE (GETVAR "OSMODE") CCLR (GETVAR "CECOLOR") ) (SETVAR "TEXTEVAL" 1) (SETVAR "OSMODE" 0) (SETVAR "CMDECHO" 1) (WHILE (/= 13 CHAR) (PROMPT "\n+,-,,,0,1,2,3,4,6,8,A,B,C,E,H,I,L,M,N,O,R,S,T,U,V,X,?,") (SETQ CHAR (CAR (CDR (GRREAD NIL 2 1)))) (COND ((OR (= CHAR 116) (= CHAR 84)) ;T (TEXT) (command "_.CECOLOR" "8") (command "_.DTEXT" PAUSE (GETVAR "TEXTSIZE") "")) ((OR (= CHAR 109) (= CHAR 77)) ;M (MTEXT) (SETVAR "OSMODE" 0) (command "_.MTEXT" PAUSE) (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((OR (= CHAR 108) (= CHAR 76)) ;L (LEADER) (SETVAR "OSMODE" 0) (command "_.LEADER") (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((OR (= CHAR 101) (= CHAR 69)) ;E (EDIT TEXT) (command "_.DDEDIT") (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((OR (= CHAR 104) (= CHAR 72)) ;H (HORIZONTAL) (SETVAR "OSMODE" 1) (if (= 1 (getvar "dimalt")) (setvar "dimdli" 11.0) (SETVAR "DIMDLI" 0.4375) ) (command "_.DIM1" "HOR") (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((OR (= CHAR 118) (= CHAR 86)) ;V (VERTICAL) (PRINT) (SETVAR "OSMODE" 1) (if (= 1 (getvar "dimalt")) (setvar "dimdli" 20.0) (SETVAR "DIMDLI" 0.5625) ) (command "_.DIM1" "VER") (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((OR (= CHAR 98) (= CHAR 66)) ;B (BASELINE) (SETVAR "OSMODE" 1) (command "_.DIM1" "BAS") (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((OR (= CHAR 99) (= CHAR 67)) ;C (CONTINUE) (SETVAR "OSMODE" 1) (command "_.DIM1" "CON") (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((OR (= CHAR 114) (= CHAR 82)) ;R (ROTATED) (SETVAR "OSMODE" 1) (command "_.DIM1" "ROT") (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((OR (= CHAR 97) (= CHAR 65)) ;A (ANGULAR) (SETVAR "OSMODE" 0) (command "_.DIM1" "ANG") (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((OR (= CHAR 115) (= CHAR 83)) ;S (STRETCH) (SETVAR "OSMODE" 0) (command "_.STRETCH" "C") (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((OR (= CHAR -7) (= CHAR 205)) ;(CTRL-RIGHT ARROW) (command "_.DIMTOL" "ON")) ((OR (= CHAR -6) (= CHAR 203)) ;CTRL-(LEFT ARROW) (command "_.DIMTOL" "OFF")) ((OR (= CHAR -4) (= CHAR 200)) ;(CTRL-UP ARROW) (command "_.DIMLIM" "ON")) ((OR (= CHAR -5) (= CHAR 208)) ;(CTRL-DOWN ARROW) (command "_.DIMLIM" "OFF")) ((OR (= CHAR 999) (= CHAR 199)) ;(HOME) (command "_.DIMTP" "0" "DIMTM" "0") (command "_.DIMTOL" "OFF") (command "_.DIMLIM" "OFF")) ((= CHAR 43) (SETQ PRSTRG (STRCAT "\nUpper Tolerance: <" (rtos (getvar "dimtp")) ">")) (SETQ DIMP (GETSTRING prstrg)) ;+ (command "_.DIMTP" DIMP)) ((= CHAR 45) ;- (SETQ PRSTRG (STRCAT "\nLower Tolerance: <" (rtos (getvar "dimtm")) ">")) (SETQ DIMM (GETSTRING prstrg)) (command "_.DIMTM" DIMM)) ((= CHAR 48) ;0 (SETVAR "LUPREC" 0) (SETVAR "AUPREC" 0) (SETVAR "DIMTDEC" 0) (SETVAR "DIMDEC" 0) (setvar "dimalttd" 1) (setvar "dimaltd" 1)) ((= CHAR 49) ;1 (SETVAR "LUPREC" 1) (SETVAR "AUPREC" 1) (SETVAR "DIMTDEC" 1) (SETVAR "DIMDEC" 1) (setvar "dimalttd" 2) (setvar "dimaltd" 2)) ((= CHAR 50) ;2 (SETVAR "LUPREC" 2) (SETVAR "AUPREC" 2) (SETVAR "DIMTDEC" 2) (SETVAR "DIMDEC" 2) (setvar "dimalttd" 3) (setvar "dimaltd" 3)) ((= CHAR 51) ;3 (SETVAR "LUPREC" 3) (SETVAR "AUPREC" 3) (SETVAR "DIMTDEC" 3) (SETVAR "DIMDEC" 3) (setvar "dimalttd" 4) (setvar "dimaltd" 4)) ((= CHAR 52) ;4 (SETVAR "LUPREC" 4) (SETVAR "AUPREC" 4) (SETVAR "DIMTDEC" 4) (SETVAR "DIMDEC" 4)) ((= CHAR 54) ;6 (SETVAR "LUPREC" 6) (SETVAR "AUPREC" 6) (SETVAR "DIMTDEC" 6) (SETVAR "DIMDEC" 6)) ((= CHAR 56) ;8 (SETVAR "LUPREC" 8) (SETVAR "AUPREC" 8) (SETVAR "DIMTDEC" 8) (SETVAR "DIMDEC" 8)) ((OR (= CHAR 117) (= CHAR 85)) ;U (UPDATE) (GETLAY) (SETVAR "OSMODE" 0) (command "_.DIM1" "UPDATE") (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((OR (= CHAR 105) (= CHAR 73)) ;I (INSIDE) (SETVAR "DIMTIX" 1) (SETVAR "DIMSOXD" 0) (SETVAR "DIMTAD" 0) (command "_.DIM1" "UPDATE") (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((OR (= CHAR 111) (= CHAR 79)) ;O (OUTSIDE) (SETVAR "DIMTIX" 0) (SETVAR "DIMSOXD" 0) (SETVAR "DIMTAD" 0) (command "_.DIM1" "UPDATE") (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((OR (= CHAR 110) (= CHAR 78)) ;N (NEWTEXT) (command "_.DIM1" "NEW") (WHILE (/= (GETVAR "CMDACTIVE") 0) (COMMAND PAUSE) )) ((= CHAR 63) ;? (PROMPT "\n <+> Upper tol., <-> Lower tol., Clear tol., Limits tol.,\n") (PROMPT "\n No tol., Stack tol., No tol.,\n") (PROMPT "\n Angular, Baseline, Continue, Edit text, Horizontal,\n") (PROMPT "\n Inside, Leader, Mtext, Newtext Outside, Rotated,\n") (PROMPT "\n Stretch, Text, Update, Vertical, <0 1 2 3 4 6 8> Dec. Prec.,\n") ) ):COND );WHILE (SETVAR "CMDECHO" CMDECH) (SETVAR "TEXTEVAL" TEXTEV) (SETVAR "OSMODE" OMODE) (SETVAR "CECOLOR" CCLR) (setq *error* olderr) ; Reset acad error handler (princ) );DEFUN (PRINC)