TCSL Viewer v3.3.5 · Guide v5.3 · Complete Documentation

Code → 3D → PDF
in a single browser window

Parametric 3D modeling of furniture and metal structures. TCSL v1.5 + Python/FreeCAD, interactive 3D visualizer, cost calculator and quote generator — no server, entirely in the browser. Integrated LLM guide v5.3

11
parts
7
tabs
14
templates
31
materials
5
prompts
0
servers
TCSL v1.5 — typed geometry with units of measurement Python/FreeCAD — one-click transpilation LLM Guide v5.3 — Claude, ChatGPT, Gemini, DeepSeek CSG via three-bvh-csg — cut/fuse/intersect Calculator with markups — USD · RUB · EUR Quote with VAT, discount, details → PDF TCSL v1.5 — typed geometry with units of measurement Python/FreeCAD — one-click transpilation LLM Guide v5.3 — Claude, ChatGPT, Gemini, DeepSeek CSG via three-bvh-csg — cut/fuse/intersect Calculator with markups — USD · RUB · EUR Quote with VAT, discount, details → PDF
Part I

General Provisions

Purpose, principles, request types, product types, and LLM workflow algorithm

1.1 Purpose

This guide is intended for external LLMs (Claude, ChatGPT, Gemini, GigaChat, YandexGPT, DeepSeek, Ollama and others) tasked with generating TCSL code from user requests.

TCSL is

A declarative language for describing physical objects. A number without a unit of measurement is a syntax error. The code simultaneously serves as three things:

Executable program
Parser → AST → 3D geometry in <50 ms
Parametric documentation
Every dimension is named and adjustable via sliders
Live product description
Material names in export → auto-cost calculation
TCSL Viewer is

Five integrated tools, zero server processing:

Interface — 7 tabs
TCSL Code Python Inspector Specification Cost Export Materials
Data flow
TCSL Code Parser 3D Model Cost $ PDF Quote
Editor — write & run TCSL
3D View — interactive model
Calculator — cost in 3 currencies
Quotes — PDF with 3D render
Transpiler — TCSL → Python/FreeCAD in one click
Open TCSL Viewer — tcsl-lang.org/tcsl_viewer/

1.2 Reference Syntactic Purity Principle

Every TCSL code fragment in this document is executable. LLMs learn from few-shot examples and mechanically replicate the format. If an example contains an error, the error will be reproduced in every generated code.

1.3 Input Request Types

A

Complete Package

Photos, drawings, assembly instructions (PDF), parts list. All dimensions are known.

B

Photo + Dimensions

Photos and overall dimensions (73×42×93 cm). Detail dimensions derived from photo proportions.

C

Description Only

Text description: “dresser with three drawers, 80 cm.” LLM assigns standard dimensions.

D

Name Only

“IKEA MALM 4 drawers.” LLM searches the web for dimensions, photos, and instructions.

E

Code from Viewer

Existing code + diagnostics for fixing. Share URL, LLM Fix, Copy Log.

1.4 Product Types

M

Case Furniture

Wardrobes, dressers, cabinets, shelving units, kitchen modules

Materials: laminated chipboard 16 mm, HDF 3–4 mm. Operations: box + translate, fasteners via box. Patterns: sections 5.1–5.3

K

Metal Structures

Table frames, tube shelving, railings, staircases

Materials: profile tube. Operations: box + cut (hollow profile). Patterns: section 5.6

S

Mixed

Table with metal frame and wooden tabletop

Order: frame first (K), then panels (M), then hardware

1.5 LLM Workflow Algorithm

Step 1 — Classify request (A/B/C/D/E)

Type E: incoming code from Viewer → step 6i

Step 2 — Gather missing data

D: web search · C: standard dimensions · B: proportions from photos · A: from documentation

Step 3 — Structural analysis

Product type (M/K/S) · Support scheme · Decomposition · Z-levels · Connection table

Step 4 — Mandatory consistency check

Arithmetic check: sum of sections + shelves ≈ side panel height (±12 mm)

Step 5 — Fill in product card

Formalized template: composition, height marks, connections, mapping

Step 6 — Generate TCSL code (step by step)
6a input + let 6b carcass 6c internal elements 6d facades 6e drawers 6f hardware 6g mapping 6h export 6i Viewer iteration
Step 7 — Self-check (checklist, Part VIII)

