ConstructiVision v11 Architecture Documentation

Purpose: This document maps the complete architecture of ConstructiVision v11 for the PB11-00x32 (32-bit AutoCAD 2000) platform. Every clickable path is traced from the menu through every dialog, sub-dialog, and sub-sub-dialog to the final leaf action.

Source Location: src/PB11-00x32/
Last Updated: February 16, 2026


Table of Contents

  1. System Overview

  2. Menu Structure (40 Click Paths)

  3. A — Program Options

  4. B — Create New Project

  5. C — Create New Drawing

  6. D — Edit Existing Drawing

  7. E — Batch Utilities

  8. F — Change 3D Viewpoint

  9. G — View Layers

  10. H — Shading

  11. I — Print

  12. J — Materials List

  13. K — Revision History

  14. L — Slope Calculator

  15. M — Registration Manager

  16. N — Help

  17. O — Web Page

  18. P — About ConstructiVision

  19. Q — Tech Support

  20. Shared Dialogs Reference

  21. Missing and Stub Source Files

  22. Source File Inventory

  23. Test Matrix


System Overview

Technology Stack

  • Platform: AutoCAD 2000 (32-bit)

  • Language: AutoLISP with DCL (Dialog Control Language)

  • Compiled Format: CSV.VLX (Visual LISP eXecutable) — contains csvreg and csvtech as compiled-only functions with no source

  • Main Entry Point: c:csv function in csv.lsp (loaded via csv.vlx)

  • Menu System: csv.mnu compiled to csv.mns / csv.mnr / csv.mnc / csv.cui

Physical File Inventory

Type

Count

Notes

LISP source (.lsp)

~81

93 listed in csvlst; 12 missing (see §21)

DCL dialogs (.dcl)

26

Some contain multiple dialog definitions

Menu files

5

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

Compiled VLX

1

CSV.VLX — compiled application bundle

Compiled ARX

1

CSV.ARX — ObjectARX extension

Help file

1

CSV.Hlp — Windows Help

PDF manual

1

CSV Manual.pdf

Maximum Dialog Depth

The deepest user-interaction path in the system is 6 levels from menu click:

Menu → csv → site_dlg → sdwg_dlg → grid_dlg → num_dlg → insgrid_dlg

The calculator (calc_dlg) is available at nearly every level as a pop-up, making some logical paths 7 levels deep.

Module Load List (csvlst — 93 modules)

Defined in csv.lsp lines 130–139. All 93 are loaded via (foreach a csvlst (load a)) at startup. Of these, 12 have no source file on disk (see §21).



A — Program Options

Menu: Program Options
ID: ID_CSVRUN
progcont: 1
Action: Loads csv.vlx → calls csv

This is the primary entry point. The csv function (csv.lsp, 281 lines) initializes the system and routes to the appropriate hub dialog.

A — Entry Flow (csv.lsp)

  1. Set 30+ AutoCAD system variables (cmdecho, blipmode, osmode, etc.)

  2. Load all 93 modules from csvlst (or call vl-acad-defun if ARX is loaded)

  3. Set curdir from current drawing directory

  4. Routing decision:

    • No drawing open (Drawing.dwg or acad directory) → Project Dialog (A.1)

    • panel_list exists in namedobjdict → Panel Options Dialog (A.2)

    • site_list exists in namedobjdict → Site Options Dialog (A.3)

    • Neither → Panel Options Dialog (A.2) as default

Important: The progcont value is set by each menu item but is never checked in the source code. All five menu items (A–E) that call csv pass through the same routing logic regardless of their progcont value.

A.1 — Project Dialog

DCL: project.dcl → dialog "project"
Title: “ConstructiVision – Project Options”

Button

Key

Action

Depth

New Project

new

A.1.1 New Project Dialog

+1

Existing Project

old

→ File browser (getfiled) → returns to routing

leaf

Cancel

cancel

Sets ld=nil, exits csv

leaf

Help

help

Opens csv.hlp “Project”

leaf

A.1.1 — New Project Dialog

DCL: new.dcl → dialog "new"
Title: “ConstructiVision – New Project”
Source: new.lsp (32 lines)

Field

Key

Type

Size

Purpose

Project Name

pjname

edit_box

32 chars

Name of project

Directory

curdir

edit_box

40 wide

Auto-populated from parent dir

Button

Key

Action

OK

accept

Creates directory via shell (cv.bat), then back to routing

Cancel

cancel

Aborts

Help

help

Opens csv.hlp “New_Project”

After A.1 completes → returns to routing → opens A.2 (Panel Options) or A.3 (Site Options).


A.2 — Panel Options Dialog

DCL: md_dlg.dcl → dialog "md_dlg" (182 lines)
Title: “ConstructiVision – Panel Options”
Source: md_dlg.lsp (217 lines)

This is the central hub for all panel operations. Contains 18 action buttons plus OK, Cancel, Help, and Calc.

State sensitivity: When no drawing is loaded (olddwg=nil), buttons A.2.3 through A.2.18 are disabled — only Create/Edit and OK/Cancel/Help/Calc are active.

#

Button Label

Key

Action

See

A.2.1

Create New Panel

new

→ Drawing Options → Panel Properties

§A.2.1

A.2.2

Edit Existing Panel

old

→ Drawing Options → Panel Properties

§A.2.2

A.2.3

View All Layers

val

Layer commands + zoom a

§A.2.3

A.2.4

Print All Layers

pal

Layer commands + plt

§A.2.4

A.2.5

View Greenplate

vgp

Layer subset + zoom a

§A.2.5

A.2.6

Print Greenplate

pgp

Layer subset + plt

§A.2.6

A.2.7

View Connections

vcn

Layer subset + zoom a

§A.2.7

A.2.8

Print Connections

pcn

Layer subset + plt

§A.2.8

A.2.9

View Pick/Brace Points

vpp

Layer subset + zoom a

§A.2.9

A.2.10

Print Pick/Brace Points

ppp

Layer subset + plt

§A.2.10

A.2.11

View Feature Strip

vfs

Layer subset + zoom a

§A.2.11

A.2.12

Print Feature Strip

pfs

Layer subset + plt

§A.2.12

A.2.13

View Perimeter

vpo

Layer subset + zoom a

§A.2.13

A.2.14

Print Perimeter

ppo

Layer subset + plt

§A.2.14

A.2.15

View Solid

vso

Layer subset + zoom a

