ConstructiVision TB11-01x32 — Architecture & Deployment

Purpose: Complete architecture and deployment reference for ConstructiVision v11.01 on the 32-bit platform (Win10 x32, AutoCAD 2000). Documents the full file layout, registry footprint (from Total Uninstall analysis), auto-configuration, source file recoveries, and crash path resolutions applied to the TB11-01x32 test build.

Build: TB11-01x32 (Test Build 11, 32-bit) Source Location: src/x32/TB11-01x32/ Baseline Reference: Legacy Architecture Doc (PB11-00x32 snapshot — read-only) Target VMs: 108, 201, 202 — all Win10 x32 Last Updated: March 11, 2026

Key Facts

  • All 93 modules in csvlst have source files on disk (12 recovered from v3.60)

  • Zero crash paths (3 critical crashes fixed)

  • 20/20 feature toggles operational (was 18/20 in PB11)

  • 63 bugs tracked in validation campaign — 50 fixed, 12 open, 1 known limitation

  • NOD key mismatch discovered — VLX uses panel/site, source used panel_list/site_list (Bug 63, fixed)

  • Dual-key detection applied across 24 files — reads both VLX and source key names

  • progcont routing is VLX-only — source-mode shows same dialog for all menu items (Bug 18)

  • Validated on Win10 x32 (VM 108), XP (VMs 102, 103, 104) — AutoIT 6/6 pass in VLX mode

  • Complete registry footprint documented from Total Uninstall analysis

  • Auto-configuration script: scripts/Configure-ConstructiVision.ps1

  • Diagnostic tool: csv_diag.lsp — runtime NOD/layer/block dump for debugging


Table of Contents

  1. File System Layout

  2. Registry Footprint

  3. Auto-Configuration Script

  4. Startup Chain

  5. Source File Recovery

  6. Crash Path Resolutions

  7. Updated Feature Status

  8. Source File Inventory

  9. Remaining Stubs and Disabled Features

  10. NOD Key Architecture

  11. Updated Test Matrix

  12. Platform Compatibility

  13. Validation & Bug Cross-Reference


File System Layout

Installation Directories

Path

Contents

Source

C:\Program Files\ACAD2000\

AutoCAD 2000 R15.0 — acad.exe, DLLs, ARX, support, fonts

Total Uninstall restore

C:\Program Files\ConstructiVision\

CV plugin files — junction to git sparse checkout

Git deploy (nightly at 22:00)

C:\Program Files\ConstructiVision\Project Files\

User project data (drawings, xrefs)

Created by CV at runtime

C:\Program Files\ConstructiVision\Fonts\

CV-specific fonts

Part of TB11-01x32

C:\Program Files\ConstructiVision\Plot Styles\

Plot style tables

Part of TB11-01x32

C:\Program Files\ConstructiVision\Backup 1007\

Backup/archive files

Part of TB11-01x32

Junction Configuration

C:\Program Files\ConstructiVision  →  C:\Repos\Constructivision\src\TB11-01x32

Created via:

New-Item -ItemType Junction -Path "C:\Program Files\ConstructiVision" `
         -Target "C:\Repos\Constructivision\src\TB11-01x32"

Physical File Inventory (TB11-01x32)

Type

Count

Notes

LISP source (.lsp)

94

93 in csvlst + csv_diag.lsp diagnostic tool (12 recovered from v3.60)

DCL dialogs (.dcl)

44

Some contain multiple dialog definitions

Menu files

5

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

Compiled VLX

1

CSV.VLX (813 KB) — compiled application bundle

Compiled ARX

2

CSV.ARX, pcms.arx — ObjectARX extensions

Help file

1

CSV.Hlp — Windows Help

PDF manual

1

CSV Manual.pdf

Build project

2

csv.prj, Csv.prv — Visual LISP project files

Registry file

1

WINCSS.REG — legacy registry settings

Executables

2

wincss2000.exe, SendTo.exe

Other

8+

License.txt, README.TXT, PCA.Jeff.CIF, CV logo.JPG, etc.


Registry Footprint

The complete registry configuration required for AutoCAD 2000 + ConstructiVision on Win10 x32. All values documented from Total Uninstall analysis and validated on VM 108.

HKLM — Machine-Level Keys

Autodesk Configuration

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

Value

Type

Data

ACAD

REG_SZ

C:\PROGRA~1\COMMON~1\AUTODE~1;C:\Program Files\ACAD2000\;C:\Program Files\ACAD2000\SUPPORT;C:\Program Files\ACAD2000\FONTS;C:\Program Files\ACAD2000\Express;C:\Program Files\ConstructiVision

AcadLocation

REG_SZ

C:\Program Files\ACAD2000

ProductName

REG_SZ

AutoCAD 2000

Release

REG_SZ

R15.00

SerialNumber

REG_SZ

110-97353576

LangAbbrev

REG_SZ

enu

LocaleId

REG_SZ

00000409

VBAComponents

REG_SZ

3

Note

The ACAD value includes C:\Program Files\ConstructiVision — this was appended during deployment so AutoCAD’s file search path includes the CV plugin directory at the machine level.

Subkeys under ACAD-1:409:

Subkey

Purpose

Entries

Applications\

~20 AutoCAD ARX/ObjectDBX application registrations

AcadApp, AcadAppload, AcadAttedit, AcadBlock, AcadBrowser, AcadDbConnect, AcadDC, AcadDim, Express tools, etc.

Dialogs\

Dialog configuration

Express\

Express Tools settings

Pick Add\

Selection mode

ProfileMgr\

Profile management

RegistrationInfo\

Product activation data

CD Key, Authorization Code

SplashInfo\

Splash screen settings

Supported File Types\

DWG/DXF/DWT associations

COM Registration (HKLM\SOFTWARE\Classes)

AutoCAD registers extensive COM automation objects used by Visual LISP. These are required for CSV.VLX to function.

Location

Count

Purpose

Classes\CLSID\

104

COM class factories (AutoCAD, AcDb, Acad objects)

Classes\Interface\

217

IAcad* COM interface definitions

Classes\TypeLib\

4

Type libraries (ACAD.TLB, AXAUTO15, AXDB15, VL)

Classes\ (ProgIDs)

8

Programmatic identifiers

Key CLSID: {8E75D911-3D21-11d2-85C4-080009A0C626}AutoCAD.Application

ProgIDs registered:

ProgID

Purpose

AutoCAD.Application

Primary COM entry point

AutoCAD.Application.15

Versioned COM entry point

AutoCAD.Drawing

DWG file association

AutoCAD.Drawing.15

Versioned DWG association

AutoCADColorDependentPlotStyleTableFile

CTB file association

AutoCADDrawingInterchange

DXF file association

AutoCADStyleSheetFile

SST file association

AutoCADTemplate

DWT template association

TypeLib GUIDs:

GUID

File

Description

{C094C1E2-57C6-11d2-85E3-080009A0C626}

ACAD.TLB

AutoCAD Type Library

{5892F2CA-745F-11d2-B6D4-0060B087E235}

AXAUTO15.TLB

Automation Library

{6D4C7DE5-704F-11D2-B6D2-0060B087E235}

AXDB15.TLB

ObjectDBX Library

{2EA01296-1AF3-11D2-A909-E27DA5000000}

VL.tlb

Visual LISP Library

HKCU — Per-User Keys

AutoCAD Profile

Path: HKCU\SOFTWARE\Autodesk\AutoCAD\R15.0\ACAD-1:409

Value

Data

CurProfile

<<Unnamed Profile>>

Support File Search Path

Path: HKCU\...\Profiles\<<Unnamed Profile>>\General

Value

Type

Data (with CV appended)

ACAD

REG_SZ

C:\PROGRA~1\COMMON~1\AUTODE~1;C:\Program Files\ACAD2000\;C:\Program Files\ACAD2000\SUPPORT;C:\Program Files\ACAD2000\FONTS;C:\Program Files\ACAD2000\Express;C:\Program Files\ConstructiVision;

Important

This is the critical registry value that tells AutoCAD where to find ConstructiVision’s .lsp, .dcl, .vlx, and menu files. Without C:\Program Files\ConstructiVision in this path, AutoCAD cannot locate any CV modules.

Startup Suite (Auto-Load)

Path: HKCU\...\Profiles\<<Unnamed Profile>>\Dialogs\Appload\Startup

VLX Mode (PB11 — golden reference from VM 102):

Value

Type

Data

NumStartup

REG_SZ

1

1Startup

REG_SZ

C:\Program Files\ConstructiVision\CSV.VLX

Source Mode (TB11 — current test configuration):

Value

Type

Data

NumStartup

REG_SZ

1

1Startup

REG_SZ

C:\Program Files\ConstructiVision\csvmenu.lsp

Note

VLX mode loads CSV.VLX which bundles csvmenu + csv + all 93 modules. The VLX reads progcont and routes to distinct dialogs per menu item. Source mode loads only csvmenu.lsp to install the menu; csv.lsp is then loaded on first menu click. Source-mode does NOT read progcont — all menu items show the same dialog (Bug 18).

Project Files Search Path

Path: HKCU\...\Profiles\<<Unnamed Profile>>\General (or configured via AutoCAD Options)

The Project Files Search Path tells AutoCAD where to find xrefs, images, and other files referenced by drawings. This is set per-project in AutoCAD:

Tools Options Files Project Files Search Path [Project Name] C:\Program Files\ConstructiVision\Project Files\

Other HKCU Profile Subkeys

Subkey

Purpose

3DGS Configuration\

3D graphics system settings

Editor Configuration\

Editor preferences

General Configuration\

General AutoCAD settings

Plotting Configuration\

Plotter settings and defaults

Registry Summary

Hive

Path

Purpose

HKLM

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

AutoCAD installation + CV in ACAD path

HKLM

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

ARX application registrations

HKLM

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

Serial number, CD key, auth code

HKLM

SOFTWARE\Classes\CLSID\{...}

104 COM class registrations

HKLM

SOFTWARE\Classes\Interface\{...}

217 COM interface definitions

HKLM

SOFTWARE\Classes\TypeLib\{...}

4 type libraries

HKLM

SOFTWARE\Classes\AutoCAD.* / Acad*

8 ProgID registrations

HKCU

Software\Autodesk\AutoCAD\R15.0\ACAD-1:409\Profiles\<<Unnamed Profile>>\General

Support path (includes CV)

HKCU

...\Dialogs\Appload\Startup

Auto-load CSV.VLX (PB11) or csvmenu.lsp (TB11)


Auto-Configuration Script

scripts/Configure-ConstructiVision.ps1 automates the HKCU registry setup after AutoCAD is installed and has been run at least once.

What It Does

  1. Adds CV to Support File Search Path — Appends C:\Program Files\ConstructiVision; to the ACAD value under HKCU\...\General

  2. Configures Startup Suite — Sets NumStartup, 1Startup (csvmenu.lsp), 2Startup (csv.vlx) under HKCU\...\Dialogs\Appload\Startup

  3. Validates prerequisites — Checks that CV folder exists, required files present, AutoCAD registry profile exists

  4. Idempotent — Safe to run multiple times; skips already-configured values

Usage

# Default path (C:\Program Files\ConstructiVision)
.\scripts\Configure-ConstructiVision.ps1

# Custom path
.\scripts\Configure-ConstructiVision.ps1 -CVPath "C:\Custom\Path"

What It Does NOT Do

  • Does not modify HKLM keys (requires admin elevation)

  • Does not install AutoCAD or copy CV files

  • Does not configure Project Files Search Path (project-specific, done in AutoCAD UI)

  • Does not handle COM registration (only needed on x64 — see doc 29)


Startup Chain

The complete load sequence from AutoCAD launch to ConstructiVision ready:

VLX Mode (PB11 — Production)

On real-directory installs (VM 102, 103):

1. Windows launches acad.exe
2. AutoCAD reads HKCU profile → loads Startup Suite entries
3. CSV.VLX loads via Startup Suite:
   - Contains compiled csvmenu, csv, csvreg, csvtech, and all 93 modules
   - Installs CV menu group from csv.mnu/mns
   - Makes c:csv command available
4. 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

On junction deployments (VM 104, 108+):

1. Windows launches acad.exe
2. AutoCAD reads HKCU profile → Startup Suite SILENTLY FAILS (Bug 35)
3. acaddoc.lsp runs from Support directory (real path):
   - Checks (not c:csv) — c:csv is undefined, so proceeds
   - Runs (load (findfile "CSV.VLX"))
   - VLX loads, installs menu, defines c:csv, full progcont routing works

Note

PB11 on junction VMs should now load correctly via (load) in acaddoc.lsp, with full VLX progcont routing. Pending retest after Bug 35 fix.

Source Mode (TB11 — Development/Testing)

1. Windows launches acad.exe
2. AutoCAD reads HKCU profile → loads Startup Suite entries
3. csvmenu.lsp loads:
   - Calls (menucmd "S=CSV") to install the CSV menu group
   - Loads csv.mnu → compiled to csv.mns/mnr/mnc
   - CV menu appears in AutoCAD menu bar
4. 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 instead of routing to distinct dialogs. This is Bug 18 and the highest-priority remaining source-mode issue. See the progcont Routing section below.

NTFS Junction + VLX Loading Limitation (Bug 35)

On junction-based deployments (VM 104, 108, 201, 202), AutoCAD 2000 silently fails to load VLX files in two ways:

  1. Startup Suite — The Dialogs\Appload\Startup registry entry pointing to CSV.VLX is ignored. AutoCAD does not report an error; it simply skips the entry.

  2. (arxload ...) — Wrong API. arxload is for ObjectARX .arx C++ extensions, NOT VLX files. Using (arxload (findfile "CSV.VLX")) returns error: ARXLOAD failed because VLX is not an ARX format.

  3. (command "_.appload" ...) — Wrong approach. The APPLOAD command opens an interactive file browser dialog, blocking automation. It cannot be used for unattended startup loading.

The correct way to load a VLX programmatically is the AutoLISP (load) function, which handles .lsp, .fas, AND .vlx files:

(load (findfile "CSV.VLX"))

This does NOT affect VMs with real (non-junction) directories (VM 102, VM 103) where the Startup Suite works correctly.

Root cause: AutoCAD 2000 (released 1999) predates NTFS junction support. Its internal file-loading code likely uses Win32 APIs that do not resolve reparse points, or it validates the path against expected locations.

Impact: PB11 VLX mode does not auto-load on junction deployments. The c:csv command is undefined, and all menu items fail with error: no function definition: C:CSV.

Mitigation: A unified acaddoc.lsp is deployed to C:\Program Files\ACAD2000\Support\ as a safety net. AutoCAD runs acaddoc.lsp from the Support directory (a real path, not a junction) every time a drawing opens. The loader checks (not c:csv) then uses:

  1. (load (findfile "CSV.VLX")) — loads VLX via the AutoLISP (load) function

  2. (load (findfile "csv.lsp")) — fallback to source-mode loading if no VLX found

Warning

Previous attempts used (arxload ...) (wrong — for .arx C++ extensions only) and (command "_.appload" ...) (wrong — opens interactive dialog). The correct mechanism is AutoLISP’s (load) function, which handles .lsp, .fas, and .vlx files. Testing is needed to confirm (load) succeeds through NTFS junctions.

Affected deployments:

Deployment Type

VLX Loading

Source Loading

Notes

Real directory (VM 102, 103)

✅ Works

✅ Works

Original installer

NTFS junction (VM 104, 108+)

❌ Fails

✅ Works

Git sparse checkout + junction

acaddoc.lsp — Per-Document Safety Net

Deployed to C:\Program Files\ACAD2000\Support\acaddoc.lsp by CV_Configure.bat (both PB11 and TB11 modes). Source lives in src/x32/TB11-01x32/acaddoc.lsp.

Behavior:

  • Runs every time a drawing opens (AutoCAD built-in mechanism)

  • Checks (not c:csv) — if already loaded, does nothing

  • Sets csv_silent_load flag to suppress csvmenu’s modal alert

  • Dispatches via (cond): tries VLX first, then csv.lsp

  • Clears csv_silent_load after loading

Module Load List (csvlst — 93 modules)

Defined in csv.lsp lines 130–139. All 93 modules are loaded on first use via (foreach a csvlst (load a)). In TB11-01x32, all 93 .lsp files are present on disk.


Source File Recovery

All 12 files were recovered from the v3.60 archive (src/x86/v3_60/) and copied to src/TB11-01x32/ on February 16, 2026. These files were listed in csvlst but had no corresponding .lsp file on disk in PB11-00x32.

Recovered Files (12 total)

File

Category

Impact When Missing

wd_dlg.lsp

Standard Opening

Crash — mp_dlg toggle mpwd called undefined function

wdenable.lsp

Standard Opening

Startup load error (silent)

wdpage.lsp

Standard Opening

Startup load error (silent)

wc_dlg.lsp

Weld Connections

Crash — mp_dlg toggle mpwc called undefined function

weld.lsp

Weld Connections

sdwg_dlg button wc would crash (but button was disabled)

weldconn.lsp

Weld Connections

Startup load error (silent)

wc_edit.lsp

Weld Connections

Startup load error (silent)

wcenable.lsp

Weld Connections

Startup load error (silent)

wclist.lsp

Weld Connections

Startup load error (silent)

wcpage.lsp

Weld Connections

Startup load error (silent)

wall_dlg.lsp

Wall Line

Crash — sdwg_dlg button wl called undefined function

warning.lsp

Utility Dialog

Overwrite confirmations failed

See 26-v360-source-recovery.md for the full recovery procedure.


Crash Path Resolutions

#

Path

Root Cause

Resolution

1

mp_dlg → Standard Opening toggle (mpwd) → wd_dlg

wd_dlg.lsp missing

FIXED — recovered from v3.60

2

mp_dlg → Weld Connections toggle (mpwc) → wc_dlg

wc_dlg.lsp missing

FIXED — recovered from v3.60

3

sdwg_dlg → Wall Line button (wl) → wall_dlg

wall_dlg.lsp missing

FIXED — recovered from v3.60

Current status: Zero crash paths. All 40 menu-level click paths and all deep dialog paths complete without crashing.

Note

While the crash paths are fixed (dialogs open), the output quality of these recovered features has not yet been fully validated. The weld connection and standard opening features need additional testing to verify correct drawing generation.


Updated Feature Status

Panel Properties Feature Toggles (mp_dlg — 20 toggles)

#

Feature

Toggle Key

Sub-Dialog

PB11 Status

TB11 Status

1

Rough Opening

mpro

ro_dlg

✅ Works

✅ Works

2

Square Blockout

mpsb

sb_dlg

✅ Works

✅ Works

3

Spandrel Seat

mpss

ss_dlg

✅ Works

✅ Works

4

Top Plate

mptp

tp_dlg

✅ Works

✅ Works

5

Pick Points

mppp

pp_dlg

✅ Works

✅ Works

6

Standard Opening

mpwd

wd_dlg

⚠️ CRASH

FIXED

7

Round Blockout

mprb

rb_dlg

✅ Works

✅ Works

8

Pilaster

mppl

pl_dlg

✅ Works

✅ Works

9

Ledger

mplb

lb_dlg

✅ Works

✅ Works

10

Brace Points

mpbp

bp_dlg

✅ Works

✅ Works

11

Man Door

mpdr

dr_dlg

✅ Works

✅ Works

12

Footing Step

mpfs

fs_dlg

✅ Works

✅ Works

13

Lintel

mpll

ll_dlg

✅ Works

✅ Works

14

Slab Dowels

mpsd

sd_dlg

✅ Works

✅ Works

15

Feature Strip (H)

mpfh

fh_dlg

✅ Works

✅ Works

16

Dock Leveler

mpdl

dl_dlg

✅ Works

✅ Works

17

Top Step

mpts

ts_dlg

✅ Works

✅ Works

18

Chamfer

mpch

ch_dlg

✅ Works

✅ Works

19

Weld Connections

mpwc

wc_dlg

⚠️ CRASH

FIXED

20

Feature Strip (V)

mpfv

fv_dlg

✅ Works

✅ Works

Result: 20/20 feature toggles operational (was 18/20).

Site Drawing Options (sdwg_dlg — 6 buttons)

#

Button

Key

Target

PB11 Status

TB11 Status

A.3.x.1

Grid Lines

gl

grid_dlg

✅ Active

✅ Active

A.3.x.2

Wall Line

wl

wall_dlg

⚠️ CRASH

FIXED

A.3.x.3

Slab on Grade

sg

slab_dlg

✅ Active

✅ Active

A.3.x.4

Footings

fg

footing

🔒 STUB (disabled)

🔒 STUB (unchanged)

A.3.x.5

Column Pads

cp

column

🔒 STUB (disabled)

🔒 STUB (unchanged)

A.3.x.6

Weld Connections

wc

weld

⚠️ Source missing (disabled)

✅ Source present (still disabled in UI)


Source File Inventory

For the complete file-by-file inventory organized by role (controllers, hub dialogs, data input dialogs, drawing generation, helpers, stubs), refer to the legacy architecture doc §22. The 12 recovered files listed above are the only additions.


Remaining Stubs and Disabled Features

Unchanged from PB11-00x32 — features that were never completed or intentionally disabled in v11.

Stub Functions

Module

Message

UI State

footing.lsp

(alert "Sorry, this function is not available in this release")

Disabled via (mode_tile "fg" 1)

column.lsp

(alert "Sorry, this function is not available in this release")

Disabled via (mode_tile "cp" 1)

Compiled-Only Functions (Inside CSV.VLX)

Function

Menu Item

Purpose

csvreg

M: Registration Manager

Software licensing/registration

csvtech

Q: Tech Support

Technical support contact

progcont Routing — VLX vs Source Mismatch

Important

Discovered Mar 1, 2026: progcont is NOT dead code in VLX mode. Discovered Mar 11, 2026: VLX and source use different NOD key names (Bug 63). See NOD Key Architecture.

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

See Bug 18 in 32-tb11-bug-tracker.md and Section 3.1a of 31-comprehensive-workflow-analysis.md for full analysis.


NOD Key Architecture

Important

Discovered Mar 11, 2026 (Bug 63): The VLX and source code use DIFFERENT Named Object Dictionary key names. This was the single biggest source archaeology finding of the project.

The Mismatch

ConstructiVision stores panel and site configuration data as XRecord entries in AutoCAD’s Named Object Dictionary (NOD). The VLX writes these under one key name; all surviving source code checked a different key name:

Data Type

VLX Key (written by csv.vlx)

Source Key (checked by .lsp files)

Status

Panel config

"panel"

"panel_list"

✅ Fixed — dual-key reads

Panel linkage

"panel1"

(not referenced in any .lsp)

⚠️ Unknown purpose

Site config

"site"

"site_list"

✅ Fixed — dual-key reads

Site linkage

"site1"

(not referenced in any .lsp)

⚠️ Unknown purpose

Tilt-up(?)

"tilt" (observed in CSBsite1)

(not yet investigated)

⚠️ Unknown

CSVDIAG Evidence

CSB001.dwg (panel drawing, VM 104):

  • NOD keys: ACAD_GROUP, ACAD_LAYOUT, ACAD_MLINESTYLE, ACAD_PLOTSETTINGS, ACAD_PLOTSTYLENAME, AcDbVariableDictionary, panel, panel1

  • panel_list: NOT FOUND

  • site_list: NOT FOUND

CSBsite1.dwg (site drawing, VM 104):

  • NOD keys: ACAD_GROUP, ACAD_LAYOUT, ACAD_MLINESTYLE, ACAD_PLOTSETTINGS, ACAD_PLOTSTYLENAME, AcDbVariableDictionary, site, site1, tilt

  • panel: NOT FOUND

  • site_list: NOT FOUND

Dual-Key Fix Pattern

All dictsearch reads now check both keys via (or):

;; Before (broken on VLX-created drawings):
(if (dictsearch (namedobjdict) "panel_list") ...)

;; After (works on both VLX and source-created drawings):
(if (or (dictsearch (namedobjdict) "panel")
        (dictsearch (namedobjdict) "panel_list")) ...)

All dictadd writes remain "panel_list" / "site_list" for source-mode compatibility. This means:

  • Source-mode creates drawings with panel_list/site_list keys

  • VLX-mode creates drawings with panel/site keys

  • Both modes can now READ either format

Files Modified (Bug 63 — commits 178c9ba6, 41860c39)

Panel dual-key (14 files × 2 for x64 = 28):

File

Occurrences

Type

csv.lsp

3

Tier 1 detect + progcont guards

panatt.lsp

1

XRecord read

panatt.lsp (Visual)

1

XRecord read

dwgold.lsp

1

XRecord check

md_dlg.lsp

14

Dialog routing guards

engexp.lsp

2

Read + delete-before-write

native.lsp

1

XRecord check

panel.lsp

1

XRecord check

makepan.LSP

1

XRecord check

Visual copies

5

Same patterns

Site dual-key (10 files × 2 for x64 = 20):

File

Occurrences

Type

csv.lsp

1

Tier 3 site detect

site_dlg.lsp

2

Guard + data extraction

sdwg_dlg.lsp

2

Guard + data extraction

grid_dlg.lsp

1

Delete-before-write

slab_dlg.lsp

1

Delete-before-write

Visual copies

5

Same patterns

Uninvestigated Keys

  • panel1: Present in VLX-created panel drawings. Zero references in source code. Likely contains panel-to-site linkage data (panel order, location, elevation within a site). Needs CSVDIAG dump of actual XRecord contents.

  • site1: Expected parallel to panel1 in site drawings. Needs CSVDIAG confirmation.

  • tilt: Observed in CSBsite1.dwg NOD. Likely tilt-up wall data. Needs investigation.

  • Panel-to-site relationship: Panels attach to sites as INSERT/XREF blocks (confirmed by CSVDIAG — CSBsite1 contains CSB001–CSB022 inserts). The layout.lsp module positions these inserts and saves positions to conslist.txt. The btch.lsp/btch_dlg.lsp modules iterate panels by filename pattern (pnlname*.dwg), not by NOD keys.

XRecord Structure

Both panel and site XRecords use the same internal format — nested DXF groups encoding section/name/value triplets:

(0 . "XRECORD")
(100 . "AcDbXrecord")
(1 . "section_name")    ;; e.g., "mpvar", "chvar", "gdvar"
  (2 . "variable_name") ;; e.g., "mpv#", "mppn", "gdv#"
  (3 . "value")         ;; e.g., "V2.25", "CSB", "1"
(1 . "next_section")
  ...

Parsed by the same pattern in panatt.lsp (panel) and site_dlg.lsp (site) into nested alists: ((section . ((var . val) ...)) ...)

The convert function (convert.lsp) initializes default values when the version field (mpv#/gdv#) doesn’t match "V2.25" — it takes "panel" or "site" as argument to select which variable set to default.


Updated Test Matrix

Fixed Crash Paths

ID

Path

PB11

TB11

Verified

T-A2-1-WD

mp_dlg → Standard Opening → wd_dlg

⚠️ CRASH

✅ Dialog opens, fields work

Pending

T-A2-1-WC

mp_dlg → Weld Connections → wc_dlg

⚠️ CRASH

✅ Dialog opens, fields work

Pending

T-A3x2

sdwg_dlg → Wall Line → wall_dlg

⚠️ CRASH

✅ Dialog opens, fields work

Pending

Quality Validation Priority

Priority

Feature

What to Validate

High

Standard Opening

Dialog fields populate; opening draws at correct position

High

Weld Connections

Dialog fields populate; weld marks render in drawing

Medium

Wall Line

Dialog fields populate; wall line draws on site plan

Medium

Warning dialog

Overwrite confirmations appear when expected

Low

Weld utility modules

Startup load completes without errors (already working)

For the full 40-path menu-level test matrix and deep dialog tests, refer to the legacy architecture doc §23. All test expectations are unchanged except the 3 crash paths listed above and T-A3x6 (weld source now present, still disabled in UI).


Platform Compatibility

Platform

AutoCAD 2000

ConstructiVision

Status

Notes

Windows XP

✅ Works

✅ Works

Fully Supported

Reference platform

Windows Vista

✅ Works

✅ Works

Fully Supported

Windows 7

✅ Works

⚠️ pcAnywhere bug

Limited

pcAnywhere BHF path issue (not CV — see 22-windows10-upgrade-study)

Win10 32-bit

✅ Works

✅ Works

Fully Supported

VM 108 — config script required

Note

For Win10 64-bit deployment, see 29-tb11-01x64-architecture.md — the x64 build forks the install into separate acad2000/ and nanocad25/ directories and requires Wow6432Node registry fixes.


Validation & Bug Cross-Reference

The 2026 validation campaign has discovered 63 bugs across VMs 102–109. Full details in 32-tb11-bug-tracker.md.

Bug Summary by Category

Category

Bugs

Fixed

Open

Notes

Source-mode (VM 108)

1–18

17

1

Bug 18 (progcont routing) is the remaining open bug

Profile/Deployment (VLX)

19–22

3

0

Registry/profile configuration issues

Deployment/Env (VM 104)

24–34

9

2

XP platform quirks + deployment script issues

Source-mode dialog & routing

35–41, 50–53

7

1

progcont routing, format corruption, cold-call guards

Skill Pack compliance

54–62

0

9

Error handlers, undo groups, namespace, DCL load checks

NOD key mismatch

63

1

0

VLX uses panel/site, source used panel_list/site_list

Total

63

50

12

+ 1 known limitation (Bug 27 — AutoIT false positive)

Key Validation Results

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

Critical Findings

1. progcont VLX/Source Mismatch (Bug 18)

The most significant validation finding is that progcont routing works correctly in VLX mode but is completely absent from source-mode. The VLX was compiled from source that doesn’t exist in the repository. See the progcont Routing section above and Bug 18 for details.

2. NOD Key Name Mismatch (Bug 63)

The VLX writes XRecords under different dictionary key names than the source code checks. Panel drawings have "panel" (VLX) vs "panel_list" (source); site drawings have "site" vs "site_list". Fixed with dual-key reads across 24 files. See NOD Key Architecture for full details.

3. CSVDIAG confirms panel-to-site linkage via XREF INSERTs (CSBsite1.dwg)

Site drawings contain panel drawings as INSERT/XREF blocks (CSB001–CSB022 observed). The panel1 and site1 NOD keys (VLX-only, zero source references) likely store additional linkage metadata. Investigation ongoing.

Resolved GitHub Issues

Issue

Bug

Title

Commit

Resolution

#18

18

progcont routing missing from source

Open — VLX/source mismatch, needs reconstructed routing

#63

63

NOD key mismatch — panel/site detection

178c9ba6, 41860c39

✅ Fixed — dual-key reads for panel + site


References