Includes Viewer channel compatibility check

Part II

Data Collection & Research

Web search, photo analysis, assembly instructions, drawings — and forming height marks

2.1 Web Search (Type D)

Search by name → dimensions W×D×H, material, number of drawers/shelves
Search for assembly instructions PDF → parts list with exact dimensions
Search for photos → front view, side view, view with open drawers
Search for analogs → if the exact product is not found

2.2 Photo Analysis

Structure: number of sections, opening type, decorative elements
Proportions: from one dimension → derive internal measurements
Details: edge thickness, gaps, top placement, plinth/legs
Open drawers: most informative — slides and fasteners are visible

2.3 Assembly Instructions

Parts list: number, name, quantity, length×width mm. Each row → one box()
Hardware: confirmat screws, dowels, self-tappers, drawer slides, cam locks
Assembly diagrams: step-by-step illustrations, order, joints, fastener direction

2.4 Dimensioned Drawings

Overall: total W×D×H (including overhangs, facade thickness)
Internal: height of each section between shelves (side arrows)
Clear opening: width/depth excluding side panel thickness

2.5 Height Marks

Height marks block — included as comments in code
# === HEIGHT MARKS (Z, mm) — calculated TOP DOWN ===
# Z = 916     top of lid (lid on side panels: 900 + 16)
# Z = 900     top of side panels = bottom of lid (REFERENCE POINT)
# Z = 737..900  niche (163 mm free space)
# Z = 721..737  shelf-niche bottom (16 mm chipboard)
# Z = 528..721  upper middle section (193 mm)
# Z = 512..528  shelf (16 mm chipboard)
# Z = 319..512  lower middle section (193 mm)
# Z = 303..319  shelf (16 mm chipboard)
# Z = 4..303    bottom section (299 mm)
# Z = 0..16     bottom panel (16 mm chipboard, supports entire structure)
#
# Check: 16 + 299 + 16 + 193 + 16 + 193 + 16 + 163 = 912
# Side panels: 900 mm. Difference 912 - 900 = 12 mm → gaps. OK.

2.6 Mandatory Consistency Check

Mandatory step 4 of the algorithm, not a recommendation. If the check fails — code generation does not begin.

δ = 0
Perfect
0 < δ ≤ 12
Acceptable — for gaps
δ > 12
ERROR — recalculate
δ < 0
ERROR — insufficient space
Part III

TCSL v1.5 Language — Complete Reference

Units, program structure, constructors, pipeline, transforms, boolean operations, arrays, selectors, tags

3.1 Units of Measurement

Lengths
mm cm m in ft
Angles
deg rad
Important

Without a unit — parser error. 800800 mm

3.2 Program Structure — 4 Zones

01

INPUT

Parameters

Literals: number with unit, boolean, string, unitless integer for counters

input width = 732 mm
input count = 4
02

LET

Computations

Formulas and references to parameters. This zone is optional.

let inner_w = width - 2 * board
03

GEOMETRY

Construction

Constructors + pipeline. Bare arithmetic is forbidden.

p = box(100mm,50mm,16mm)
  |> translate(10mm,0mm,0mm)
04

EXPORT

Naming

Minimum 1 line. as for calculator.

export p as Side_LDSP16mm_1

3.3 Primitive Constructors

box / plate
box(width=W, depth=D, height=H)

Origin at (0,0,0)

cylinder
cylinder(radius=R, height=H)

Z-axis, center at (0,0,0)

sphere
sphere(radius=R)

Center at (0,0,0)

plate
plate(width=W, depth=D, height=H)

Alias for box (panels)

3.4 Pipeline Operator |>

✓ CORRECT — single line
panel = box(width=100 mm, depth=50 mm, height=16 mm) |> translate(x=10 mm, y=0 mm, z=0 mm)
✗ ERROR — line break
panel = box(width=100 mm, depth=50 mm, height=16 mm)
    |> translate(x=10 mm, y=0 mm, z=0 mm)

3.5 Spatial Transforms

translate
translate(x=X, y=Y, z=Z)

All three arguments are required

rotate
rotate(angle=A, ax, ay, az, cx, cy, cz)