§A.2.15

A.2.16

Print Solid

pso

Layer subset + plt

§A.2.16

A.2.17

Site Options

su

A.3 Site Options Dialog

§A.3

A.2.18

Batch Utilities

pbt

A.4 Batch Utilities Dialog

§A.4

Calc

calc

calc_dlg (shared)

§20

OK

accept

Closes dialog, returns ld

leaf

Cancel

cancel

Aborts

leaf

Help

help

Opens csv.hlp “Panel_Options”

leaf

A.2.1 — Create New Panel

  1. If no drawing loaded → opens Drawing Options (dwg.dcl):

    • “This Drawing” → uses current drawing

    • “Another Drawing” → file browser

    • “Cancel” → abort

  2. Calls dwgnew (dwgnew.lsp, 31 lines) — security check, template setup

  3. Sets ld="pt", dialog closes

  4. After dialog: calls panel()A.2.1.x Panel Properties

A.2.2 — Edit Existing Panel

  1. If no drawing loaded → file browser (getfiled)

  2. If drawing loaded → opens Drawing Options (dwg.dcl)

  3. Calls dwgold (dwgold.lsp, 35 lines) — validates panel_list in namedobjdict

  4. Sets ld="pt", dialog closes

  5. After dialog: calls panel()A.2.1.x Panel Properties

A.2.1.x — Panel Properties Dialog (mp_dlg)

DCL: mp_dlg.dcl → dialog "mp_dlg" (436 lines of DCL)
Title: “ConstructiVision – Where the Future is Now!”
Source: mp_dlg.lsp (150 lines)

This is the most complex single dialog in the system. It collects all panel parameters and contains 20 feature toggles, each of which opens its own sub-dialog.

Project Details Section

Field

Key

Type

Size

Purpose

Version

mpv#

edit_box

disabled

Version number (read-only)

Project Name

mppn

edit_box

disabled

Auto-populated (read-only)

Location

mplo

edit_box

18 chars

Project location

Contractor

mpco

edit_box

16 chars

Contractor name

Drawing Details Section

Field

Key

Type

Size/Options

Purpose

Panel Number

mpp#

edit_box

4 chars

Validates uniqueness

Scale Factor

mpsc

popup_list

Inches per foot

Drawing scale

Viewed From

mpvw

popup_list

Interior/Exterior

View direction

Drawn By

mpdb

edit_box

6 chars

Drafter initials

Panel Dimensions Section (all with slider controls)

Field

Key

Slider

Range

Purpose

Thickness

mpx1

mpx1s

24–96

Panel thickness

Width

mpw1

mpw1s

384–4800

Panel width

Bottom Elevation

mpe1

mpe1s

-960–2880

Bottom elevation

Miter Left

mpm1

mpm1s

-270–270

Left miter angle

Miter Right

mpm2

mpm2s

-270–270

Right miter angle

Top Left

mpl1

mpl1s

384–4800

Top left height

Top Right

mpr1

mpr1s

384–4800

Top right height

Top Peak Elevation

mpp1

mpp1s

0–4800

Peak height (0 = no peak)

Top Peak Distance

mpd1

mpd1s

0–4800

Peak distance from left

Arch Radius

mpa1

mpa1s

0–9600

Arch radius (0 = no arch)

Panel Details — 20 Feature Toggles

Each toggle, when checked (value "1"), opens a sub-dialog for that feature. The naming convention is: key "mpXX" → calls function XX_dlg. All 18 existing sub-dialogs are leaf nodes — they do not open further sub-dialogs (except the shared Calc button).

#

Feature

Toggle Key

Sub-Dialog Function

DCL File

Status

1

Rough Opening

mpro

ro_dlg

ro_dlg.dcl

✅ Works

2

Square Blockout

mpsb

sb_dlg

sb_dlg.dcl

✅ Works

3

Spandrel Seat

mpss

ss_dlg

ss_dlg.dcl

✅ Works

4

Top Plate

mptp

tp_dlg

tp_dlg.dcl

✅ Works

5

Pick Points

mppp

pp_dlg

pp_dlg.dcl

✅ Works

6

Standard Opening

mpwd

wd_dlg

⚠️ MISSING — crashes

7

Round Blockout

mprb

rb_dlg

rb_dlg.dcl

✅ Works

8

Pilaster

mppl

pl_dlg

pl_dlg.dcl

✅ Works

9

Ledger

mplb

lb_dlg

lb_dlg.dcl

✅ Works

10

Brace Points

mpbp

bp_dlg

bp_dlg.dcl

✅ Works

11

Man Door

mpdr

dr_dlg

dr_dlg.dcl

✅ Works

12

Footing Step

mpfs

fs_dlg

fs_dlg.dcl

✅ Works

13

Lintel

mpll

ll_dlg

ll_dlg.dcl

✅ Works

14

Slab Dowels

mpsd

sd_dlg

sd_dlg.dcl

✅ Works

15

Feature Strip (H)

mpfh

fh_dlg

fh_dlg.dcl (67KB)

✅ Works

16

Dock Leveler

mpdl

dl_dlg

dl_dlg.dcl

✅ Works

17

Top Step

mpts

ts_dlg

ts_dlg.dcl

✅ Works

18

Chamfer

mpch

ch_dlg

ch_dlg.dcl

✅ Works

19

Weld Connections

mpwc

wc_dlg

⚠️ MISSING — crashes

20

Feature Strip (V)

mpfv

fv_dlg

fv_dlg.dcl (51KB)

✅ Works

Sub-Dialog Detail: ro_dlg (Rough Opening — representative example)

DCL: ro_dlg.dcl
Source: ro_dlg.lsp (89 lines)

Supports up to 4 rough openings per panel. Per opening:

Field

Purpose

Width

Opening width

Height

Opening height

Horizontal Position

Distance from panel left edge

Vertical Position

Distance from panel bottom

Type

Dropdown: Window / Door / Louver / etc.

Buttons: OK, Cancel, Help (“Rough_Opening”), Calc → calc_dlg

After OK in mp_dlg (Panel Generation Pipeline)
mp_dlg OK → updvar (store variables to xrecord)
           → drawpan (342 lines — generates panel geometry)
           → drawdim (89KB — dimensioning engine, largest file)
           → mkblk (38KB — title block generation)
           → finpan (finalize + revision prompt)

None of these post-dialog steps have user-visible dialogs (they draw directly in AutoCAD).

