AfraLisp Blog

The AutoLisp/Visual Lisp/VBA Resource Website

AfraLisp Blog

Home Newsletter Utter Rubbish Coding Tips AutoCAD Tips Contact Downloads WAUN

Page I. Page II. Home.

Drawing Setup Tutorial - Page III.

Here is the complete AutoLisp Coding : 

(defun C:SETUP ()				;define function
     (setvar "BLIPMODE" 0)			;switch off variables
     (setvar "CMDECHO" 0)
     (setvar "OSMODE" 0)
     (setq typ "e")				;set default
     (setq dcl_id (load_dialog "setup.dcl"))	;load dialogue
     (if (not 					;test if loaded
           (new_dialog "setup" dcl_id)		;new dialogue
         )					;end not
           (exit)				;if not loaded, exit
     )						;end if
     (set_tile "rb1" "1")			;switch on radio button
     (action_tile "rb1"				;if button selected
         "(setq typ \"e\")			;store sheet type
          (mode_tile \"eb1\" 2)")		;*set focus to edit box
     (action_tile "rb2"				;if button selected
         "(setq typ \"a\")			;store sheet type
          (mode_tile \"eb1\" 2)")		;*set focus to edit box
     (action_tile "rb3"				;if button selected
         "(setq typ \"c\")			;store sheet type
          (mode_tile \"eb1\" 2)")		;*set focus to edit box
     (action_tile "rb4"				;if button selected
         "(setq typ \"el\")			;store sheet type
          (mode_tile \"eb1\" 2)")		;*set focus to edit box
     (action_tile "rb5"				;if button selected
         "(setq typ \"b\")			;store sheet type
          (mode_tile \"eb1\" 2)")		;*set focus to edit box

     (set_tile "rb6" "1")			;*make default
     (setq SIZ "A0")				;*Default sheet size
     (set_tile "eb1" "1")			;*initial edit box value
     (mode_tile "eb1" 2)			;*set focus to edit box
     (action_tile "rb6"				;*if button selected
         "(setq siz \"A0\")			;*store sheet size
          (mode_tile \"eb1\" 2)")		;*set focus to edit box
     (action_tile "rb7"				;*if button selected
         "(setq siz \"A1\")			;*store sheet size
          (mode_tile \"eb1\" 2)")		;*set focus to edit box
     (action_tile "rb8"				;*if button selected
         "(setq siz \"A2\")			;store sheet size
          (mode_tile \"eb1\" 2)")		;*set focus to edit box
     (action_tile "rb9"				;*if button selected
         "(setq siz \"A3\")			;*store sheet size
          (mode_tile \"eb1\" 2)")		;*set focus to edit box
     (action_tile "rb10"			;*if button selected
         "(setq siz \"A4\")			;*store sheet size
          (mode_tile \"eb1\" 2)")		;*set focus to edit box

     (action_tile "cancel"			;if Cancel selected
         "(done_dialog)(setq userclick nil)")	;close dialogue, clear flag
     (action_tile "accept"			;if OK selected
       (strcat					;*string 'em together
      "(progn (setq #dwgsc			;*store value
              (atof (get_tile \"eb1\")))"	;*get edit box value
            "(done_dialog) (setq userclick T))" ;*close dialogue, set flag
       )					;*end progn
     )						;*end action_tile

     (start_dialog)				;start dialogue
     (unload_dialog dcl_id)			;unload dialogue

(if userclick					;*if flag is true
    (progn					;*do the following
           (if (eq siz "A0")			;*If size is A0
             (progn				;*Do the following
		(setq x 1189.0			;*Set x limits
                      y 841.0			;*Set y limits
                )				;*End setq
             )					;*End progn
            )  					;*End If
           (if (eq siz "A1")			;*If size is A1
             (progn				;*Do the following
		(setq x 841.0			;*Set x limits
                      y 594.0			;*Set y limits
                )				;*End setq
             )					;*End progn
            )  					;*End If
           (if (eq siz "A2")			;*If size is A2
             (progn				;*Do the following
		(setq x 594.0			;*Set x limits
                      y 420.0			;*Set y limits
                )				;*End setq
             )					;*End progn
            )  					;*End If
           (if (eq siz "A3")			;*If size is A3
             (progn				;*Do the following
		(setq x 420.0			;*Set x limits
                      y 297.0			;*Set y limits
                )				;*End setq
             )					;*End progn
            )  					;*End If
           (if (eq siz "A4")			;*If size is A4
             (progn				;*Do the following
		(setq x 297.0			;*Set x limits
                      y 210.0			;*Set y limits
                )				;*End setq
             )					;*End progn
            )  					;*End If

           (setq SIZE (strcat TYP SIZ))		;*Construct name of Template 

           (if (eq typ "e") (eng))		;*Run Engineering Setup
           (if (eq typ "a") (arch))		;*Run Architectural Setup
           (if (eq typ "c") (civil))		;*Run Civil Setup
           (if (eq typ "el") (elec))		;*Run Electrical Setup
           (if (eq typ "b") (blank))		;*Run Blank Setup
       
    )						;*End progn
  )						;*End If

 (princ)					;finish clean
)						;end function
;;;----------------------------------------------------------------------------
(defun blank ()					;*Define function

      (setvar "DIMSCALE" #DWGSC)		;*Set Dimscale
      (setvar "USERR1" #DWGSC)			;*Store Scale for future
      (setvar "LTSCALE" (* #DWGSC 10))		;*Set Ltscale
      (setvar "REGENMODE" 1)			;*Regen ON
      (setvar "TILEMODE" 1)			;*Tilemode ON
      (setq n (* 3.5 #DWGSC))			;*Store Text Height

      (setq L (list (* X #DWGSC) (* Y #DWGSC))	;*Calculate Limits
      )

      (command "LIMITS" "0,0" L 
               "ZOOM" "W" "0,0" L
	       "STYLE" "italict"
               "italict" N "" "" "" "" ""
               "INSERT" SIZE "0,0" #DWGSC "" ""
      )						;*Set Up Drawing
       (prompt "\n ")				;*Blank Line
      (prompt "\nO.K Setup Routine Complete")	;*Inform User

 (princ)					;*Exit Quietly
)						;*End Function
;;;----------------------------------------------------------------------------
(defun eng ()					;*Define function

      (setvar "DIMSCALE" #DWGSC)		;*Set Dimscale
      (setvar "USERR1" #DWGSC)			;*Store Scale for future
      (setvar "LTSCALE" (* #DWGSC 10))		;*Set Ltscale
      (setvar "REGENMODE" 1)			;*Regen ON
      (setvar "TILEMODE" 1)			;*Tilemode ON
      (setq n (* 3.5 #DWGSC))			;*Store Text Height

      (setq L (list (* X #DWGSC) (* Y #DWGSC))	;*Calculate Limits
      )

      (command "LIMITS" "0,0" L 
               "ZOOM" "W" "0,0" L
	       "STYLE" "italict"
               "italict" N "" "" "" "" ""
               "INSERT" SIZE "0,0" #DWGSC "" ""
      )						;*Set Up Drawing
       (prompt "\n ")				;*Blank Line
      (prompt "\nO.K Setup Routine Complete")	;*Inform User

 (princ)					;*Exit Quietly
)						;*End Function
;;;----------------------------------------------------------------------------
(defun arch ()					;*Define function

      (setvar "DIMSCALE" #DWGSC)		;*Set Dimscale
      (setvar "USERR1" #DWGSC)			;*Store Scale for future
      (setvar "LTSCALE" (* #DWGSC 10))		;*Set Ltscale
      (setvar "REGENMODE" 1)			;*Regen ON
      (setvar "TILEMODE" 1)			;*Tilemode ON
      (setq n (* 3.5 #DWGSC))			;*Store Text Height

      (setq L (list (* X #DWGSC) (* Y #DWGSC))	;*Calculate Limits
      )

      (command "LIMITS" "0,0" L 
               "ZOOM" "W" "0,0" L
	       "STYLE" "italict"
               "italict" N "" "" "" "" ""
               "INSERT" SIZE "0,0" #DWGSC "" ""
      )						;*Set Up Drawing
       (prompt "\n ")				;*Blank Line
      (prompt "\nO.K Setup Routine Complete")	;*Inform User

 (princ)					;*Exit Quietly
)						;*End Function
;;;----------------------------------------------------------------------------
(defun civil ()					;*Define function

      (setvar "DIMSCALE" #DWGSC)		;*Set Dimscale
      (setvar "USERR1" #DWGSC)			;*Store Scale for future
      (setvar "LTSCALE" (* #DWGSC 10))		;*Set Ltscale
      (setvar "REGENMODE" 1)			;*Regen ON
      (setvar "TILEMODE" 1)			;*Tilemode ON
      (setq n (* 3.5 #DWGSC))			;*Store Text Height

      (setq L (list (* X #DWGSC) (* Y #DWGSC))	;*Calculate Limits
      )

      (command "LIMITS" "0,0" L 
               "ZOOM" "W" "0,0" L
	       "STYLE" "italict"
               "italict" N "" "" "" "" ""
               "INSERT" SIZE "0,0" #DWGSC "" ""
      )						;*Set Up Drawing
       (prompt "\n ")				;*Blank Line
      (prompt "\nO.K Setup Routine Complete")	;*Inform User

 (princ)					;*Exit Quietly
)						;*End Function
;;;----------------------------------------------------------------------------
(defun elec ()					;*Define function

      (setvar "DIMSCALE" #DWGSC)		;*Set Dimscale
      (setvar "USERR1" #DWGSC)			;*Store Scale for future
      (setvar "LTSCALE" (* #DWGSC 10))		;*Set Ltscale
      (setvar "REGENMODE" 1)			;*Regen ON
      (setvar "TILEMODE" 1)			;*Tilemode ON
      (setq n (* 3.5 #DWGSC))			;*Store Text Height

      (setq L (list (* X #DWGSC) (* Y #DWGSC))	;*Calculate Limits
      )

      (command "LIMITS" "0,0" L 
               "ZOOM" "W" "0,0" L
	       "STYLE" "italict"
               "italict" N "" "" "" "" ""
               "INSERT" SIZE "0,0" #DWGSC "" ""
      )						;*Set Up Drawing
       (prompt "\n ")				;*Blank Line
      (prompt "\nO.K Setup Routine Complete")	;*Inform User

 (princ)					;*Exit Quietly
)						;*End Function
;;;----------------------------------------------------------------------------


(princ)						;*Clean Loading
;;;-----------------------------------------------------------------------------

To download source coding and template files Click Here.

Please remember that you will need to create some of the template files yourself.

Page I. Page II. Home.
 
The AutoLisp/Visual Lisp/VBA Resource Website

Copyright © 1999-Perpetuity by AfraLisp

All rights reserved.
Information in this document is subject to change without notice.
Site created and maintained by Kenny Ramage

The AutoLisp/Visual Lisp/VBA Resource Website