ConstructiVision TB11-01x64 — Architecture & Deployment¶
Purpose: Architecture and deployment reference for ConstructiVision v11.01 on the 64-bit platform (Win10 x64, AutoCAD 2000 via WoW64). Documents the directory fork into acad2000/ and nanocad25/ subdirectories, the Program Files (x86) installation path, WoW64 registry redirection, COM registration requirements, and all differences from the x32 baseline.
Build: TB11-01x64 (Test Build 11, 64-bit)
Source Location: src/TB11-01x64/
Baseline: 28-tb11-01x32-architecture.md — x32 reference (read that first)
Fix Guide: 27-vm109-autocad-x64-registry-fix.md (sensitive) — step-by-step reproduction
Target VM: 109 — Win10 x64
Last Updated: March 1, 2026
What Changed from x32 to x64
Directory fork — Single flat directory → two subdirectories (
acad2000/,nanocad25/)Install path —
C:\Program Files\ConstructiVision→C:\Program Files (x86)\ConstructiVisionRegistry — All HKLM keys must appear under
Wow6432Nodefor 32-bit AutoCAD on 64-bit WindowsCOM registration — 104 CLSIDs, 217 Interfaces, 8 ProgIDs need
Wow6432NodecopiesNanoCAD support — Second CAD platform added with its own autoloader and reduced file set
VLX binary is identical — Same CSV.VLX (SHA256 match) on both platforms; progcont routing and VLX/source mismatch apply equally to x64
Table of Contents¶
Architecture Overview¶
On 64-bit Windows, AutoCAD 2000 runs as a 32-bit application under WoW64 (Windows-on-Windows 64-bit). This creates three key differences from the x32 deployment:
Program Files (x86) — 32-bit applications install to
C:\Program Files (x86)\instead ofC:\Program Files\. The CV junction must point to this path.Wow6432Node registry redirection — When a 32-bit process (AutoCAD) reads
HKLM\SOFTWARE\Autodesk\..., Windows transparently redirects toHKLM\SOFTWARE\Wow6432Node\Autodesk\.... All HKLM keys from the x32 install must exist underWow6432Nodeon x64.HKCU is NOT redirected — User-level keys (
HKCU\Software\Autodesk\...) are the same path on both x32 and x64. TheConfigure-ConstructiVision.ps1script works unchanged, but the CV path must be updated toProgram Files (x86).
Additionally, TB11-01x64 forks the plugin files into two CAD platform subdirectories to support both AutoCAD 2000 and NanoCAD 25.
File System Layout¶
Installation Directories¶
Path |
Contents |
|---|---|
|
AutoCAD 2000 R15.0 — 32-bit, runs under WoW64 |
|
CV junction root → git sparse checkout |
|
CV plugin files for AutoCAD 2000 |
|
CV plugin files for NanoCAD 25 |
|
Shared user project data |
Important
AutoCAD 2000 itself installs to C:\Program Files\ACAD2000\ (NOT x86) because AutoCAD’s own installer predates WoW64 — it writes to the native Program Files directory. Only the CV junction uses Program Files (x86).
Junction Configuration¶
C:\Program Files (x86)\ConstructiVision → C:\Repos\Constructivision\src\TB11-01x64
Created via:
New-Item -ItemType Junction -Path "C:\Program Files (x86)\ConstructiVision" `
-Target "C:\Repos\Constructivision\src\TB11-01x64"
TB11-01x64 Directory Structure¶
src/TB11-01x64/
├── acad2000/ # AutoCAD 2000 plugin files (187 originals)
│ ├── acad.lsp # Autoloader: (load "csvmenu") (load "csv")
│ ├── csv.lsp # Main CV application loader
│ ├── csvmenu.lsp # Menu installer
│ ├── CSV.VLX # Compiled application (identical to x32)
│ ├── CSV.ARX # ObjectARX extension
│ ├── csv.prj # Visual LISP project
│ ├── *.lsp # All 93 csvlst modules
│ ├── *.dcl # All dialog definitions
│ └── (+ support files)
├── nanocad25/ # NanoCAD 25 plugin files (150 files)
│ ├── acad.lsp # Autoloader: (load "csvmenu") (load "csv")
│ ├── csv.lsp # Main CV application loader
│ ├── csvmenu.lsp # Menu installer
│ ├── *.lsp # Reduced module set (~45 files fewer)
│ ├── *.dcl # Dialog definitions
│ └── WF.zip # NanoCAD-specific resource (unique to this dir)
├── Project Files/ # Shared project data directory
├── CV logo.JPG # Shared assets at root
├── CSV Manual.pdf # Shared documentation
├── License.txt # Shared license
├── PCA.Jeff.CIF # Shared PCA file
└── README.TXT # Shared readme
File Counts¶
Directory |
Total Files |
Originals |
“Copy” Duplicates |
Notes |
|---|---|---|---|---|
|
301 |
187 |
114 |
Full TB11-01x32 set + autoloader |
|
150 |
150 |
0 |
Reduced set + WF.zip |
Root |
6+ |
— |
— |
Shared assets (PDF, logo, license) |
Warning
The acad2000/ directory contains 114 “copy” duplicate files (e.g., csv - Copy.lsp, bolt - Copy.lsp). These appear to be artifacts from manual file copying and should be cleaned up. The 187 original files are the working set.
Directory Comparison¶
acad2000/ vs TB11-01x32¶
The acad2000/ subdirectory contains all 195+ files from TB11-01x32 plus:
acad.lsp— autoloader (not present in TB11-01x32)114 “copy” duplicate files (cleanup needed)
The CSV.VLX binary is identical on both platforms:
SHA256: 1CC1ED4CCAA0FC4F333FE300F23DAE6DE683307C402E1590EA73DABB859292DF
nanocad25/ vs TB11-01x32¶
NanoCAD 25 uses a reduced file set — approximately 45 files from TB11-01x32 are excluded.
Files unique to nanocad25/ (not in TB11-01x32):
File |
Purpose |
|---|---|
|
Autoloader — |
|
NanoCAD-specific resource archive |
Files in TB11-01x32 but excluded from nanocad25/ (~45 files):
Category |
Files Excluded |
|---|---|
Specialized modules |
|
Dialog modules |
|
Dialog definitions |
|
Project/build files |
|
Compiled binaries |
|
Executables |
|
Help/docs |
|
Menu files |
|
Registry/config |
|
UI utilities |
|
Weld/wall modules |
|
Note
The nanocad25 directory excludes compiled binaries (VLX, ARX) and executables because NanoCAD uses a different extension mechanism. It also excludes many specialized engineering modules — likely because they depend on AutoCAD-specific features (ObjectARX, COM automation) not available in NanoCAD.
Registry Differences (WoW64)¶
The WoW64 Redirect Rule¶
On 64-bit Windows, when a 32-bit process reads or writes to:
HKLM\SOFTWARE\<anything>
Windows transparently redirects to:
HKLM\SOFTWARE\Wow6432Node\<anything>
This means all HKLM keys from the x32 deployment (see doc 28) must exist under Wow6432Node on x64.
HKLM Keys — Wow6432Node Mapping¶
x32 Path |
x64 Path (Wow6432Node) |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
HKLM Value Changes (x64-specific)¶
The ACAD search path must reference Program Files (x86) instead of Program Files:
x32:
ACAD = "...;C:\Program Files\ConstructiVision"
x64:
ACAD = "...;C:\Program Files (x86)\ConstructiVision\acad2000"
Note the path also includes the acad2000\ subdirectory since the x64 build forks into platform-specific directories.
HKCU Keys — NOT Redirected¶
HKCU keys are identical paths on x32 and x64. The only difference is the CV path value:
Support File Search Path:
HKCU\...\Profiles\<<Unnamed Profile>>\General
ACAD = "...;C:\Program Files (x86)\ConstructiVision\acad2000;"
Startup Suite:
VLX Mode (PB11):
HKCU\...\Dialogs\Appload\Startup
NumStartup = "1"
1Startup = "C:\Program Files (x86)\ConstructiVision\acad2000\csv.vlx"
Source Mode (TB11):
HKCU\...\Dialogs\Appload\Startup
NumStartup = "1"
1Startup = "C:\Program Files (x86)\ConstructiVision\acad2000\csvmenu.lsp"
Note
VLX mode loads CSV.VLX which bundles csvmenu + csv + all 93 modules and correctly routes via progcont. Source mode loads only csvmenu.lsp; csv.lsp is loaded on first menu click but does NOT read progcont (Bug 18).
COM Registration Requirements¶
AutoCAD 2000’s Visual LISP uses COM automation internally. On x64 Windows, the COM registrations must exist under Wow6432Node for the 32-bit AutoCAD process to find them.
COM Audit Summary¶
Category |
Count |
Wow6432Node Required |
|---|---|---|
CLSIDs |
104 |
✅ Yes |
Interfaces |
217 |
✅ Yes |
TypeLibs |
4 |
✅ Yes |
ProgIDs |
8 |
✅ Yes |
The Fix¶
Total Uninstall’s restore process writes COM registrations to the native registry path (HKLM\SOFTWARE\Classes\CLSID\{...}). On x64, the 32-bit AutoCAD process looks in Wow6432Node. The fix copies all COM registrations to the Wow6432Node location.
Automated fix scripts (in temp/):
Script |
Purpose |
|---|---|
|
Copies 104 CLSIDs to |
|
Copies 8 ProgIDs to |
|
Verifies ProgID registration in both locations |
|
Full COM registration audit (CLSIDs, Interfaces, ProgIDs) |
For the complete step-by-step reproduction of the COM fix, see 27-vm109-autocad-x64-registry-fix.md (sensitive).
Root Cause: QueryInterface/IDispatch Failure¶
Without the Wow6432Node COM registrations, AutoCAD crashes on startup with:
Automation Error. QueryInterface IDispatch fails
This occurs because Visual LISP’s (vlax-get-acad-object) call attempts COM automation via AutoCAD.Application ({8E75D911-3D21-11d2-85C4-080009A0C626}), which the 32-bit COM subsystem cannot find without the Wow6432Node entries.
NanoCAD 25 Integration¶
Overview¶
TB11-01x64 introduces NanoCAD 25 as a second CAD platform alongside AutoCAD 2000. The nanocad25/ subdirectory contains a reduced CV file set tailored for NanoCAD’s capabilities.
Autoloader¶
Both acad2000/acad.lsp and nanocad25/acad.lsp contain the same autoloader code:
(load "csvmenu")
(load "csv")
NanoCAD loads acad.lsp automatically from the application support path, just as AutoCAD does.
Key Differences from AutoCAD 2000¶
Aspect |
AutoCAD 2000 |
NanoCAD 25 |
|---|---|---|
Extension mechanism |
VLX + ARX (compiled) |
LSP only (interpreted) |
COM automation |
Full (Visual LISP) |
Limited / different API |
File count |
187 originals |
150 files |
Compiled binaries |
CSV.VLX, CSV.ARX, pcms.arx |
None |
Help system |
CSV.Hlp (Windows Help) |
None |
Menu system |
csv.mnu/mns/mnr/mnc/cui |
None (uses LISP menus) |
Unique files |
— |
|
Excluded features |
— |
~45 specialized modules (see above) |
Note
NanoCAD testing is a secondary goal. The primary x64 deployment target remains AutoCAD 2000 under WoW64. NanoCAD support is exploratory.
Startup Chain Differences¶
AutoCAD 2000 on x64 — VLX Mode (PB11 Configuration)¶
The startup chain is functionally identical to x32, with path differences:
1. Windows launches acad.exe (32-bit, runs under WoW64)
2. AutoCAD reads HKCU profile → loads Startup Suite entries
3. Startup Suite loads CSV.VLX from C:\Program Files (x86)\ConstructiVision\acad2000\
4. VLX contains compiled csvmenu + csv + all 93 modules
5. csvmenu installs CV menu group from csv.mnu/mns
6. User clicks any CV menu item:
a. csv.mnu sets (setq progcont N) where N is a menu-specific bitmask
b. csv.mnu calls csv; which invokes c:csv
c. VLX's c:csv reads progcont, decodes bitmask, routes to correct dialog
AutoCAD 2000 on x64 — Source Mode (TB11 Configuration)¶
1. Windows launches acad.exe (32-bit, runs under WoW64)
2. AutoCAD reads HKCU profile → loads Startup Suite entries
3. Startup Suite loads csvmenu.lsp from C:\Program Files (x86)\ConstructiVision\acad2000\
4. csvmenu.lsp installs CV menu group from csv.mnu/mns
5. User clicks any CV menu item:
a. csv.mnu sets (setq progcont N) — but no .lsp file reads progcont
b. csv.mnu calls csv; which invokes c:csv from csv.lsp
c. csv.lsp loads all 93 modules, shows Panel Options dialog regardless of progcont
Warning
In source-mode (TB11), progcont routing does NOT work — all menu items show the same “Panel Options” dialog. See progcont Routing section below and Bug 18 in doc 32.
NanoCAD 25¶
1. NanoCAD launches (native 64-bit or 32-bit)
2. NanoCAD loads acad.lsp from support path
3. acad.lsp runs:
(load "csvmenu") → installs CV menu
(load "csv") → loads main CV module (interpreted, not VLX)
4. CV menu appears, reduced module set available (~150 files)
Note
NanoCAD uses source-mode only (no VLX/ARX support), so progcont routing will not function until reconstructed in source code. The same Bug 18 limitation applies.
progcont Routing — VLX vs Source Mismatch¶
Important
Discovered Mar 1, 2026: progcont is NOT dead code in VLX mode. This finding applies identically to the x64 build because the CSV.VLX binary is the same on both platforms (SHA256: 1CC1ED4CCAA0FC4F333FE300F23DAE6DE683307C402E1590EA73DABB859292DF).
The progcont global variable is set by every menu item (17 items in csv.mnu) before calling csv;. In VLX mode, the compiled bytecode reads progcont and routes to distinct dialogs — confirmed by OCR evidence from VM 102. In source-mode, no .lsp file reads progcont, so all menu items fall through to the same dialog.
The VLX was compiled from source that does not exist in this repo:
Component |
VLX Version (working) |
Source Version (broken in source-mode) |
|---|---|---|
|
“Program Options” — numeric keys (2,8,16,32,64…) |
“Panel Options” — string keys (new,old,val,pal…) |
|
Reads numeric keys, maps to progcont bitmask routing |
Reads string keys, routes via |
|
Reads |
Never reads |
progcont Bitmask System:
Base 262144 (0x40000) = “already loaded, skip project dialog”
Button keys are powers of 2
Full mapping: 1=Drawing Setup, 8193=Slope Calculator, 262145=Edit Existing, 262153=New Project, 262161=New Drawing, 262177=Batch Utilities, 262209=All Layers, 262273=Select Layers, 262401=Print with preset, 262465=Print All, 262657=Select Layouts, 263169=Materials, 264193=Revision
Impact on x64: Identical to x32. The acad2000/ subdirectory contains the same VLX and source files. VLX-mode works correctly; source-mode requires reconstruction before progcont routing will function.
Impact on NanoCAD: NanoCAD cannot use VLX files, so it is permanently in source-mode. Reconstructing progcont routing in .lsp source is required for NanoCAD to have proper menu-to-dialog routing.
See Bug 18 in 32-tb11-bug-tracker.md and Section 3.1a of 31-comprehensive-workflow-analysis.md for full analysis.
Deployment Procedure¶
Prerequisites¶
Win10 x64 machine
AutoCAD 2000 installed (via Total Uninstall restore or installer)
Git installed and on PATH
Administrator access for registry and junction creation
Steps¶
Clone and sparse checkout:
git clone --no-checkout git@github.com:ConstructiVision/ConstructiVision.git C:\Repos\Constructivision cd C:\Repos\Constructivision git sparse-checkout init --cone git sparse-checkout set src/TB11-01x64 git checkout main
Create junction (elevated prompt):
New-Item -ItemType Junction -Path "C:\Program Files (x86)\ConstructiVision" ` -Target "C:\Repos\Constructivision\src\TB11-01x64"
Fix HKLM Autodesk registry — Copy AutoCAD keys to Wow6432Node:
# Run from temp/ directory — see doc 27 for complete procedure .\fix-clsids.ps1 .\fix-progids.ps1
Update HKLM ACAD path — Ensure
Wow6432Node\Autodesk\AutoCAD\R15.0\ACAD-1:409\ACADincludes:...;C:\Program Files (x86)\ConstructiVision\acad2000
Configure HKCU — Run the configuration script with x86 path:
.\scripts\Configure-ConstructiVision.ps1 -CVPath "C:\Program Files (x86)\ConstructiVision\acad2000"
Verify COM registrations:
.\temp\verify-com.ps1
Launch AutoCAD — CV should auto-load without errors.
Verification¶
Quick Smoke Test¶
# 1. Check junction exists
Get-Item "C:\Program Files (x86)\ConstructiVision" | Select-Object Target
# 2. Check Wow6432Node registry
Get-ItemProperty "HKLM:\SOFTWARE\Wow6432Node\Autodesk\AutoCAD\R15.0\ACAD-1:409" -Name ACAD
# 3. Check HKCU startup suite
Get-ItemProperty "HKCU:\Software\Autodesk\AutoCAD\R15.0\ACAD-1:409\Profiles\<<Unnamed Profile>>\Dialogs\Appload\Startup"
# 4. Check COM CLSID (AutoCAD.Application)
Test-Path "HKLM:\SOFTWARE\Classes\Wow6432Node\CLSID\{8E75D911-3D21-11d2-85C4-080009A0C626}"
# 5. Launch AutoCAD and check for errors
Start-Process "C:\Program Files\ACAD2000\acad.exe"
Full Verification Script¶
See temp/verify-com.ps1 and doc 27 §Verification (sensitive) for the complete COM audit procedure.
Validation & Bug Cross-Reference¶
The 2026 validation campaign discovered 30 bugs across VMs 102–108 (see 32-tb11-bug-tracker.md). Many of these bugs affect both x32 and x64 platforms because the source code and VLX binary are shared.
Bugs Unique to x64¶
Issue |
Status |
Notes |
|---|---|---|
QueryInterface/IDispatch COM crash |
✅ Fixed |
Wow6432Node COM registration fix — see doc 27 (sensitive) |
NanoCAD source-mode limitations |
🔲 Blocked on #18 |
NanoCAD uses source-mode only — no VLX fallback |
Validation Results Summary¶
Platform/VM |
VLX Mode |
Source Mode |
AutoIT Validation |
|---|---|---|---|
VM 102 (XP x32) |
✅ 6/6 |
N/A |
✅ Pass |
VM 103 (XP x32) |
✅ 6/6 |
N/A |
✅ Pass |
VM 104 (XP x32) |
✅ 6/6 |
⚠️ Bug 18 |
✅ Pass (VLX) |
VM 108 (W10 x32) |
✅ Works |
⚠️ Bug 18 |
— |
VM 109 (W10 x64) |
✅ Works |
⚠️ Bug 18 |
— |
Known Issues¶
Issue |
Impact |
Status |
Notes |
|---|---|---|---|
progcont routing (Bug 18) |
High |
🔲 Open |
Source-mode menu routing missing — all items show same dialog |
NanoCAD blocked on Bug 18 |
High |
🔲 Blocked |
NanoCAD is source-mode only — no VLX fallback for progcont routing |
acad2000/ “copy” duplicates |
Low |
Cleanup needed |
114 duplicate files from manual copying |
NanoCAD module gaps |
Medium |
By design |
~45 modules excluded; may limit functionality |
NanoCAD testing incomplete |
Medium |
Planned |
Minimal testing performed; secondary priority |
WF.zip purpose unknown |
Low |
Investigate |
NanoCAD-specific resource, not yet analyzed |
No x64 Configure script |
Medium |
Use x32 with flag |
Pass |
Source-mode bugs (1–17) |
Varies |
✅ All Fixed |
See doc 32 — fixes in shared source apply to x64 |
References¶
28-tb11-01x32-architecture.md — x32 baseline architecture (read first)
31-comprehensive-workflow-analysis.md — Complete workflow analysis, DFMEA, progcont Section 3.1a
32-tb11-bug-tracker.md — Bug tracker (30 bugs, including Bug 18 progcont routing)
27-vm109-autocad-x64-registry-fix.md (sensitive) — Complete x64 registry fix reproduction guide
22-windows10-upgrade-study.md — Win10 upgrade study (registry analysis)
06-testing-validation.md — Testing and validation strategy
Legacy Architecture Doc — Complete PB11-00x32 architecture map
scripts/Configure-ConstructiVision.ps1— Auto-configuration scripttemp/fix-clsids.ps1,temp/fix-progids.ps1— COM fix scripts