A.2.3 — View All Layers

layer t * u * on * s custom ;;
zoom a

Thaws, unlocks, turns on all layers, sets “custom” current. Leaf action.

A.2.4 — Print All Layers

Same layer setup as A.2.3 → calls plt function (plt.lsp, 22 lines) → AutoCAD plot command. Leaf action.

A.2.5 — View Greenplate

layer t * u * off * on 0,solid,solid_dim,perimeter,perimeter_dim,greenplate,greenplate_dim,hardware s custom ;;
zoom a

A.2.6 — Print Greenplate

Same layer setup as A.2.5 → plt. Leaf action.

A.2.7 — View Connections

layer t * u * off * on 0,solid,solid_dim,perimeter,perimeter_dim,connections,connections_dim s custom ;;
zoom a

A.2.8 — Print Connections

Same layer setup as A.2.7 → plt. Leaf action.

A.2.9 — View Pick/Brace Points

layer t * u * off * on 0,solid,solid_dim,perimeter,perimeter_dim,points,points_dim s custom ;;
zoom a

A.2.10 — Print Pick/Brace Points

Same layer setup as A.2.9 → plt. Leaf action.

A.2.11 — View Feature Strip

layer t * u * off * on 0,solid,solid_dim,perimeter,perimeter_dim,feature,feature_dim s custom ;;
zoom a

A.2.12 — Print Feature Strip

Same layer setup as A.2.11 → plt. Leaf action.

A.2.13 — View Perimeter

layer t * u * off * on 0,solid_dim,solid,perimeter,perimeter_dim s custom ;;
zoom a

A.2.14 — Print Perimeter

Same layer setup as A.2.13 → plt. Leaf action.

A.2.15 — View Solid

layer u * off * t solid,solid_dim,feature,points,greenplate,connections on solid,solid_dim,feature,points,greenplate,connections s solid ;;
zoom a

A.2.16 — Print Solid

Same layer setup as A.2.15 → plt. Leaf action.

A.2.17 — Site Options

Sets ld="st", closes md_dlg → routes to A.3 Site Options Dialog.

A.2.18 — Batch Utilities

Opens A.4 Batch Utilities Dialog directly from within md_dlg.


A.3 — Site Options Dialog

DCL: site_dlg.dcl → dialog "site_dlg" (site_dlg.dcl contains 5 dialog definitions total)
Title: “ConstructiVision – Site Options”
Source: site_dlg.lsp (178 lines)

State sensitivity: When no site drawing is loaded (filename doesn’t contain “site”), buttons A.3.3 through A.3.14 are disabled.

#

Button Label

Key

Action

See

A.3.1

Create New Site Drawing

new

Template selection → dwgnew → sdwg_dlg

§A.3.1

A.3.2

Edit Existing Site Drawing

old

File browser → dwgold → sdwg_dlg

§A.3.2

A.3.3

Attach Panels

ip

inspanel (→ invar dialog for gap)

§A.3.3

A.3.4

Detach Panels

dp

xref detach * (direct AutoCAD)

leaf

A.3.5

Tilt-up Panels

tu

tiltup (reads tiltlist.txt)

leaf

A.3.6

Layout Panels

lp

layout (→ invar dialog → savelay)

§A.3.6

A.3.7

Print Materials List

ml

matl_dlg progress dialog

§A.5

A.3.8

Save Layout

sl

savelay (writes conslist.txt)

leaf

A.3.9

View All Layers

val

Layer commands + regen

leaf

A.3.10

Print All Layers

pal

Layer commands + regen + plt

leaf

A.3.11

View Selected Layers

vsl

Reads layer toggles from dialog → layer cmds

leaf

A.3.12

Print Selected Layers

psl

Layer commands + plt

leaf

A.3.13

Change 3D Viewpoint

vp

Viewpoint Dialog (viewpt)

§A.3.13

A.3.14

Render

rn

STUB — shows alert “not available”

leaf

Calc

calc

calc_dlg

§20

OK

accept

Closes dialog

leaf

Cancel

cancel

Aborts

leaf

Help

help

Opens csv.hlp “Site_Options”

leaf

A.3.1 — Create New Site Drawing

  1. Opens Drawing Options (dwg.dcl) — “This Drawing” / “Another Drawing” / Cancel

  2. Calls dwgnew → sets ld="st"

  3. After dialog close: calls sdwg_dlgA.3.x Site Drawing Options

A.3.2 — Edit Existing Site Drawing

  1. File browser or Drawing Options dialog

  2. Calls dwgold → validates site_list in namedobjdict → sets ld="st"

  3. After dialog close: calls sdwg_dlgA.3.x Site Drawing Options

A.3.3 — Attach Panels

  1. Opens invar dialog (“enter gap dimension”)

  2. Calls inspanel (inspanel.lsp, 165 lines)

  3. Reads wall lines from site drawing → matches panel numbers → inserts panels as xrefs → creates tiltlist.txt

A.3.6 — Layout Panels

  1. Opens invar dialog (“enter rotation angle”)

  2. Calls layout (layout.lsp, 166 lines) — rotates panel blocks for tilt-up

  3. Calls savelay — writes positions to conslist.txt

A.3.13 — Viewpoint Dialog

DCL: site_dlg.dcl contains dialog "viewpt"
Title: “ConstructiVision – 3D Viewpoint”

Button

Key

Viewpoint Command

Top

top

