Short description
π οΈ NamespaceFix is an AutoCAD/Civil 3D AutoLISP repair utility that restores the built-in multiplication operator * when another LISP routine overwrites it.
π It installs a command reactor so the repair is checked automatically after SAVE or QSAVE workflows.
Command:
π Load/install file: NamespaceFix.lsp
π§° Startup Suite use: add the LSP to APPLOAD Startup Suite for automatic protection.
π§© Internal repair functions: C3D-RestoreStar and C3D-RestoreStarCmd
π Reactor: vlr-command-reactor with :vlr-commandEnded callback.
Description:
π οΈ NamespaceFix is an SEO-friendly AutoCAD AutoLISP namespace repair tool for drawings or startup environments where another script corrupts the global * symbol.
β οΈ The source comments identify the root cause as a separate pltools-eng6.lsp routine using (setq * …) as a variable name, which overwrites AutoLISP’s built-in multiplication operator.
π The utility installs a command-ended reactor and repairs * after command completion, especially after SAVE/QSAVE workflows where the conflicting routine is loaded by a save reactor.
π§ The repair attempts to rebuild Visual LISP built-ins with vl-load-com, then falls back to the internal acad_* function pointer when available.
π This is useful for Civil 3D startup suites, production CAD environments, debugging broken AutoLISP expressions, and stabilizing tools that depend on normal arithmetic behavior.
Helper function: (if any)β
π§© C3D-RestoreStar checks whether (type (eval ‘*)) is still SUBR.
π§© C3D-RestoreStarCmd is the command-reactor callback wrapper.
π§© vl-load-com is used as the first repair attempt to rebuild the Visual LISP environment.
π§© acad_* is used as a fallback source for the multiplication SUBR when the * symbol is already corrupted.
π§© vlr-command-reactor installs the automatic repair hook for command-ended events.
Functionalities:
β
Detect broken AutoLISP multiplication operator symbol.
β
Repair * automatically after save-related command activity.
β
Repair immediately on load if the symbol is already damaged.
β
Print command-line status messages such as * OK on load or * repaired on load.
β
Avoid editing the conflicting third-party/source LISP directly.
Result:
π― AutoLISP multiplication expressions continue working after SAVE/QSAVE.
π§© Tools depending on the built-in * operator are protected against namespace pollution.
π οΈ The CAD environment receives a defensive self-healing startup routine.
Images, animations etc.
XAML code:
ο»Ώ<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:src="clr-namespace:Autodesk.Windows;assembly=AdWindows"> <src:RibbonToolTip x:Key="NamespaceFix"> <src:RibbonToolTip.ExpandedContent> <StackPanel> <TextBlock Background="AntiqueWhite" TextAlignment="Left"> <Bold>Function Syntax: NamespaceFix</Bold> <LineBreak/> <Bold>Version: 1.1 Date: 20.06.2026 4:47:54PM</Bold> <LineBreak/> <Hyperlink>N/A</Hyperlink> <LineBreak/> <Bold><Run Foreground="DodgerBlue">Description</Run></Bold><LineBreak/> <Run Foreground="White">π οΈ NamespaceFix is an AutoCAD/Civil 3D AutoLISP repair utility that restores the built-in multiplication operator * when another LISP routine overwrites it.</Run><LineBreak/> <Run Foreground="White">π It installs a command reactor so the repair is checked automatically after SAVE or QSAVE workflows.</Run><LineBreak/> <LineBreak/> <Bold><Run Foreground="DodgerBlue">Function Syntax</Run></Bold><LineBreak/> <Run Foreground="White">π Load/install file: </Run><Bold><Run Foreground="Orange">NamespaceFix.lsp</Run></Bold><LineBreak/> <Run Foreground="White">π§° Startup Suite use: </Run><Bold><Run Foreground="Orange">add the LSP to APPLOAD Startup Suite for automatic protection.</Run></Bold><LineBreak/> <Run Foreground="White">π§© Internal repair functions: </Run><Bold><Run Foreground="Orange">C3D-RestoreStar and C3D-RestoreStarCmd</Run></Bold><LineBreak/> <Run Foreground="White">π Reactor: </Run><Bold><Run Foreground="Orange">vlr-command-reactor with :vlr-commandEnded callback.</Run></Bold><LineBreak/> <LineBreak/> <Bold><Run Foreground="DodgerBlue">SEO Optimized Overview</Run></Bold><LineBreak/> <Run Foreground="White">π οΈ NamespaceFix is an SEO-friendly AutoCAD AutoLISP namespace repair tool for drawings or startup environments where another script corrupts the global * symbol.</Run><LineBreak/> <Run Foreground="White">β οΈ The source comments identify the root cause as a separate pltools-eng6.lsp routine using (setq * ...) as a variable name, which overwrites AutoLISP's built-in multiplication operator.</Run><LineBreak/> <Run Foreground="White">π The utility installs a command-ended reactor and repairs * after command completion, especially after SAVE/QSAVE workflows where the conflicting routine is loaded by a save reactor.</Run><LineBreak/> <Run Foreground="White">π§ The repair attempts to rebuild Visual LISP built-ins with vl-load-com, then falls back to the internal acad_* function pointer when available.</Run><LineBreak/> <Run Foreground="White">π This is useful for Civil 3D startup suites, production CAD environments, debugging broken AutoLISP expressions, and stabilizing tools that depend on normal arithmetic behavior.</Run><LineBreak/> <LineBreak/> <Bold><Run Foreground="DodgerBlue">Core AutoCAD / Civil 3D Workflow</Run></Bold><LineBreak/> <Run Foreground="White">β Detect broken AutoLISP multiplication operator symbol.</Run><LineBreak/> <Run Foreground="White">β Repair * automatically after save-related command activity.</Run><LineBreak/> <Run Foreground="White">β Repair immediately on load if the symbol is already damaged.</Run><LineBreak/> <Run Foreground="White">β Print command-line status messages such as * OK on load or * repaired on load.</Run><LineBreak/> <Run Foreground="White">β Avoid editing the conflicting third-party/source LISP directly.</Run><LineBreak/> <LineBreak/> <Bold><Run Foreground="DodgerBlue">Important Functions and Implementation Details</Run></Bold><LineBreak/> <Run Foreground="White">π§© C3D-RestoreStar checks whether (type (eval '*)) is still SUBR.</Run><LineBreak/> <Run Foreground="White">π§© C3D-RestoreStarCmd is the command-reactor callback wrapper.</Run><LineBreak/> <Run Foreground="White">π§© vl-load-com is used as the first repair attempt to rebuild the Visual LISP environment.</Run><LineBreak/> <Run Foreground="White">π§© acad_* is used as a fallback source for the multiplication SUBR when the * symbol is already corrupted.</Run><LineBreak/> <Run Foreground="White">π§© vlr-command-reactor installs the automatic repair hook for command-ended events.</Run><LineBreak/> <LineBreak/> <Bold><Run Foreground="DodgerBlue">Result</Run></Bold><LineBreak/> <Run Foreground="White">π― AutoLISP multiplication expressions continue working after SAVE/QSAVE.</Run><LineBreak/> <Run Foreground="White">π§© Tools depending on the built-in * operator are protected against namespace pollution.</Run><LineBreak/> <Run Foreground="White">π οΈ The CAD environment receives a defensive self-healing startup routine.</Run><LineBreak/> <LineBreak/> <Bold><Run Foreground="DodgerBlue">Important Notes</Run></Bold><LineBreak/> <Run Foreground="DarkRed">β οΈ This is a defensive repair tool, not a replacement for fixing the original routine that overwrites *.</Run><LineBreak/> <Run Foreground="DarkRed">β οΈ It should be loaded intentionally from a trusted startup path because it installs a persistent command reactor for the session.</Run><LineBreak/> <Run Foreground="White">βΉοΈ The code is designed for AutoCAD/Civil 3D Visual LISP environments.</Run><LineBreak/> <LineBreak/> <Bold><Run Foreground="DodgerBlue">Search Keywords</Run></Bold><LineBreak/> <Run Foreground="White">π AutoLISP namespace fix, QSAVE reactor, restore multiplication operator, Civil 3D startup repair, AutoCAD LISP debugging</Run><LineBreak/> <LineBreak/> <Bold><Run Foreground="Yellow">Tags</Run></Bold><LineBreak/> <Run Foreground="Yellow">π·οΈ AutoCAD, π·οΈ AutoLISP, π·οΈ Civil 3D, π·οΈ Namespace Repair, π·οΈ QSAVE Reactor, π·οΈ SAVE Reactor, π·οΈ LISP Debugging, π·οΈ Multiplication Operator, π·οΈ CAD Startup Tool</Run><LineBreak/> </TextBlock> <Grid> <Image Source="PNG" Stretch="Uniform"/> </Grid> <Grid> <MediaElement Source="GIF" Stretch="Uniform" Visibility="Visible"/> </Grid> </StackPanel> </src:RibbonToolTip.ExpandedContent> </src:RibbonToolTip> </ResourceDictionary>