Around point (cx, cy, cz)

scale
scale(sx=SX, sy=SY, sz=SZ)

Dimensionless coefficients

rotate: first create at (0,0,0) → rotate → move. For fasteners — use box instead of cylinder+rotate.

3.6 Boolean Operations

union(other=name)

Union

cut(other=name)

Subtraction (subtract — alias)

intersect(other=name)

Intersection

Viewer: CSG via three-bvh-csg (async loading). Fallback — grouping without subtraction.

3.7 Arrays

linear_pattern(count=N, dx=DX, dy=DY, dz=DZ)
circular_pattern(count=N, angle=A, cx, cy, cz, ax, ay, az)

3.8 Shape Modifications

body |> select_edges_by_axis(axis=z) |> fillet(radius=3 mm)
body |> select_faces_by_axis(axis=z, keep=max) |> shell(thickness=2 mm)

Fillets and chamfers — after all booleans

Part IV

Critical Rules for Generation

7 absolute prohibitions, naming rules, input parameters, hardware positioning, Z-levels

4.1 Seven Absolute Prohibitions

PROHIBITION 1

Numbers without units in length/angle context

width = 800 ✗width = 800 mm ✓
PROHIBITION 2

Bare arithmetic in GEOMETRY zone

inner_w = w – 2*board ✗ (E002)
PROHIBITION 3

Line break before |>

Entire pipeline — single line
PROHIBITION 4

$ in variable names

$width ✗ $ only in tags: box$myTag
PROHIBITION 5

Violating zone order

INPUT → LET → GEOMETRY → EXPORT
PROHIBITION 6

Missing export

At least one export is mandatory
PROHIBITION 7

Python / import / exec / eval / os / sys

TCSL is not Python

4.2 Naming Rules

Recommended Prefixes
corpus_*carcass facade_*facades drw_*drawers niche_*niches guide_*drawer slides conf_*confirmat screws dowel_*dowels back_*back panels tube_*profile tube frame_*frame
Forbidden Names
a b c s1 tmp res shape result body1
For Viewer Animation
door drawer дверь ящик shutter flap lid фасад

4.3 Input Parameters & Viewer Sliders

Viewer creates a slider for each input (10%–300%, step 1, debounce 100 ms). Precomputed input values are NOT recalculated. Use let for derived values.

✓ Recommended strategy
# Base values — input (sliders):
input total_width = 732 mm   # slider
input board = 16 mm          # slider

# Derived values — let (auto-recalc):
let inner_width = total_width - 2 * board
✗ Problem with slider
input total_width = 732 mm
input inner_width = 700 mm # Stays 700!
# When total_width=900 → inner_width
# still 700, not 868. PROBLEM.

4.4 Hardware Positioning

Confirmat Screws (X)

Through side panel into shelf edge. Left: x = 0 mm. Right: x = total_w - conf_len

Dowels (Z)

Top/side joint: z = side_h - dowel_len/2. Half in side panel, half in top.

Drawer Slides

Against inner face. Left: x = board. Right: x = total_w - board - guide_w

Never cylinder + rotate for fasteners. Use box only.

4.5 Z-Level Calculation

Top down (recommended)
Top of side panels = reference point → down by sections
Bottom up (convergence check)
Bottom → sections → shelves → verify against side_height

4.7 Calculator Naming Convention

[Element]_[Material][Thickness]_[Number]
Side_LDSP16mm_1
Post_Tube40x40x2_3
Hardware_12
BackPanel_HDF4mm_2

Without material keyword — warning W001

Part V

Patterns for Standard Constructions

5.1.1 Support Scheme

V1
Side Panels on Floor

Standard for wardrobes and dressers. Side panels: Z = 0..side_height

V2
Legs

Nightstands and tables. Legs: Z = 0..leg_h. Carcass: Z = leg_h..

V3
Plinth Platform

Rare. Frame or solid panel: Z = 0..plinth_h

ANTI-PATTERN: “carcass stands on bottom panel.” The bottom is a horizontal panel BETWEEN side panels, not a support.

5.1.2 Carcass Structure

