AutoCAD Goodies
AUTOCAD LT · AUTOLISP TOOLKIT
A growing collection of AutoLISP commands for AutoCAD LT 2026, built to remove repetitive structural drafting steps—from layer changes and drawing cleanup to hatch repair, text editing, and xref navigation.
Setup
- Use APPLOAD in AutoCAD LT 2026.
- Load JMGoodies.lsp and any individual routines you want available.
- Type JMGOODIES at the command line for the current command list.
The toolkit is actively evolving as new drafting annoyances become good candidates for automation. The source repository is public on GitHub.
Command toolkit at a glance
Drafting
- DASHBETWEEN — makes selected linework hidden where it passes between boundary objects.
- QQ — quick-access menus for structural lines, blocks, and hatches.
- QSW — switches instantly among commonly used structural layers.
Hatches & Text
- OUTLINEHATCH — recreates a closed polyline around an existing hatch.
- POLYHATCHEARTH — builds an earth hatch inside a selected closed boundary.
- QUICKREPLACE — replaces case-sensitive text in TEXT, MTEXT, and block attributes.
Xrefs & Navigation
- XREFPATH — resolves and copies an external reference’s full file path.
- ZOOMTOXREF — finds and zooms to xrefs by name or wildcard.
- GOODIES — opens the AutoCAD Goodies folder in Windows Explorer.
- JMGOODIES — prints an in-product command cheat sheet.
Command reference
Drafting
DASHBETWEEN
What it does: Splits selected lines and straight polyline segments at their intersections with selected boundary objects, then changes the portions between alternating intersections to the HIDDEN linetype.
Examples: Load DashBetween.lsp with APPLOAD. Type DASHBETWEEN, select the boundary lines, polylines, or rectangles, then select the linework to modify. Select the top and bottom edges of a wall opening as boundaries, then select a line passing through the opening. The segment inside the opening becomes hidden while the portions outside remain visible. Straight segments are supported; bulged or arc segments are not. A polyline is split into separate LINE objects when only part of it needs a different linetype.
What it does: Provides a quick command-line menu for drawing structural lines, inserting common blocks, and creating concrete or sand hatches. It also resets several drafting properties before starting.
Examples: Load QuickDraw.lsp, type QQ, choose Lines, Blocks, or Hatches, then choose the numbered option shown at the command line. Choose Lines → Membrane to switch to S-MEMBRANE with the configured hidden linetype, cyan color, and 0.25 width before drawing a polyline. Choose Blocks to insert common plywood, chair, or desk blocks.
QSW
What it does: Switches the current layer to one of the commonly used structural layers, creating the layer first if it does not already exist.
Examples: Load QuickSwitchLayers.lsp, type QSW, and choose the numbered layer from the prompt, such as S-WOOD, S-STEEL, S-CONC, or S-ANNO-DIMS. Use it while moving between framing, concrete, steel, Simpson, architectural, and annotation work so you do not have to open Layer Properties or type full layer names.
Drawing cleanup
DEBLOCK
What it does: Recursively explodes named blocks throughout the drawing until no named block insertions remain. Anonymous blocks, such as many hatch and dimension internals, are excluded.
Examples: Load Deblock.lsp, type DEBLOCK, and let the routine process the drawing. It is intended for broad cleanup rather than a single carefully selected object. Use it after receiving a consultant detail whose nested blocks make editing difficult, or before applying drawing-wide cleanup. Make a backup first because the operation changes many objects.
KILLBLOCK
What it does: Prints an inventory of named block definitions and their instance counts, then lets you erase instances of a chosen block and purge its definition.
Examples: Load KillBlock.lsp, type KILLBLOCK, review the block inventory, and enter the exact block name to remove. Use it to remove obsolete title blocks, furniture blocks, or imported symbols that are cluttering a drawing. It excludes anonymous blocks and xrefs from the inventory.
ZERO
What it does: Unlocks, thaws, and turns on layers; recursively explodes named blocks; moves objects to Layer 0; resets color, linetype, and lineweight to ByLayer; runs SetByLayer; and audits the drawing.
Examples: Load Zero.lsp and type ZERO. It operates broadly across the drawing, so save a backup copy before running it. Use it as an aggressive normalization pass on imported geometry when you need to strip layer locks, block nesting, and hard-coded property overrides before rebuilding the drawing into your own standards.
Hatches & text
OUTLINEHATCH
What it does: Creates a closed polyline outline around selected hatch objects and moves the new boundary to S-ANNO-NONPLOT.
Examples: Load OutlineHatch.lsp, type OUTLINEHATCH, and select the hatch objects whose boundaries you want to recreate. Use it when a hatch has lost its original boundary, when you need a non-plotting editing outline, or when you want to recover a boundary before editing the region.
POLYHATCHEARTH
What it does: Offsets a selected closed polyline, closes the offset boundary on S-ANNO-NONPLOT, and applies an EARTH hatch on S-HATCH-SOIL at scale 10 and angle 45 degrees.
Examples: Load PolyHatchEarth.lsp, type POLYHATCHEARTH, and select a closed boundary. Use it for quick site, footing, or excavation graphics where a consistent earth hatch and offset outline are more useful than manually setting up each layer and hatch property.
QUICKREPLACE
What it does: Replaces case-sensitive text within selected TEXT, MTEXT, and block attributes.
Examples: Load QuickReplace.lsp, type QUICKREPLACE, provide the search and replacement text when prompted, and select the objects to process. Use it to change a project identifier, sheet note, or detail label across a selected group without opening a global Find and Replace dialog. Because matching is case-sensitive, enter the capitalization exactly.
Xrefs & navigation
XREFPATH
What it does: Reads the selected external reference, resolves its relative path to a full path, and copies that path to the Windows clipboard.
Examples: Load XrefPath.lsp, type XREFPATH, and select an xref. The resolved path is printed at the command line and copied for pasting into Explorer, an email, or a coordination note. Use it when an xref is missing, when someone needs the source file location, or when documenting which consultant file a drawing references.
ZOOMTOXREF
What it does: Finds INSERT objects whose xref name matches a supplied name or wildcard, selects them, and zooms to their extents.
Examples: Load ZoomToXref.lsp, type ZOOMTOXREF, and enter an xref name. Wildcards such as * can match multiple references. Use it in a large coordination drawing when you know the xref name but cannot find it visually. Enter a distinctive fragment or wildcard to locate every matching instance quickly.
GOODIES
What it does: Opens the AutoCAD Goodies folder in Windows Explorer.
Examples: Load JMGoodies.lsp, then type GOODIES. The routine opens the configured folder path where the LISP files are stored. Use it when you need to load a routine manually, inspect the source files, or quickly locate the shared Goodies folder without leaving AutoCAD to browse for it.
JMGOODIES
What it does: Prints a command cheat sheet at the AutoCAD command line, showing the routines that are available in the configured Goodies folder.
Examples: Load JMGoodies.lsp and type JMGOODIES. The list only shows files that can be found in the configured folder. Run it at the start of a project or after adding a new routine so you do not have to remember every command name. It acts as a lightweight in-product index.