Introduction

The information on this page is either not documented or only partially documented. As with all undocumented and unsupported information, use it with caution! That said, there are some useful features hidden away inside AutoCAD which everyone may find interesting, and even useful. Contributors are listed at the end of each page, and their contributions are denoted with a superscripted number in brackets (e.g. [1]) in the area where they contributed information.

NOTICE: The contents of this page are Copyright 1998-2002 ManuSoft, All Rights Reserved. The contents of this page may not be reproduced under any circumstances without permission from the author! Permission to print one hardcopy of this page for individual use is hereby granted.

DISCLAIMER: ManuSoft is in no way responsible for either the accuracy or completeness of information on this page! Neither ManuSoft, Owen Wengerd, nor any credited or uncredited contributors may be held liable for any damages which may result either directly or indirectly from the use of information on this page! In other words, use at your own risk!

Owen Wengerd, President
ManuSoft

Undocumented Commands

Some of these commands are present in the AutoCAD command table, but are disabled, and therefore are not recognized as commands. They are included for the sake of completeness.

Command Introduced Notes
*SCROLL R12 Resets the "pan" scroll bars.
.ACADSTATUS pre R12 Creates ACAD.SLG in same directory as ACAD.EXE. The file contains an internal status log. [You must precede this command with an extra period to use it at the command line.]
.ACLTSTATUS R13 Same as ACADSTATUS, except for AutoCAD LT. [You must precede this command with an extra period to use it at the command line.]
.SYSSTATUS R14 Does nothing.
-OLDMTEXT R14 Runs the R13 -MTEXT command.
ADIDUMP R13 Does nothing.
AXIS pre R12 It just tells you it's a discontinued command (remember AXISMODE?)
CONTENT R14 Does nothing. Could it be a prelude for the 'Content Explorer'?
CONVERTPOLY R14 Convert both ways between old style polylines and the new lightweight polylines. This is a very useful one!
DLGCOLOR* R13 Controls dialog colors in R13/DOS, does nothing in other versions.
*This command is documented in R13, but not in R14.
DRGINSERT R14 Does nothing.
DUMPMEMALLOC R13 Provides internal memory information.
DVBIN R14 Does nothing. Probably intended for importing VBA macro.
DVBOUT R14 Does nothing. Probably intended for exporting VBA macro.
ENDSV R12 An interesting variant of END, with a warning about being unable to save vector files(?).
FILEOPEN R12 A command-line only variant of OPEN. In R13, this command is issued when selecting a file from the MRU file list in the 'File' menu.
KABOOM! R13 Does nothing. Looks fun, though!
KRISTI R13 Creates cat_acad.h and cat_acad.rc in the ACAD.EXE directory. These files contain resource definitions for all loaded toolbar buttons. They don't look very useful to me, but I'll bet Kristi needed them.
MAKEBLK R14 Does nothing.
OFFLINE R13 Warns that it is "not converted to AcDb yet", then does nothing.
OLDMTEXT R14 Runs the R13 MTEXT command.
OLDMTPROP R14 Runs the R13 MTPROP command.
PAINTER R13 Does nothing in R13, runs _MATCHPROP in R14.
PRPLOT pre R12 Tells you that it's a discontinued command (remember "printer plots"?)
RENDENV R14 Does nothing.
SETENV R13 Does nothing.
UNLOCK R13 Does nothing.
VIEWTOOLBAR R13 Does nothing.
XDRGINSERT R14 Does nothing.

Additional Information:

  1. Here's an intriguing command which crashes AutoCAD R13:
    ACRX_RESIDENT_COMMAND__DEFINE_MAX_BUFFER_SIZE_AS_64_CHARS_MAX_XX

Undocumented System Variables

Variable Type Range Introduced Notes
_LINFO string - pre R12 Hardware lock serial number; responds to (getvar "_LINFO") only.
_PKSER string - R9[2] The AutoCAD serial number (read-only).
Note that in versions of AutoCAD prior to R11(?), the serial number was a string in the executable which could be hacked to read 00-000000. In R11(?) a hook into the ZOOM command was enabled to immediately crash AutoCAD if the serial number string was tampered with.[2]
_SERVER boolean 0/1 R11[2] Network license server status (read-only).
_VERNUM string - R13 AutoCAD build number.
AUXSTAT integer -32768 - 32767 R13 auxiliary input device status[3]
AXISMODE boolean 0/1 pre R12 Holdover from old AXIS command; no longer used.
AXISUNIT '(x y) - pre R12 Holdover from old AXIS command; no longer used.
BS_BITS[2] integer -32768 - 32767 R11 only  
DBGLISTALL * * R10[2] Unknown function.
*Note that this was an integer with range -32768 - 32767 from R10 - R11, then it became a boolean (0/1).[2]
ENTEXTS integer [0, 1, 2] R12 Controls drawing extents calculation.
0 : extents are calculated each time they're needed (slower, but uses less memory).
1 : cache extents of each entity in short (2-byte) values if possible (compromise between speed and memory efficiency).
2 : cache extents of each entity as long (4-byte) values (fastest extents calculations, but uses more storage memory).
ENTMODS integer 0 - ~4Gig R12 Increments every time a database object is modified (read-only).
FORCE_PAGING integer 0 - ~4Gig R13  
GLOBCHECK integer [0, 1, 2, 3] R13 3 : show DCL dialog size when displaying dialog.
>0 : disallow local-language commands (very useful for developers!).
JWDEBUG[2] ? ? R9 - R10 Probably a "debug" flag used by a programmer with initials J.W. (John Walker?)
KESDEBUG[2] ? ? R9 only Probably a "debug" flag used by a programmer with initials K.E.S.
LAZYLOAD boolean 0/1 R13  
NODENAME string - R13 AutoCAD node name.
NOMUTT boolean 0/1 R14.01 1 (True) : No input prompts are displayed.
PHANDLE integer 0 - ~4Gig R12  
PRODUCT string - R14 Product name (e.g. "AutoCAD") (read-only).
PROGRAM string - R14 Executable name (e.g. "acad") (read-only).
QAFLAGS bitcode 0 - 32767* R11 bit 0 (1) : ^C in menu macro cancels grips (acts like keyboard <Esc>).
bit 1 (2) : no pause during text screen listings.
bit 2 (4) : no "alert" dialogs (text display instead).
bit 7 (128) : accepts "screen picks" (point lists) via (command) function.
*Note that this was an integer with range -32768 - 32767 in R11, then it changed to 0 - 32767 in R12.[2]