Carcass: side panels (2), top, bottom, shelves, back panels
Facades: drawer fronts (push-to-open / handles), doors
Drawers: sides (2 per drawer), back wall, bottom (HDF)
Niches: niche side panels, niche back wall
Hardware: drawer slides, confirmat screws, dowels
Panel Orientation
Xwidth (left → right)
Ydepth (front → back)
Zheight (bottom → top)
Key Rules
Side panels: box(width=board, depth=total_d, height=side_h)
Overlay top: box(width=total_w, ...) at Z=side_h
Shelves: box(width=shelf_w, ...) offset x=board
Back panels: y=total_d-thin_board

5.6 Profile Tubes (Type K)

Pattern: profile tube 40×40×2 mm (vertical post)
input tube_w = 40 mm          # profile width
input tube_d = 40 mm          # profile depth
input tube_t = 2 mm           # wall thickness
input tube_len = 750 mm       # length

let tube_inner_w = tube_w - 2 * tube_t
let tube_inner_d = tube_d - 2 * tube_t

tube_outer = box(width = tube_w, depth = tube_d, height = tube_len)
tube_inner = box(width = tube_inner_w, depth = tube_inner_d, height = tube_len + 2 mm) |> translate(x = tube_t, y = tube_t, z = -1 mm)
tube_post = tube_outer |> cut(other = tube_inner)

export tube_post as Post_Tube40x40x2_1

5.7 Connection Table

Prepared before hardware generation (step 6f). Included in the code as a comment.

Part APart BFastenerQtyAxisY Offsets
corpus_left_sidecorpus_bottomConfirmat 7×502X50, D-50
corpus_left_sidecorpus_topDowel D8×302Z50, D-50
corpus_right_sidecorpus_bottomConfirmat 7×502X50, D-50
corpus_right_sidecorpus_shelf_1Confirmat 7×502X50, D-50

5.8 Product Card

Card template — filled in before generation
# ═══════════════════════════════════════════════════════
# PRODUCT CARD FOR TCSL
# ═══════════════════════════════════════════════════════
# Name:            [local] / [eng]
# Request type:    [A / B / C / D / E]
# Product type:    [M — furniture / K — frame / S — mixed]
# Dimensions:      W × D × H mm
# Carcass material: [Chipboard 16 / MDF 18 / ...]
# Support scheme:  [side panels / legs / plinth]
# Target env:      TCSL Viewer v3.3.5 / FreeCAD / both
# Animatable:      [facade_drawer_*, door_left, ...]
# Decomposition:   [single file / N files]
# ═══════════════════════════════════════════════════════
Part VI

Iterations & Decomposition

6.1 Common Parser Errors

PARSE_ERR
Failed to parse line: |> translate(…)
Cause: pipeline |> moved to a new line. Solution: entire pipeline on one line.
TCSL_E002
Expected function call: expr
Cause: bare arithmetic in GEOMETRY. Solution: let or arithmetic inside function arguments.
TCSL_E001
Expected unit of measurement
Cause: number without unit. Solution: add mm or deg.

6.4 Iteration Process

1
Generation
Base code → Validation → Parser fix
2
Visual
Execute → Screenshot → Position adjustments
3
Detailing
Drawers, hardware → Recheck
4
Final
Gaps, exact dimensions, mapping

6.5 Decomposition

PartsTCSL LinesRecommendation
1–1010–30Single file
10–3030–80Single file, pay attention to Z-levels
30–5080–1502–3 files by subsystems
50+150+Mandatory decomposition into 4–6 files
Part VII

5 Prompts for External LLMs

Ready-made system prompts for different scenarios: universal, furniture, no documentation, fix/repair, metal structures

7.1
Universal

15 TCSL rules + LLM Fix handling + response format. Suitable for any request type.

TCSL v1.5 Viewer Calculator
7.2
Furniture + Documentation

Complete package: instructions, drawings, photos. Extract all dimensions, step-by-step generation.

Type A Type M
7.3
No Documentation

Photos only or name only. Web search, standard dimensions, furniture standards.

Type B/C/D Search
7.4
Fix / Viewer Repair

Handle screenshots, LLM Fix, Copy Log. Fix all errors in one iteration.

Type E LLM Fix
7.5
Metal Structures

Profile tube frames per GOST standards. box + cut for hollow profiles.

