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

  1. Directory fork — Single flat directory → two subdirectories (acad2000/, nanocad25/)

  2. Install pathC:\Program Files\ConstructiVisionC:\Program Files (x86)\ConstructiVision

  3. Registry — All HKLM keys must appear under Wow6432Node for 32-bit AutoCAD on 64-bit Windows

  4. COM registration — 104 CLSIDs, 217 Interfaces, 8 ProgIDs need Wow6432Node copies

  5. NanoCAD support — Second CAD platform added with its own autoloader and reduced file set

  6. 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

  1. Architecture Overview

  2. File System Layout

  3. Directory Comparison

  4. Registry Differences (WoW64)

  5. COM Registration Requirements

  6. NanoCAD 25 Integration

  7. Startup Chain Differences

  8. progcont Routing — VLX vs Source Mismatch

  9. Deployment Procedure

  10. Verification

  11. Validation & Bug Cross-Reference

  12. Known Issues


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:

  1. Program Files (x86) — 32-bit applications install to C:\Program Files (x86)\ instead of C:\Program Files\. The CV junction must point to this path.

  2. Wow6432Node registry redirection — When a 32-bit process (AutoCAD) reads HKLM\SOFTWARE\Autodesk\..., Windows transparently redirects to HKLM\SOFTWARE\Wow6432Node\Autodesk\.... All HKLM keys from the x32 install must exist under Wow6432Node on x64.

  3. HKCU is NOT redirected — User-level keys (HKCU\Software\Autodesk\...) are the same path on both x32 and x64. The Configure-ConstructiVision.ps1 script works unchanged, but the CV path must be updated to Program 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

C:\Program Files\ACAD2000\

AutoCAD 2000 R15.0 — 32-bit, runs under WoW64

C:\Program Files (x86)\ConstructiVision\

CV junction root → git sparse checkout

C:\Program Files (x86)\ConstructiVision\acad2000\

CV plugin files for AutoCAD 2000

C:\Program Files (x86)\ConstructiVision\nanocad25\

CV plugin files for NanoCAD 25

C:\Program Files (x86)\ConstructiVision\Project Files\

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

acad2000/

301

187

114

Full TB11-01x32 set + autoloader

nanocad25/

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

acad.lsp

Autoloader — (load "csvmenu") (load "csv")

WF.zip

NanoCAD-specific resource archive

Files in TB11-01x32 but excluded from nanocad25/ (~45 files):

Category

Files Excluded

Specialized modules

bolt.lsp, basedim.lsp, dreng.lsp, editbx.lsp, elevmrkr.lsp, engexp.lsp, j.lsp, makepan.lsp, mbeng.lsp, native.lsp, pointmap.lsp, setvars.lsp, test.lsp

Dialog modules

lyr_dlg.lsp, nb_dlg.lsp, nbblock.lsp, nbenable.lsp, pj_name.lsp, wcedlst.lsp, wcmod.lsp

Dialog definitions

process.dcl

Project/build files

project.lsp, csv.prj, Csv.prv

Compiled binaries

CSV.VLX, CSV.ARX, pcms.arx

Executables

wincss2000.exe, SendTo.exe

Help/docs

CSV.Hlp, CSV Manual.pdf

Menu files

csv.mnu, csv.mns, csv.mnr, csv.mnc, csv.cui

Registry/config

WINCSS.REG

UI utilities

okcanhlp.lsp, SHOW.lsp, SHOWP.lsp, SHOWP2.lsp

Weld/wall modules

wsbeng.lsp, wsbeng2.lsp

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\SOFTWARE\Autodesk\AutoCAD\R15.0\ACAD-1:409

HKLM\SOFTWARE\Wow6432Node\Autodesk\AutoCAD\R15.0\ACAD-1:409

HKLM\SOFTWARE\Autodesk\AutoCAD\R15.0\ACAD-1:409\Applications\

HKLM\SOFTWARE\Wow6432Node\Autodesk\AutoCAD\R15.0\ACAD-1:409\Applications\

HKLM\SOFTWARE\Autodesk\AutoCAD\R15.0\ACAD-1:409\RegistrationInfo\

HKLM\SOFTWARE\Wow6432Node\Autodesk\AutoCAD\R15.0\ACAD-1:409\RegistrationInfo\

HKLM\SOFTWARE\Classes\CLSID\{...}

HKLM\SOFTWARE\Classes\Wow6432Node\CLSID\{...}

HKLM\SOFTWARE\Classes\Interface\{...}

HKLM\SOFTWARE\Classes\Wow6432Node\Interface\{...}

HKLM\SOFTWARE\Classes\TypeLib\{...}

HKLM\SOFTWARE\Classes\Wow6432Node\TypeLib\{...}

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

fix-clsids.ps1

Copies 104 CLSIDs to Wow6432Node\CLSID\

fix-progids.ps1

Copies 8 ProgIDs to Wow6432Node\ under Classes

check-progids.ps1

Verifies ProgID registration in both locations

verify-com.ps1

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

WF.zip

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)

md_dlg.dcl

“Program Options” — numeric keys (2,8,16,32,64…)

“Panel Options” — string keys (new,old,val,pal…)

md_dlg.lsp

Reads numeric keys, maps to progcont bitmask routing

Reads string keys, routes via pnl variable

csv.lsp

Reads progcont, decodes bitmask, routes per value

Never reads progcont, uses pnl/ld variables

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

  1. Win10 x64 machine

  2. AutoCAD 2000 installed (via Total Uninstall restore or installer)

  3. Git installed and on PATH

  4. Administrator access for registry and junction creation

Steps

  1. 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
    
  2. Create junction (elevated prompt):

    New-Item -ItemType Junction -Path "C:\Program Files (x86)\ConstructiVision" `
             -Target "C:\Repos\Constructivision\src\TB11-01x64"
    
  3. 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
    
  4. Update HKLM ACAD path — Ensure Wow6432Node\Autodesk\AutoCAD\R15.0\ACAD-1:409\ACAD includes:

    ...;C:\Program Files (x86)\ConstructiVision\acad2000
    
  5. Configure HKCU — Run the configuration script with x86 path:

    .\scripts\Configure-ConstructiVision.ps1 -CVPath "C:\Program Files (x86)\ConstructiVision\acad2000"
    
  6. Verify COM registrations:

    .\temp\verify-com.ps1
    
  7. 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 Affecting x64 (via shared codebase)

Source-Mode Bugs (Bugs 1–18): All source-mode bugs discovered on VM 108 (x32) apply equally to the x64 acad2000/ directory since it contains identical .lsp source files. Key bugs:

Bug

Severity

Status

Title

x64 Impact

1

Critical

✅ Fixed

CSV.VLX overrides all source file changes

Same VLX in acad2000/

4

Critical

✅ Fixed

#| |# block comments crash AutoCAD 2000 (load)

Same .lsp files in acad2000/

7

Critical

✅ Fixed

VLX detection matches VLIDE runtime, skips source loading

Same csv.lsp behavior

18

High

🔲 Open

progcont routing missing from source — VLX/source mismatch

Blocks NanoCAD menu routing too

Profile/Deployment Bugs (Bugs 19–21): Registry-dependent — may need x64-specific attention due to Wow6432Node redirection.

Deployment Bugs (Bugs 22–30): Platform-specific to XP (VM 104). Not directly applicable to x64 (Win10), but lessons learned apply.

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 -CVPath with x86 path to x32 script

Source-mode bugs (1–17)

Varies

✅ All Fixed

See doc 32 — fixes in shared source apply to x64


References