(command "vpoint" '(0 0 1))

Left

left

(command "vpoint" '(-1 0 0))

Right

right

(command "vpoint" '(1 0 0))

Front

front

(command "vpoint" '(0 -1 0))

Back

back

(command "vpoint" '(0 1 0))

SE Isometric

se

(command "vpoint" '(1 -1 1))

SW Isometric

sw

(command "vpoint" '(-1 -1 1))

NE Isometric

ne

(command "vpoint" '(1 1 1))

NW Isometric

nw

(command "vpoint" '(-1 1 1))

Cancel

cancel

Aborts

All buttons are leaf actions.


A.3.x — Site Drawing Options Dialog (sdwg_dlg)

DCL: sdwg_dlg.dcl → dialog "sdwg_dlg"
Title: “ConstructiVision – Site Drawing Options”
Source: sdwg_dlg.lsp (58 lines)

#

Button Label

Key

Action

Status

A.3.x.1

Grid Lines

gl

Grid Dialog (A.3.x.1)

✅ Active

A.3.x.2

Wall Line

wl

wall_dlg

⚠️ SOURCE MISSING

A.3.x.3

Slab on Grade

sg

Slab Dialog (A.3.x.3)

✅ Active

A.3.x.4

Footings

fg

footing

STUB (disabled via mode_tile)

A.3.x.5

Column Pads

cp

column

STUB (disabled via mode_tile)

A.3.x.6

Weld Connections

wc

weld

⚠️ SOURCE MISSING (disabled)

Calc

calc

calc_dlg

✅ Active

A.3.x.1 — Grid Dialog (grid_dlg)

DCL: grid_dlg.dcl — 987 lines, contains 4 dialog definitions
Source: grid_dlg.lsp (356 lines)

Main dialog — “ConstructiVision – Gridline Details”:

Section

Fields

Horizontal Axis

Letters Horizontal (gdh1) / Numbers Horizontal (gdh2) radio

Horizontal Direction

Ascending L→R (gdh3) / Descending L→R (gdh4) radio

Vertical Axis

Numbers Vertical (gdv1) / Letters Vertical (gdv2) radio

Vertical Direction

Ascending B→T (gdv3) / Descending B→T (gdv4) radio

Button

Action

Depth from grid_dlg

Define Number Grids

Numbered Grids Dialog (num_dlg)

+1

Define Letter Grids

Lettered Grids Dialog (let_dlg)

+1

OK

Saves to xrecord → calls gridline to draw

leaf

Cancel

Aborts

leaf

Calc

→ calc_dlg

+1

Numbered Grids Dialog (num_dlg)

DCL: Inside grid_dlg.dcl → dialog "num_dlg"
Source: num_dlg.lsp (22 lines — wrapper that calls grid_dlg.lsp functions)

Field

Key

Purpose

Insert Grid toggle

ni

When checked → opens Insert Grid Dialog (insgrid_dlg)

Preset Grids toggle

np

When checked → auto-fills evenly spaced grids

First Grid Number

nf

Starting number

Last Grid Number

nl

Ending number

Default Spacing

nd

Default distance between grids

Between / Reference

nb / nr

Radio — dimension display mode

Grid ID 1–50

nmn1nmn50

50 edit boxes for grid labels

Distance 1–50

nmd1nmd50

50 edit boxes for distances

Button

Action

OK

Returns to grid_dlg

Cancel

Aborts

Calc

→ calc_dlg

Lettered Grids Dialog (let_dlg)

DCL: Inside grid_dlg.dcl → dialog "let_dlg"
Source: let_dlg.lsp (28 lines — wrapper)

Same structure as num_dlg but defaults A–Z. Keys: ltn1ltn50 / ltd1ltd50.

Insert Grid Dialog (insgrid_dlg)

DCL: Inside grid_dlg.dcl → dialog "insgrid_dlg"

Field

Key

Type

Purpose

Insert After Grid

pg

popup_list

Which existing grid to insert after

New Grid ID

id

edit_box

Label for the new grid

Distance

dist

edit_box

Distance from the reference grid

Button

Action

OK

Inserts row into grid list, returns to num_dlg/let_dlg

Cancel

Aborts

Calc

→ calc_dlg

Full depth path through grid system:

sdwg_dlg → grid_dlg → num_dlg → insgrid_dlg → calc_dlg
                     → let_dlg → insgrid_dlg → calc_dlg

A.3.x.3 — Slab Dialog (slab_dlg)

DCL: slab_dlg.dcl — 897 lines, contains 4 dialog definitions (slab_dlg, page2, page3, page4)
Source: slab_dlg.lsp (163 lines)
Prerequisite: Requires >20 gridlines defined, otherwise shows alert “Grids must be defined before Slab Line can be drawn”

4 pages, each displaying 16 slab/wall line segments = 64 total segments.

Per segment (10 fields × 64 = 640 total input fields):

Field

Key Pattern

Type

Purpose

Begin X Grid

slg1_N

popup_list

Beginning X gridline

Begin X Offset

slo1_N

edit_box

Offset from X grid

Begin Y Grid

slg2_N

popup_list

Beginning Y gridline

Begin Y Offset

slo2_N

edit_box

Offset from Y grid

Begin Elevation

sle1_N

edit_box

Elevation at begin point

End X Grid

slg3_N

popup_list

End X gridline

End X Offset

slo3_N

edit_box

Offset from X grid

End Y Grid

slg4_N

popup_list

End Y gridline

End Y Offset

slo4_N

edit_box

Offset from Y grid

End Elevation

sle2_N

edit_box

Elevation at end point

Additional field on Page 1: Slab Thickness (slx1).

Button

Action

Page 2 / Page 3 / Page 4

Navigates to sibling dialog pages (saves data, opens next)

OK

Saves to xrecord → calls slabline to draw geometry

Cancel

Aborts

Calc

→ calc_dlg

Note: Although Page 1 is titled “Slab Details”, Pages 2–4 are titled “Wall Line Details”. Wall functionality has been merged into the slab dialog — which is why wall_dlg.lsp doesn’t exist.


A.4 — Batch Utilities Dialog

DCL: btch_dlg.dcl → dialog "btch_dlg"
Source: btch_dlg.lsp (165 lines)

Section

Fields

Selection

All Panels (all radio) / Range (rngbmin/bmax popups) / Modified Since (modbdate popup)

Plot Mode

None (0 radio) / Print (1) / Print+Edit (2)

Processing

New (n radio) / Reprocess (r)

Layer Toggles

Layer toggles (checkboxes):

Toggle

Key

Layer

Exports

e

Enable export

All Elements

a

Master toggle (all layers)

Connections

c

connections layer

Custom

u

custom layer

Feature Strip

f

feature layer

Greenplate

g

greenplate layer

Hardware

h

hardware layer

Perimeter (Title Block)

p

perimeter layer

Openings

o

openings layer

Solid

s

solid layer

Button

Action

OK

btch function (btch.lsp, 37 lines) — generates btch.scr script → runs script cmd

Cancel

Aborts

Help

Opens csv.hlp “Batch”

After OK: btch builds a script file that opens each panel drawing sequentially, runs the panel generation pipeline (panel mp_dlg drawpan drawdim mkblk finpan), and optionally plots. Completely automated — no further user interaction.


A.5 — Materials List Dialog (matl_dlg)

DCL: matl_dlg.dcl
Source: matl_dlg.lsp (336 lines)

This is a progress display dialog (not user input). Shows processing status:

Field

Key

Content

Message 1

msg1

“Examining Panels”

Message 2

msg2

Total panel count

Message 3

msg3

Current panel number

Message 4

msg4

Status message

Processing logic: Iterates all blocks in the site drawing → for each panel block, counts materials (reveals, chamfers, braces, J-bolts, weld connections, cubic yards of concrete) → reads wcl.txt for weld connection definitions → writes formatted report to matlist.txt → sends to printer.


B — Create New Project

Menu: Create New Project
ID: ID_CSV8
progcont: 262153
Action: Loads csv.vlx → calls csv

Identical routing to A. The csv function does not check progcont. It enters the same decision tree:

  • No drawing → Project Dialog (A.1) → New Project (A.1.1)

  • Panel drawing → Panel Options (A.2)

  • Site drawing → Site Options (A.3)

All sub-dialogs are shared with A. See §A for complete dialog trees.


C — Create New Drawing

Menu: Create New Drawing
ID: ID_CSV16
progcont: 262161
Action: Loads csv.vlx → calls csv

Identical routing to A and B. Same dialog trees apply. See §A.


D — Edit Existing Drawing

Menu: Edit Existing Drawing
ID: ID_CSV0
progcont: 262145
Action: Loads csv.vlx → calls csv

Identical routing to A–C. Same dialog trees apply. See §A.


E — Batch Utilities

Menu: Batch Utilities
ID: ID_CSV32
progcont: 262177
Action: Loads csv.vlx → calls csv

Identical routing to A–D. The csv function routes to Panel Options (A.2) or Site Options (A.3), from which the user clicks “Batch Utilities” to reach A.4. See §A.4 for the full batch dialog.


F — Change 3D Viewpoint

Menu: Change 3D Viewpoint (submenu with 10 items)
ID: ID_CSV3d
Action: Pure AutoCAD commands — no LISP code involved

All 10 items are leaf nodes that execute AutoCAD _-view commands and set the *solid layer color:

#

Menu Item

AutoCAD Command

Layer Color

F.1

Panel Up Face / Site Plan

_-view _top

color 252 on *solid

F.2

Panel Down Face

_-view _bottom

color 252 on *solid

F.3

Panel Left Edge / West Elev

_-view _left

color 252 on *solid

F.4

Panel Right Edge / East Elev

_-view _right

color 252 on *solid

F.5

Panel Bottom Edge / North Elev

_-view _back

color 252 on *solid

F.6

Panel Top Edge / South Elev

_-view _front

color 252 on *solid

F.7

SW Isometric

_-view _swiso

color 255 on *solid

F.8

SE Isometric

_-view _seiso

color 255 on *solid

F.9

NE Isometric

_-view _neiso

color 255 on *solid

F.10

NW Isometric

_-view _nwiso

color 255 on *solid

Color convention: Orthographic views use color 252 (near-black), isometric views use color 255 (white/transparent).


G — View Layers

Menu: View Layers (nested submenu)
ID: ID_CSVLAYER

G.1 — Panel (submenu, 6 items)

#

Menu Item

ID

Action

Layers Enabled

G.1.a

All Layers

ID_AllLayers

csv (262209)

All layers on

G.1.b

Edge Form

ID_FormLayers

AutoCAD layer cmd

0, solid, solid_dim, perimeter, perimeter_dim

G.1.c

Ledgers / Top Plate

ID_GreenLayers

AutoCAD layer cmd

0, solid, solid_dim, perimeter, greenplate, greenplate_dim, hardware

G.1.d

Weld Connections

ID_ConnLayers

AutoCAD layer cmd

0, solid, solid_dim, perimeter, connections, connections_dim

G.1.e

Feature Strip

ID_FeatureLayers

AutoCAD layer cmd

0, solid, solid_dim, perimeter, feature, feature_dim

G.1.f

Pick / Brace Points

ID_PointLayers

AutoCAD layer cmd

0, solid, solid_dim, perimeter, points, points_dim

Items G.1.b–G.1.f set expert 5 to suppress prompts, then layer off * then on for specific layers. All are leaf actions.

G.1.a calls csv which routes through the normal dialog chain (see §A).

G.2 — Site (submenu, 1 item)

#

Menu Item

ID

Action

G.2.a

Select Layers

ID_CustomLayers

csv (262273) — routes through normal dialog chain


H — Shading

Menu: Shading (submenu with 3 items)
ID: ID_CSV8192
Action: Pure AutoCAD commands — no LISP code involved

#

Menu Item

AutoCAD Command

H.1

Off

_shademode 2

H.2

Hidden

_shademode h

H.3

Shaded

_shademode o

All 3 items are leaf nodes.


I — Print

Menu: Print (nested submenu)
ID: ID_CSVPRINT

I.1 — Panel (submenu, 6 items)

#

Menu Item

ID

progcont

Action

I.1.a

All Layers

ID_CSV256

262465

csv → plt

I.1.b

Edge Form

ID_PFormLayers

262401

Layer cmd → csv → plt

I.1.c

Ledgers / Top Plate

ID_PGreenLayers

262401

Layer cmd → csv → plt

I.1.d

Weld Connections

ID_PConnLayers

262401

Layer cmd → csv → plt

I.1.e

Feature Strip

ID_PFeatureLayers

262401

Layer cmd → csv → plt

I.1.f

Pick / Brace Points

ID_PPointLayers

262401

Layer cmd → csv → plt

For I.1.b–f: The menu first executes AutoCAD layer commands to set visibility (same layer sets as G.1.b–f), then calls csv.

I.2 — Site (submenu, 1 item)

#

Menu Item

ID

progcont

Action

I.2.a

Select Layouts

ID_CSV512

262657

csv → plt

plt Function (plt.lsp, 22 lines)

The plt function checks drawing orientation (portrait vs landscape), sets up plot settings, and calls AutoCAD’s plot command. In batch mode, it also manages layer visibility based on btcha flags. All print paths are leaf actions after the layer setup.


J — Materials List

Menu: Materials List
ID: ID_CSV1024
progcont: 263169
Action: Loads csv.vlx → calls csv

Routes through standard csv entry flow → Site Options (A.3) → “Print Materials List” button → A.5 matl_dlg (progress display, automated processing — see §A.5).


K — Revision History

Menu: Revision History
ID: ID_CSV2048
progcont: 264193
Action: Loads csv.vlx → calls csv

Routes through csv → Panel Options (A.2) or Site Options (A.3). The revision dialog is called from finpan during the panel generation pipeline.

Revision Dialog

DCL: revision.dcl → dialog "revision"
Source: revision.lsp (24 lines)

Fields (per row, 10 rows)

Key Pattern

Type

Purpose

Revision #

r1r10

edit_box

Revision number

Date

d1d10

edit_box

Revision date

Description

t1t10

edit_box

Revision notes

Button

Action

OK

Calls donerev → updates title block revision table in drawing

Cancel

Aborts

Help

Opens csv.hlp “Revision”

Supports up to 10 revisions. Auto-fills next empty row with current revision number and date. Leaf dialog — no sub-dialogs.


L — Slope Calculator

Menu: Slope Calculator
ID: ID_CSVSLOPE
progcont: 8193
Action: Loads csv.vlx → calls csv → routes through dialog chain

Opens calc_dlg — the shared construction calculator. See §20 (Shared Dialogs Reference) for full details.

Leaf dialog — no sub-dialogs beyond calc_dlg.


M — Registration Manager

Menu: Registration Manager
ID: ID_CSVPROG
Action: Loads csv.vlx → calls csvreg

Compiled-only functioncsvreg exists only inside CSV.VLX. No .lsp source file. Cannot be traced further.

The menu definition also references ID_CSVPROGT (TiltUp) and ID_CSVPROGP (PreCast) registration managers, but these are not present in the active menu.


N — Help

Menu: Help
ID: ID_CSVHELP
Action: (help "csv.hlp" "Table_of_Contents")

Opens CSV.Hlp (Windows Help file) to Table of Contents. Leaf action — no dialogs.


O — Web Page

Menu: ConstructiVision Web Page
ID: ID_CSVWEB
Action: _browser http://www.constructivision.com

Opens AutoCAD’s built-in browser to the ConstructiVision website. Leaf action — no dialogs. Website likely no longer active.


P — About ConstructiVision

Menu: About ConstructiVision
ID: ID_CSVABOUT
Action: (help "csv.hlp" "About_CSV")

Opens CSV.Hlp to the “About” topic. Leaf action — no dialogs.


Q — Tech Support

Menu: Tech Support
ID: ID_CSVSUPPORT
Action: Loads csv.vlx → calls csvtech

Compiled-only functioncsvtech exists only inside CSV.VLX. No .lsp source file. Cannot be traced further. Likely displays contact information or sends diagnostic data.


Shared Dialogs Reference

calc_dlg — Construction Calculator

DCL: calc_dlg.dcl → dialog "calc_dlg"
Source: calc_dlg.lsp (127 lines)
Available from: Nearly every dialog in the system via “Calc” button

Three input values (A, B, C), each with feet / inches / sixteenths sliders:

Input

Key

Sliders

Purpose

Value A

a

a1s (ft) / a2s (in) / a3s (16ths)

Primary dimension

Value B

b

b1s / b2s / b3s

Secondary dimension

Value C

c

c1s / c2s / c3s

Third dimension

Computed Results (live-updating as sliders move):

Output

Formula

Units

Inverse

1/A

Square

A²/12

Square Root

√(A/12)×12

Sum

A + B

ft-in-16ths

Difference

A − B

Area

A × B / 144

sq. ft.

Quotient

A / B

Hypotenuse

√(A² + B²)

ft-in-16ths

Side

√(A² − B²)

ft-in-16ths

Board Feet

A × B × C / 144

board feet

Volume

A × B × C / 46656

cu. yds.

Weight

Volume × 3.922

tons

Button

Action

Clear

Resets all inputs to 0

OK

Closes calculator, returns to calling dialog

Cancel

Aborts

Help

Opens csv.hlp “Calculator”

Leaf dialog — no sub-dialogs.

dwg — Drawing Options Dialog

DCL: dwg.dcl → dialog "dwg"
Title: “ConstructiVision – Drawing Options”

Button

Key

Action

Another Drawing

new

Opens file browser (getfiled) → returns filepath

This Drawing

old

Uses current drawing

Cancel

cancel

Aborts

Help

help

Opens csv.hlp

Message text (“msg1”, “msg2”) varies by calling context (dwgnew vs dwgold). Leaf dialog.

invar — Generic Input Prompt

DCL: invar.dcl → dialog "invar"
Title: “ConstructiVision Message”
Source: invar.lsp (11 lines)

Single edit_box + OK button. Used by inspanel (gap dimension) and layout (rotation angle). Leaf dialog.

warning — Confirmation Dialog

DCL: warning.dcl
Source: ⚠️ warning.lsp is MISSING (listed in csvlst but no file on disk)

Shows confirmation message with msg1, msg2a, msg2b, msg3. Returns ok="ok" or nil. Used for “overwrite existing?” confirmations. The DCL likely still works if loaded from VLX.


Missing and Stub Source Files

Missing Source Files (12 modules in csvlst with no .lsp on disk)

All missing modules relate to weld connections or standard openings — two feature areas that appear to have been removed or never completed.

Module

Referenced By

Impact If Triggered

wall_dlg.lsp

sdwg_dlg button “wl”; csvlst; CSV.MKP build project

Wall Line button would crash. Functionality merged into slab_dlg pages 2–4

wd_dlg.lsp

mp_dlg toggle mpwd (Standard Opening)

Checking the toggle crashes — undefined function

wc_dlg.lsp

mp_dlg toggle mpwc (Weld Connections panel)

Checking the toggle crashes — undefined function

weld.lsp

sdwg_dlg button “wc”; csvlst

Site weld button — but button is disabled in UI

weldconn.lsp

csvlst

Loaded at startup — load fails silently or errors

wc_edit.lsp

csvlst

Loaded at startup — no visible UI trigger

wcenable.lsp

csvlst

Loaded at startup — no visible UI trigger

wclist.lsp

csvlst

Loaded at startup — no visible UI trigger

wcpage.lsp

csvlst

Loaded at startup — no visible UI trigger

wdenable.lsp

csvlst

Loaded at startup — no visible UI trigger

wdpage.lsp

csvlst

Loaded at startup — no visible UI trigger

warning.lsp

csvlst; used for overwrite confirmations

May cause errors when overwrite prompt is needed

Stub Functions (2 modules — exist but show “not available” alert)

Module

Lines

Message

footing.lsp

4

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

column.lsp

4

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

Both are also disabled at the UI level via (mode_tile "fg" 1) and (mode_tile "cp" 1) in sdwg_dlg.lsp.

Disabled-at-Runtime UI Elements

Dialog

Button

Key

Mechanism

sdwg_dlg

Footings

fg

(mode_tile "fg" 1) — grayed out

sdwg_dlg

Column Pads

cp

(mode_tile "cp" 1) — grayed out

sdwg_dlg

Weld Connections

wc

(mode_tile "wc" 1) — grayed out

site_dlg

Render

rn

Not disabled in UI — shows alert at runtime

Compiled-Only Functions (No Source — Inside CSV.VLX)

Function

Menu Item

Purpose

csvreg

M: Registration Manager

Software licensing/registration

csvtech

Q: Tech Support

Technical support contact

Anomaly: progcont Variable

The progcont global variable is set by every menu item that calls csv (values 1, 8193, 262145, 262153, 262161, 262177, 262209, 262273, 262401, 262465, 262657, 263169, 264193) but is never read in any source file. Likely vestigial from an earlier version, or consumed inside the compiled VLX/ARX.


Source File Inventory

LISP Source Files (.lsp) — Organized by Role

Controllers (system flow & routing)

File

Lines

Purpose

csv.lsp

281

Main entry point — system init, module loading, routing

csvmenu.lsp

Menu initialization

panel.lsp

33

Panel creation workflow controller

dwgnew.lsp

31

New drawing handler — security check, template setup

dwgold.lsp

35

Edit drawing handler — validates panel_list/site_list

new.lsp

32

New project creation — creates directory structure

finpan.lsp

Finalize panel + prompt revision

btch.lsp

37

Batch script generation — writes btch.scr

scr.lsp

Script file builder helper

Hub Dialogs (routing dialogs with multiple action buttons)

File

Lines

DCL

Buttons

Purpose

md_dlg.lsp

217

md_dlg.dcl (182 lines)

18 action + 4

Panel Options hub

site_dlg.lsp

178

site_dlg.dcl (265 lines, 5 dialogs)

14 action + 4

Site Options hub

sdwg_dlg.lsp

58

sdwg_dlg.dcl

6 action + 1

Site Drawing Options

btch_dlg.lsp

165

btch_dlg.dcl

Selection + toggles + OK

Batch Utilities

grid_dlg.lsp

356

grid_dlg.dcl (987 lines, 4 dialogs)

Radio + sub-dialogs

Grid layout system

Data Input Dialogs (panel features — all leaf nodes)

File

Lines

DCL

Purpose

mp_dlg.lsp

150

mp_dlg.dcl (436 lines)

Panel properties — 20 feature toggles

ro_dlg.lsp

89

ro_dlg.dcl

Rough openings (up to 4)

sb_dlg.lsp

sb_dlg.dcl

Square blockouts (up to 4)

ss_dlg.lsp

ss_dlg.dcl

Spandrel seats (up to 2)

tp_dlg.lsp

tp_dlg.dcl

Top plates (up to 4) + rebar

pp_dlg.lsp

pp_dlg.dcl

Pick points (auto/manual)

rb_dlg.lsp

rb_dlg.dcl

Round blockouts (up to 4)

pl_dlg.lsp

pl_dlg.dcl

Pilasters (up to 2)

lb_dlg.lsp

lb_dlg.dcl

Ledger angles (up to 4) + rebar

bp_dlg.lsp

bp_dlg.dcl

Brace points (auto/manual, quadrants)

dr_dlg.lsp

dr_dlg.dcl

Man doors (up to 4)

fs_dlg.lsp

fs_dlg.dcl

Footing steps (up to 2)

ll_dlg.lsp

ll_dlg.dcl

Lintels (up to 4)

sd_dlg.lsp

sd_dlg.dcl

Slab dowels (up to 4)

fh_dlg.lsp

fh_dlg.dcl (67KB)

Feature strip horizontal

dl_dlg.lsp

dl_dlg.dcl

Dock levelers (up to 4)

ts_dlg.lsp

ts_dlg.dcl

Top steps (up to 2)

ch_dlg.lsp

ch_dlg.dcl

Chamfers (up to 4)

fv_dlg.lsp

fv_dlg.dcl (51KB)

Feature strip vertical

num_dlg.lsp

22

(in grid_dlg.dcl)

Numbered grids (50 rows)

let_dlg.lsp

28

(in grid_dlg.dcl)

Lettered grids (50 rows)

slab_dlg.lsp

163

slab_dlg.dcl (897 lines, 4 dialogs)

Slab/wall line (4 pages, 64 segments)

Shared/Utility Dialogs

File

Lines

DCL

Purpose

calc_dlg.lsp

127

calc_dlg.dcl

Construction calculator

invar.lsp

11

invar.dcl

Generic single-value input

revision.lsp

24

revision.dcl

10-row revision history

matl_dlg.lsp

336

matl_dlg.dcl

Materials list progress display

Drawing Generation (no user dialogs — geometry output)

File

Size

Purpose

drawpan.lsp

342 lines

Panel outline geometry

drawdim.lsp

89 KB

Dimensioning engine (largest file)

mkblk.lsp

38 KB

Title block generation

feature.lsp

44 KB

Feature strip geometry

green.lsp

35 KB

Ledgers/top plate geometry

opening.lsp

Opening geometry

chamfer.lsp

Chamfer geometry

brace.lsp

Brace geometry

pick.lsp

Pick point geometry

points.lsp

Points drawing

dowels.lsp

Dowel geometry

miter.lsp

Miter joint geometry

Inspanel.lsp

165

Insert panels into site as xrefs

layout.lsp

166

Site panel layout/rotation

tiltup.lsp

~20

Tilt-up panel operations

Helper/Utility Functions

File

Lines

Purpose

panatt.lsp

Panel attribute initialization

updvar.lsp

Store panel variables to xrecord

newlist.lsp

Update variable lists

enable.lsp

Dialog control enabling

pdisable.lsp

Panel disable logic

fenable.lsp

Feature enable logic

sbenable.lsp

Square blockout enable

fpage.lsp

119

Feature page helper

slide.lsp

Slider value handler

convert.lsp

Unit/version conversion

chrchk.lsp

Character validation

rangchck.lsp

Range validation

rndblock.lsp

Round block coordinates

strlsort.lsp

String list sorting

centgrav.lsp

Center of gravity calculation

bpauto.lsp

Auto brace point calculation

ppauto.lsp

Auto pick point calculation

ppcent.lsp

Pick point centering

thick.lsp

Thickness calculations

renpan.lsp

Rename panel

donerev.lsp

Finalize revision

savelay.lsp

11

Save layout positions to conslist.txt

dbchk.lsp

Database check

dirchk.lsp

Directory validation

err.lsp

Error handler

plt.lsp

22

Plot/print manager

Stubs

File

Lines

Purpose

footing.lsp

4

Footings — alert only

column.lsp

4

Column pads — alert only


Test Matrix

Testing Strategy

Every clickable path must be tested from the menu through to its leaf action. Each test records: precondition (drawing state), dialog depth reached, expected outcome, and whether the path completes successfully.

Deep Dialog Tests (internal paths)

ID

Full Path

Depth

Expected

T-A1

csv → Project Dialog → New Project

2

New project dialog opens

T-A1a

csv → Project → New → OK

3

Directory created

T-A2-1

csv → md_dlg → Create New → dwg → panel → mp_dlg

4

Panel Properties dialog

T-A2-1-RO

… → mp_dlg → Rough Opening → ro_dlg

5

4 opening fields

T-A2-1-SB

… → mp_dlg → Square Blockout → sb_dlg

5

4 blockout fields

T-A2-1-SS

… → mp_dlg → Spandrel Seat → ss_dlg

5

2 seat fields

T-A2-1-TP

… → mp_dlg → Top Plate → tp_dlg

5

4 plates + rebar

T-A2-1-PP

… → mp_dlg → Pick Points → pp_dlg

5

Auto/manual layout

T-A2-1-WD

… → mp_dlg → Standard Opening → wd_dlg

5

⚠️ CRASH

T-A2-1-RB

… → mp_dlg → Round Blockout → rb_dlg

5

4 blockout fields

T-A2-1-PL

… → mp_dlg → Pilaster → pl_dlg

5

2 pilaster fields

T-A2-1-LB

… → mp_dlg → Ledger → lb_dlg

5

4 ledgers + rebar

T-A2-1-BP

… → mp_dlg → Brace Points → bp_dlg

5

Auto/manual, quadrants

T-A2-1-DR

… → mp_dlg → Man Door → dr_dlg

5

4 door fields

T-A2-1-FS

… → mp_dlg → Footing Step → fs_dlg

5

2 steps

T-A2-1-LL

… → mp_dlg → Lintel → ll_dlg

5

4 lintel fields

T-A2-1-SD

… → mp_dlg → Slab Dowels → sd_dlg

5

4 dowel runs

T-A2-1-FH

… → mp_dlg → Feature Strip(H) → fh_dlg

5

Horiz features

T-A2-1-DL

… → mp_dlg → Dock Leveler → dl_dlg

5

4 levelers

T-A2-1-TS

… → mp_dlg → Top Step → ts_dlg

5

2 steps

T-A2-1-CH

… → mp_dlg → Chamfer → ch_dlg

5

4 chamfers

T-A2-1-WC

… → mp_dlg → Weld Connections → wc_dlg

5

⚠️ CRASH

T-A2-1-FV

… → mp_dlg → Feature Strip(V) → fv_dlg

5

Vert features

T-A2-17

csv → md_dlg → Site Options → site_dlg

3

Site Options dialog

T-A2-18

csv → md_dlg → Batch Utilities → btch_dlg → btch

4

Batch processing

T-A3-1

csv → site_dlg → Create New Site → sdwg_dlg

3

Site Drawing Options

T-A3-3

csv → site_dlg → Attach Panels → invar → inspanel

4

Panels inserted

T-A3-6

csv → site_dlg → Layout → invar → layout → savelay

4

Layout saved

T-A3-13

csv → site_dlg → 3D Viewpoint → viewpt

4

9-button dialog

T-A3-14

csv → site_dlg → Render

3

“Not available” alert

T-A3x1

csv → sdwg_dlg → Grid Lines → grid_dlg

4

Grid config dialog

T-A3x1a

… → grid_dlg → Number Grids → num_dlg

5

50 grid rows

T-A3x1b

… → num_dlg → Insert Grid → insgrid_dlg

6

Insert grid dialog

T-A3x1c

… → grid_dlg → Letter Grids → let_dlg

5

50 grid rows

T-A3x1d

… → let_dlg → Insert Grid → insgrid_dlg

6

Insert grid dialog

T-A3x2

csv → sdwg_dlg → Wall Line → wall_dlg

4

⚠️ CRASH

T-A3x3

csv → sdwg_dlg → Slab → slab_dlg

4

16 slab rows

T-A3x3a

… → slab_dlg → Page 2

5

Rows 17–32

T-A3x3b

… → slab_dlg → Page 3

5

Rows 33–48

T-A3x3c

… → slab_dlg → Page 4

5

Rows 49–64

T-A3x4

csv → sdwg_dlg → Footings

4

“Not available” (disabled)

T-A3x5

csv → sdwg_dlg → Column Pads

4

“Not available” (disabled)

T-A3x6

csv → sdwg_dlg → Weld Connections

4

Disabled (weld.lsp missing)

Known Crash Paths (3 paths)

Path

Root Cause

Severity

mp_dlg → Standard Opening toggle → wd_dlg

wd_dlg.lsp missing

Critical

mp_dlg → Weld Connections toggle → wc_dlg

wc_dlg.lsp missing

Critical

sdwg_dlg → Wall Line → wall_dlg

wall_dlg.lsp missing

Critical

Maximum Depth Paths

Depth

Path

6

Menu → csv → site_dlg → sdwg_dlg → grid_dlg → num_dlg → insgrid_dlg

6

Menu → csv → site_dlg → sdwg_dlg → grid_dlg → let_dlg → insgrid_dlg

5

Menu → csv → md_dlg → panel → mp_dlg → [any of 18 sub-dialogs]

5

Menu → csv → site_dlg → sdwg_dlg → grid_dlg → num_dlg/let_dlg

5

Menu → csv → site_dlg → sdwg_dlg → slab_dlg → page2/3/4

4

Menu → csv → md_dlg → btch_dlg → btch

4

Menu → csv → site_dlg → invar → inspanel

4

Menu → csv → site_dlg → viewpt