The library code may be
1) linked as source files together with your application (see Projects)or
2) it may be loaded dynamically at run-time as complete stdlib project or
3) just parts may be loaded. (std-require 'stdstr) for example. (seperate modules)
Acad Independent | Filename | Modulename |
- Lists | STDLIST.LSP | STDLIST |
- Strings | STDSTR.LSP | STDSTR |
- Files | STDFILE.LSP | STDFILE |
- External Loader | STDINIT2.LSP | none |
- FILEEXT | FILEEXT.FAS | FILEEXT |
- BINIO | BINIO.FAS | BINIO |
- REGISTRY | REGISTRY.LSP | REGISTRY |
- INIFILE | INIFILE.LSP | INIFILE |
- Logic and Math | STDMATH.LSP | STDMATH |
- Random Numbers | RANDOM.LSP | RANDOM |
- Primes | PRIMES.LSP | PRIMES |
- Combinatorics | COMBINATIONS.LSP | COMBINATIONS |
- Points and Geometry | STDPOINT.LSP | STDPOINT |
- Lisp Specific | STDLISP.LSP | STDLISP |
- Debugging Testing | STDDEBUG.LSP | STDDEBUG |
- Standalone Workarounds | STANDALONE.LSP | STANDALONE |
Acad Specific | Filename | Modulename |
- Initialization | STDINIT.LSP | STDINIT |
- Modules | STDMODUL.LSP | none |
- User Input | STDINPUT.LSP | STDINPUT |
- Tables | STDTBL.LSP | STDTBL |
- Entities | STDENT.LSP | STDENT |
- Entmake | ENTMAKE.LSP | ENTMAKE |
- Miscellaneous | STDMISC.LSP | STDMISC |
- Timelib | STDTIME.LSP | STDTIME |
- Error Handling | STDERROR.LSP | STDERROR |
- Localization | STDLOCAL.LSP | STDLOCAL |
- Multiple Files Dialog | GETFILEM.LSP | GETFILEM |
- Various external helpers | stdlib<xx>.arx, ... | STDLIB-ADS, ... |
STDINIT must be loaded as first.
See STDLIB.LSP for the complete layout and loading scheme. This is usually the last file.
See also Modules.
Main modules are:
STDINIT - Initialization, must be the first
STDSTR - Strings
STDLIST - Lists, Trees, Sets
STDLISP - Symbols, Functions, Types, Print
STDMATH - Logic, Math, Trigonometry, ...
STDPOINT - Points, Geometry
STDFILE - Filenames, Directories, Attributes, OS dep. and indep. file stuff
Helpers for these are:
STDINIT2 - dynamic code for initialization of external modules, called by STDFILE
STDMODUL - called by STDINIT, defines the module code
Acad dependent modules are:
STDTIME - Date Conversion, Arithmetic, Measuring
STDINPUT - User Input Simplification
STDENT - Acad Entities
STDTBL - Acad Tables and associated Properties (layer, blocks,...)
STDMISC - Miscellaneous Acad specific code (blockupdate, commands,...)
DICT - Dictionaries
Additional modules (not loaded per default) are:
STDERROR - Error handling (set and restore)
STDLOCAL - Localization issues (foreign languages, codepages)
STDDEBUG - Debugging and Testing
ENTMAKE - Entmaking
GETFILEM - Get Multiple Files Dialog
COMBINATIONS - Combinatorial functions
RANDOM - More random number generators and states
PRIMES - Prime numbers
STANDALONE - Workarounds to test without ACAD (currently only with vill2)
Optional External Modules (not LISP) available are
FILEEXT - required for STDFILE and some extensions for other modules
INIFILE - read and write Windows style INI files
REGISTRY - read and write Windows Registry
BINIO - read and write binary files
External adsrx modules (contained in e.g. stdlibxx.arx) are
STDLIB-ADS, STDLOCAL-ADS, FILEEXT, BINIO, INIFILE, REGISTRY, RANDOM, ARXSTUFF.
Most files are modules. As exceptions, STINIT2 and STDMODUL are no seperate modules.
Some files are just "logical" modules, providing subsets or sets of the library, just as STDACI (acad independent) or STDLIB (all) or the stdlib adsrx file.
STD%PRJ provides just a project specific marker to support delayed module loading. With projects require is useless because the files are loaded at once. And we are able to call the top-level functions from your project for safer initializing. Otherwise on any error on loading a project the whole project isnot initialized and you cannot react on any error.
A stdlib project file is the whole collection of stdlib modules loaded at once. External modules are tried to be loaded as well.
Normally each module tries to solve dependencies and loads each required submodule also. With loading the project this is not done, which needs less File IO and is therefore faster.
This is supplied with STDALL.LSP
for plain AutoLISP, STDLIB.BI4
for acomp, STDLIB.FAS
and STDLIB.VLX
for Visual Lisp / Vital Lisp based systems.
Loading projects is faster but needs more memory if would need just parts of it.
Normally you create your own projects including the required stdlib modules into one big project of your own. Be sure not to forget the STD%PRJ marker before the STDLIB modules and something like STDLIB behind.