- [FONT=courier new]
- Loading AutoLISP Files.
- Note!!
- One of the most important things to remember about loading AutoLisp Routines is to
- ensure that your Lisp files and any support files (i.e DCL Files; DAT Files; etc) are in your
- AutoCad search path. (I dedicate a directory to all my Lisp files and relevant support
- files.
- There are numerous ways of loading AutoLisp Files :
- Command Line Loading.
- The simplest is from the AutoCad command line.
- The syntax for loading AutoLisp files is :
- (load "filename")
- The.lsp extension is not required.
- Menu Loading.
- The following code samples are one way of loading AutoLisp files from a menu.
- Pull Down Menu's :
- ***POP12
- T_Steel [Steel Menu]
- T_Beams [Drawing Setup]^C^C^P+
- (cond ((null C:DDSTEEL) (prompt "Please Wait...")(load "DDSTEEL"))) DDSTEEL
- Toolbars :
- ***TOOLBARS
- **STEEL
- TB_DDSTEEL [_Button("Steel", "STEEL.bmp", "STEEL32.bmp")]^C^C^P+
- (cond ((null C:ddsteel) (prompt "Please Wait...")(load "ddsteel"))) ddsteel
- This method of loading Lisp files first checks to see if the routine is already loaded. If it
- is, it runs the routine. If it is not, it first loads the routine, then runs it. Clever Hey...
- AcadDoc.Lsp File.
- The AcadDoc.Lsp file is a useful way of loading a library of AutoLisp routines.
- Each time you start a drawing AutoCad searches the library path for an AcadDoc.Lsp
- file. If it finds one, it loads the file into memory.
- You could use the normal load function (load "filename") in your AcadDoc.Lsp file but if
- an error occurs whilst attempting to load one of your routines, the remainder of the file is
- ignored and is not loaded.
- Therefore, you must use the on failure argument with the load function :
- (load "Lispfile1" "\nLispfile1 not loaded")
- (load "Lispfile2" "\nLispfile2 not loaded")
- (load "Lispfile3" "\nLispfile3 not loaded")
- The .MNL File
- The other type of file that AutoCad loads automatically is the .MNL file.
- If you have a partial menu file it can also have it's own .MNL file.
- Just remember that the .MNL file must have exactly the same name as your partial menu
- file. (except for the .MNL extension, of course.)
- You can load Lisp files from this file using the load function exactly the same as you did
- in the AcadDoc.Lsp file.
- Command Autoloader
- When you automatically load a command from your AcadDoc.Lsp file (or a .MNL file) the
- commands definition consumes your systems resources whether you actually use the
- command or not. The Autoload function makes a command available without loading the
- entire routine into memory.
- (Autoload "Utils" '("Utils1" Utils2" "Utils3"))
- (Autoload "DDSteel" '("DDSteel"))
- This would automatically load the commands Utils1, Utils2 and Utils3 from the Utils.Lsp
- file and DDSteel from the DDSteel.Lsp file.
- S::Startup Function.
- If the user defined function S::Startup is included in the AcadDoc.lsp or a .MNL file,
- it is called when you enter a new drawing or open an existing drawing.
- e.g. Say that you wanted to override the standard AutoCad LINE and COPY commands
- with versions of your own, your AcadDoc.Lsp file would something like this :
- (defun C:LINE ()
- .....Your Definition.....
- )
- (defun C:COPY ()
- .....Your Definition.....
- )
- (defun S::Startup ()
- (command "Undefine" "LINE")
- (command "Undefine" "COPY")
- )
- Before the drawing is initialised, new definitions for LINE and COPY are defined. After
- the drawing is initialised, the S::Startup function is called and the standard definitions of
- LINE and COPY are undefined.
- [/FONT]
|