Additional Information:

  1. Undocumented system variables are sometimes named internally with an asterisk preceding their name. The asterisk may be included when retrieving such system variables via AutoLISP. For example, (getvar "_PKSER")  and  (getvar "*_PKSER") both return the serial number.[2]
  2. Prior to R12, AUPREC and LUPREC accepted integers in the range 0 - 18. Beginning with R12, these two system variables no longer accept values larger than 8. If you save an R11 drawing with LUPREC or AUPREC values higher than 8, they are honored in R12 and later -- however, once you change them they cannot be changed back (except via UNDO).[2]

Undocumented AutoLISP Functions

Function Notes
(_ver) Returns AutoLISP build number (?).
(report) Inroduced in R12/DOS; never worked in Windows.
(vmon) Discontinued. Once used to enable virtual memory; still there for compatibility, but does nothing.
(xstrcase) An international-friendly version of (strcase).

Additional Information:

  1. An undocumented feature of the (getcfg) and (setcfg) functions in R13 and later is that you can access "private" areas of the configuration file (*.cfg) by passing a key string of the form (getcfg "CfgData/Version/ExecutableDate&Time"). This retrieves the "ExecutableDate&Time=" value in the [Version] section of the configuration file, for example.

Miscellaneous

Destroying Handles (Pre-R13 Only)

In AutoCAD R12 and earlier, it was difficult to programmatically destroy handles because the HANDLES command required the user to type in a randomly selected passphrase (of several) before it continued. This was done to make it extremely difficult to destroy handles accidentally. Unfortunately, this also made it extremely difficult to automate the task. Apparently Autodesk ran into the same problem, because they programmed the HANDLES command to accept a special "passkey" which always works regardless of the displayed passphrase. Here's the secret passkey:

Q?+:$$ &9*^0E#1@2AF5+_R)!/&#<*:

 

Postscript Prolog Trick (R13 and later)[1]

Since the first release of R13, the PSPROLOG system variable has allowed dynamically assembling a prolog from several sources. The sources may either be sections in ACAD.PSF or be the contents of other files (which must have the extension .PS and must be in a directory in AutoCAD's search path). Section or file names in PSPROLOG are separated by semicolons. File names in PSPROLOG are prefixed with an asterisk. For example, if PSPROLOG contains:

rotate;mycolors;*standard

then the prolog would be assembled from the section called "rotate" in ACAD.PSF, then the section called "mycolors" in ACAD.PSF, then the contents of the file STANDARD.PS.

Accessing Current Plot Parameters

It's possible to retrieve the current plot parameters programmatically by reading values out of the [Plotter#N/User] section (where N represents the plotter number, as stored in the PLOTTER system variable) of the configuration file. To retrieve the values via AutoLISP, you must use an undocumented feature of (getcfg) shown above. Furthermore, there is a "Flags=" line in the [Plotter#N/User] section which contains the following bit-coded information in its value:

Bit (Value) Meaning
0 (1) Swap x and y axes on plot
1 (2) Scale specified
2 (4) Multiple pen
3 (8) Multiple pass on pens desired
4 (16) Remove hidden lines
5 (32) Correct area fill for pen width
6 (64) Plot to file
7 (128) Rotate 90 degrees (combines with below for 270 degrees)
8 (256) Rotate 180 degrees (combines with above for 270 degrees)
9 (512) Unknown
10 (1024) Printer-plotter
11 (2048) Long axis device
12 (4096) Force plot to file

Contributors

Thanks to the following individuals who have contributed material for this page:

  1. Jon Fleming (jonf@fleming-group.com)
  2. Erik W. Olson (Erik.W.Olson@valleylisp.com)
  3. Darren J. Young (dyoung@mcwi.com)

>> Undocumented ADS/ARX Functions >>

 
AutoCAD is a registered trademark of Autodesk, Inc.  
    Copyright 2002 ManuSoft