Type K GOST
7.1 Universal System Prompt (expand)
You are an expert in generating TCSL v1.5 code
for building 3D models in TCSL Viewer v3.3.5
and FreeCAD via the TextToCAD module.

CRITICAL TCSL RULES:

1. UNITS ARE MANDATORY: 800 mm, not 800.
2. STRUCTURE: INPUT → LET → GEOMETRY → EXPORT.
   2a. ## headings do NOT control the parser.
   2b. Short form is allowed for literals.
3. PIPELINE |> — SINGLE LINE ONLY.
   3a. Re-assigning the same name is forbidden.
4. DERIVED VALUES: let name = expression.
5. CONSTRUCTORS: named arguments with units.
6. OPERATIONS: translate, rotate, union, cut, fillet...
7. FASTENERS: box only, NOT cylinder+rotate.
8. EACH PART — separate export ... as.
9. Z-LEVELS top-down, HEIGHT MARKS block.
10. NAMES descriptive + keywords for animation.
11. PRODUCT CARD before generation.
12. CONNECTION TABLE before hardware.
13. >30 parts → DECOMPOSITION.
14. input for sliders, let for auto-recalc.
15. export as with material keywords.

Response format: card + TCSL code + notes.
Part VIII

Pre-Delivery Checklist

8.1 Card & Analysis

Product card fully completed
Request type (A/B/C/D/E)
Product type (M/K/S)
Support scheme
Height marks with check (δ ≤ 12)
Connection table
Calculator mapping

8.2 Syntax

All numbers with units mm/deg
Order: input → let → geometry → export
At least one export
No bare arithmetic in GEOMETRY
All |> on a single line
No Python code

8.3 Geometry

Z-levels verified arithmetically
Top ON side panels (Z = side_h)
Niche ends AT Z = side_h
Shelves between side panels (x = board)
Back panels at rear edge
Facades centered

8.4 Hardware

Fasteners via box, not cylinder
Confirmat positions are correct
Everything within carcass outline
Every joint ↔ fastener in code

8.5 Export

Each part — separate export
All export as with keyword
Names: Element_Material_Number
Animatable with door/drawer/…

8.7 Viewer Compatibility

Base values in input (for sliders)
Derived values in let (auto-recalc)
Cut tools not exported
Single-line pipeline
Part IX

Reference Standard Dimensions

9.1 Materials

MaterialThickness
Laminated chipboard16 mm
Heavy-duty chipboard18 mm
HDF/Hardboard3–4 mm
MDF16–19 mm
Plywood10–18 mm

9.2 Hardware

ElementSize
Confirmat screw7×50 mm
Dowel8×30 mm
Cam lockØ15×12
Drawer slide L250–550
Self-tapper3.5–4×16

9.3 Gaps

GapSize
Between facades2–3 mm
For drawer slide12.5–13
Back panel0–2 mm
Shelf from back0–20 mm
Facade forward1–3 mm
Part X

Complete Generation Examples

10.1 Minimal Example — Shelf

TCSL · 4 lines · 1 part
input shelf_w = 600 mm       # shelf width
input shelf_d = 250 mm       # depth
input shelf_h = 16 mm        # chipboard thickness

shelf_board = box(width = shelf_w, depth = shelf_d, height = shelf_h)

export shelf_board as Shelf_LDSP16mm_1

10.2 Medium Example — Nightstand with Drawer

8 parts · ~16 TCSL lines (expand) Type C Type M
# Nightstand with drawer · 500×400×400 mm · Chipboard 16 mm

input total_w = 500 mm       # nightstand width
input total_d = 400 mm       # depth
input side_h = 384 mm        # side panel height
input board = 16 mm          # chipboard
input thin = 4 mm            # HDF
input facade_h = 180 mm      # drawer facade height
input guide_w = 13 mm        # slide width
input guide_h = 45 mm        # slide height
input guide_len = 350 mm     # slide length L350

let shelf_w = total_w - 2 * board
let back_h = side_h - 2 * board + thin

corpus_left = box(width = board, depth = total_d, height = side_h)
corpus_right = box(width = board, depth = total_d, height = side_h) |> translate(x = total_w - board, y = 0 mm, z = 0 mm)
corpus_top = box(width = total_w, depth = total_d, height = board) |> translate(x = 0 mm, y = 0 mm, z = side_h)
corpus_bottom = box(width = shelf_w, depth = total_d - 20 mm, height = board) |> translate(x = board, y = 0 mm, z = 0 mm)
corpus_back = box(width = shelf_w, depth = thin, height = back_h) |> translate(x = board, y = total_d - thin, z = 3 mm)
facade_drawer = box(width = total_w - 6 mm, depth = board, height = facade_h) |> translate(x = 3 mm, y = -2 mm, z = board)
guide_left = box(width = guide_w, depth = guide_len, height = guide_h) |> translate(x = board, y = 15 mm, z = board + 30 mm)
guide_right = box(width = guide_w, depth = guide_len, height = guide_h) |> translate(x = total_w - board - guide_w, y = 15 mm, z = board + 30 mm)

export corpus_left as Side_LDSP16mm_1
export corpus_right as Side_LDSP16mm_2
export corpus_top as Top_LDSP16mm_1
export corpus_bottom as Bottom_LDSP16mm_1
export corpus_back as BackPanel_HDF4mm_1
export facade_drawer as Facade_LDSP16mm_1
export guide_left as Hardware_1
export guide_right as Hardware_2
Part XI

TCSL Viewer v3.3.5 Integration

8 code input channels, Share URL, templates, transpilation, sliders, Inspector, LLM Fix, calculator, quotes, diagnostics

11.1 Viewer Code Input Channels

#ChannelDirectionFormatFor LLM
1TCSL EditorTCSL TextPrimary
2Python EditorPython/FreeCADSecondary
3Load .tcsl/.txtFile from diskLong codes
4Templates14 templatesStarting point
5Share URLLZString in URLCollaboration
6From TCSLTCSL→PyTranspilationFor FreeCAD
7Element InspectorGUI→CodeProperty changesElement editing
8Parametric SlidersGUI→CodeInput updateInteractive tuning
EN/RU Theme Share F
Tour Quote
TCSL Code Python Inspector Specification Cost Export Materials
Wireframe Explode Measure Open Doors Detect Artifacts
3D Viewport
LMB — rotate · Scroll — zoom · RMB — pan
≈ $135.00
Ready |Parse: 12ms |Tokens: 48 |AST: 12 nodes

11.6 LLM Fix — Key Iteration Mechanism

The “LLM Fix” button (Inspector → Diagnostics) generates a text report for LLM consumption. Contains metadata, all errors with line numbers, full code with numbering, and instructions.

Input: LLM Fix report
=== ERRORS ===
[3:15] TCSL_R001: Incompatible dimensions
[7:1]  TCSL_E005: let after GEOMETRY

=== SOURCE CODE ===
   1 | input width = 732 mm
   2 | input angle = 45 deg
   3 | let bad = width + angle
   5 | shelf = box(width=width, ...)
   7 | let inner = width - 2 * 16 mm
   9 | export shelf
Output: corrected code
input width = 732 mm
input angle = 45 deg
input board = 16 mm

let inner = width - 2 * board

shelf = box(width=inner, depth=400 mm, height=board)

export shelf as Shelf_LDSP16mm_1

11.8 Calculator + Price List

3 currencies (USD, RUB, EUR), 2 markup sliders (×1–×3), item table, totals.

Load Price List — JSON
{
  "ldsp_16mm_m2": 850,
  "dvp_4mm_m2": 220,
  "furnitura_pcs": 45,
  "truba_40x40x2_mp": 180
}

11.9 Commercial Quote

Green “Quote” button → form → PDF (2 pages).

Page 1: header, table, discount, VAT, TOTAL
Page 2: full-page 3D render + legend
VAT: simplified or standard 20%
Validity: 7/14/30/60 days

11.10 Common LLM Errors

E001
Missing unit
Add mm
E002
Arithmetic in GEOM
Move to let
E005
let after geometry
Move let up
E013
Forward reference
Reorder
R001
Incompatible types
Length + Angle
W001
No material in as
Add LDSP/MDF/…

11.11 Demo Tour

Full tour~40 steps
TCSL Editor
Python/FreeCAD
Cost & Quotes
Export
Welcome Gate — automatic greeting on first visit
Hotspots — pulsing hints after tour completion
Enter navigation Esc exit

LLM ↔ Viewer Interaction Scenarios

① Initial Generation

LLM → code → Viewer (paste/Load) → Run → check → LLM Fix → correction

② Error Iteration

LLM Fix → copy to LLM → parse errors → all fixes in 1 iteration → full code

③ Modification

Template → sliders → copy code → description → LLM modifies → full code

④ Python for FreeCAD

TCSL → Run → From TCSL → Save .py → FreeCAD

⑤ Commercial Quote

TCSL with export as → Cost → markups → Quote → details → PDF

Appendices A–D

References & Tables

A. Tube Profiles per GOST

A.1 Square

ProfileWallMass
20×201.50.88
25×2521.39
30×3021.70
40×4022.33
40×4033.36
50×5022.96
60×6035.25
80×8037.13

A.2 Rectangular

ProfileWallMass
40×2021.70
50×2522.17
60×3022.65
60×4034.31
80×4035.25
80×6036.19
100×5036.66

A.3 Round

ProfileWallMass
D2521.13
D3221.48
D4021.87
D4232.89
D4833.33
D5733.99
D7635.40

B. Transliteration for Calculator

EnglishCode NameExampleEnglishCode NameExample
Side panelSideSide_LDSP16mm_1TopTopTop_LDSP16mm_1
BottomBottomBottom_LDSP16mm_1ShelfShelfShelf_MDF19mm_1
FacadeFacadeFacade_LDSP16mm_1Back panelBackPanelBackPanel_HDF4mm_1
PostPostPost_Tube40x40_1BeamBeamBeam_Tube60x40_1
TabletopTabletopTabletop_LDSP18_1HardwareHardwareHardware_12

D. All Viewer I/O Channels (19)

ChannelFormatFor LLM
TCSL EditorTCSL TextPrimary
Python EditorPython/FreeCADSecondary
Load .tcsl/.txtFileLong codes
Save .tcsl/.pyFileSave
Templates14 templatesStart
Share URLLZString URLCollaboration
From TCSLTranspilationFreeCAD
Element InspectorGUI→PropertiesEditing
SlidersGUI→InputTuning
LLM FixReportKEY
Copy LogPython reportDebugging
Copy ErrorsError listDiagnostics
ScreenshotPNGVerification
Export STL/glTF3D fileManufacturing
Export PDF2 pagesDocument
Export Excel.xlsxEstimate
Export ASTJSONAnalysis
Load Price ListJSONPricing
Quote PDFPDFSales
Keyboard

Keyboard Shortcuts

Ctrl+EnterRun
Ctrl+Shift+PPython tab
Ctrl+Shift+TTCSL tab
Ctrl+SSave .tcsl
Ctrl+SpaceAutocomplete
FFullscreen
Workflow

From Code to PDF in 7 Steps

1

Choose a template or write TCSL code

14 templates from a simple shelf to a computer desk

2

Run — model in 3D

Ctrl+Enter — full cycle in <50 ms

3

Adjust dimensions with sliders

Specification → sliders → model rebuilds in real time

4

Configure pricing

Cost → currency, markups, price list

5

Quote → PDF

Details → Generate → 2-page PDF with 3D

6

Share the link

Share → URL → colleague opens → same model

7

Export to FreeCAD

Python → From TCSL → Save .py → FreeCAD

Library

31 Materials · 5 Categories

Wood
11 mat.
Metal
9 mat.
Glass
6 mat.
Plastic
5 mat.
Stone
5 mat.

Code. 3D. Cost. PDF.
All in one browser window

TCSL Viewer v3.3.5 + LLM Guide v5.3 — parametric modeling, calculator, commercial quotes.

Viewer Interface — 7 Tabs
TCSL Code Python Inspector Specification Cost Export Materials
Processing Pipeline
TCSL Code
input · let · geometry · export
Parser + AST
validation · tokens · tree
3D Model
Three.js · CSG · 31 materials
Calculator
USD · RUB · EUR · markups
PDF Quote
2 pages · 3D render · VAT
Save .tcsl / .py
Source files
STL / glTF
3D export
Excel estimate
.xlsx parts list
Share URL
LZString in link
11
parts
7
tabs
31
materials
14
templates
9
exports
3
currencies
19
channels
0
servers