Metamation Developer Notes

  • Developer Notes
  • Resource Map
  • Tools
    • Code Formatting
    • Configuring Git
    • Assignments
    • Testing with Windows Sandbox
    • Single Binary Applications
    • Self-Updating Applications
  • Flux Workflow
    • Flux Workflow
    • Flux Development Style Guide
    • Release notes for Flux
    • SonarCloud analysis for Flux
    • Build a Flux SDK Program
    • Shipping Flux
    • Flux.Test
      • BasicBendAuto Test
      • LaserAuto.cs Detailed Documentation
      • Laserexample:Test1
  • Technical Notes
    • File formats
      • .FX File Format
      • Au(Gold) streams
      • .GEO File Format
      • .LST File Format
      • .LST file - technology
      • .BNC File Format
      • .WAD Files: Flux Resource Packages
      • .Curl Files: ASCII config information
    • Folders App
      • Data\Bendtools
      • Data\Machines
    • FluxCode
      • Welcome & Repo Map
      • Architecture & System Context
      • Subsystem *Bend* (Press Brake)
      • Subsystem *BCell* (Bend Cell Automation)
      • API Maps
      • Data Model Catalog
      • Design Patterns -- A Reader's Guide
      • Tests and Golden Paths
      • Guided Code Tours
      • CAM Glossary with Code Mapping
      • Assignments
      • Flux Onboarding Handbook
    • Data flow
      • Part
        • Part.Dwg
        • Part.Load
        • Part.Load to Part.Dwg
      • BendTech.cs
      • Bend Technology
      • Laser Cutting Technology
    • LTS (Long term support mechanism)
    • Machine ID Scheme
  • FluxTester
    • Commands and Scripts
    • Command Cookbook
    • Script Commands
    • BendTooling.cs Test Inventory
    • LaserTooling.cs Test Steps
    • Fluxtester Recipe Book
    • Nesting.cs Overview
    • Nesting.cs Recipe Book
    • Job.cs Overview
    • Job.cs Recipe Book
  • Software license
  • 3d party software
    • Python
  • Documentation
    • Bento documentation
      • Structure of a Bento page
      • Attributes
    • Software
      • Software Requirement
      • Installation
      • Git workflow for documentation contributors
    • Quick start guide
    • Workflow
      • Roles and responsibilities
      • Analyze
      • Edit
      • Proofread
      • Pre-Publish
      • Publish
      • Release cycle
      • Information required for Documentation Team
      • Checklist for Documenters
    • Styleguide
    • Flavoring
    • Translation
      • Ordering translation for a new document
    • Citations
    • Annotation
Technical Notes
/
FluxCode
/
Guided Code Tours

Guided Code Tours

Goal: seven structured, time-boxed reading walks through the most important Flux flows. Each tour starts at a precise file and line, has named stops, and ends with a question to confirm understanding. Every tour is doable read-only — you do not need to compile or run anything.

Use this when: you want to build mental scaffolding for an unfamiliar area in 15—​20 minutes flat.


How to use these tours

  • Open exactly the files named. Don’t wander; you can always do a second pass.

  • Don’t read the whole file. Stop at the named lines.

  • At each stop, write one sentence in your own words about what you just read. If you can’t, re-read.

  • End with the self-check question. If you can’t answer, redo the last stop.


Tour A — From CAD import to bend sequence (20 min)

Premise. You opened a 3D model. Click "Bend Auto-Tool". What just happened?

Step Open Read What you should see

1

Src\Core\IO\GeoReader.cs

top 60 lines

The entry point that parses a .geo file into a Part.

2

Src\Core\Part\Part.cs

lines 22—​80

Part properties: Model, Dwg, BendTech, FoldTech, CutTech.

3

Src\Core\Bend\BendTech.cs

lines 19—​120

The BendTech constructor — group flexes, split hem phases, build BendOps.

4

Src\Core\Bend\Ops\BendTooler.cs

lines 16—​80

The BendTooler constructor + DoTooling skeleton.

5

Src\Core\Bend\BendSetup.cs

lines 46—​62

The Dump method — the test contract.

Self-check: in three sentences, describe how a .geo file becomes a BendTech with N BendOps and one or more BendSetups. Where would you set a breakpoint to inspect the initial (pre-tooler) sequence?


Tour B — The Glob system in action (15 min)

Premise. Why does selecting a bend in the UI show a properties panel?

Step Open Read What you should see

1

Src\UI\Bend\BendOpUI.cs

lines 1—​60

The BendOpGlob declaration: [Glob (Draw = true, Mouse = EMouse.LDown)].

2

Src\UI\Bend\BendOpUI.cs

lines 21—​55

The AddRegrip static method — composite command shaping.

3

Src\UI\Bend\BendOpUI.cs

line 661

The BendOpsGlob (multi-select composite) declaration.

4

Src\UI\Glob.cs

top 80 lines

The base Glob class itself.

Self-check: when the user selects three bends, what class wraps them? Where does it decide which properties are shown?


Tour C — Rendering pipeline (15 min)

Premise. Where does the screen get its pixels from?

Step Open Read What you should see

1

Src\Base\Lux\VModel.cs

lines 1—​80

VModel base, Id, Nodes, Scene, Obj.

2

Src\Core\Bend\BendVM.cs

lines 1—​80

BendMountVM.Draw() — how a tool mount becomes geometry.

3

Src\Base\Lux\Lux.cs

top 60 lines

The static Lux.DrawMesh, Lux.Layer, Lux.Mood.

4

Src\Base\Lux\Scene.cs

top 60 lines

The scene graph that holds live VModels.

Self-check: if the bend setup renders incorrectly, name the one method you would put a breakpoint on first.


Tour D — A test, end-to-end (15 min)

Premise. Tests are documentation. Read one carefully.

Step Open Read What you should see

1

Test\Bend\BasicBendAuto.cs

full file

A textbook fixture with one helper.

2

X:\TData\Bend\Auto\Bend_04.geo

(just the filename)

A binary input — confirm it exists.

3

X:\TData\Bend\Auto\Bend_04.txt

full file

The golden file.

4

Src\Core\Bend\BendSetup.cs

Dump method

What writes the lines you just read.

Self-check: if test 82 fails after a code change, what’s the first thing you compare?


Tour E — Persistence (Au load + migration) (15 min)

Premise. How does Flux load yesterday’s file with today’s classes?

Step Open Read What you should see

1

Notes\Dev\1003.AuGoldEncoding.ftx

top 80 lines

The Au binary format.

2

Src\Core\Bend\BendSetup.cs

lines 64—​76

A real [PostLoad] migration handling clamp positions and blade sensors.

3

Notes\Tech\2007.CurlFiles.ftx

top 60 lines

The Curl text format and its grammar.

4

X:\Data\Machine\13\Machine.curl

top 30 lines

A real Curl file — the test machine.

Self-check: if you change a property’s type on BendOp, what do you write and in which file?


Tour F — A real bug fix in the wild (20 min)

Premise. Watch how a bug is fixed in this codebase.

Step Command / Open What you should see

1

Run git show 4a5119dcb (or look up its diff)

"Case 45728: Changing the suction cup state no longer deletes adjusted waypoints."

2

Identify which files were touched

The blast radius of the change.

3

For each file, read 30 lines around the change

The why of the change.

4

Find the test that locks it in

Usually a new [Test] or amended fixture.

Self-check: describe in one paragraph what behavior was broken, what change fixed it, and what test now guards it.


Tour G — Settings cascade (Sheaf) (10 min)

Premise. Why does a setting "live" at the right level?

Step Open Read What you should see

1

Src\Core\Settings\Sheaf.cs

lines 21—​80

The ISheafSite contract and helpers.

2

Src\Core\Bend\BendOp.cs

first 40 lines + the BendSpeed property

A BendOp resolving Settings.RamVBend through its parent.

3

Src\Core\Bend\BendMachine.cs

top 80 lines

The machine-level settings.

Self-check: if you set RamVBend = 50 on a single op, does it affect future ops? On the machine, does it affect future techs?


Tour H — Layer dependencies and the Hub (10 min)

Premise. How does Core call back into App without a project reference?

Step Open Read What you should see

1

Src\Core\Hub.cs

top 80 lines

The slot pattern: static Func<>/Action<>.

2

Notes\Dev\1002.BuildingFlux.ftx

lines 31—​95

The architectural decision behind the Hub.

3

Search the codebase

Hub.ClosePartByJobID?.Invoke (or any other slot)

Real call sites.

Self-check: in headless (Engine flavor) mode, what happens when Hub.BigChooser?.Invoke (...) is called?


How to read these tours productively

  • Time-box each tour to its target. Going long means you’re trying to memorize, not understand.

  • Repeat tours weekly for the first month. The same tour reveals more on the second pass.

  • Make your own notes. Three lines per tour is plenty.

  • Discuss with your buddy. Each tour ends with a question — answer it out loud.


A gentle calendar for the first three weeks

Week Tours to do

1

A, D, G — the spine: import-to-bend, a test, and the Sheaf cascade.

2

B, C, E — Glob, rendering, persistence.

3

F, H — bug fix in the wild, layer wiring.

By the end of week 3 you’ve internalized the full reading vocabulary of the codebase.


Last updated: 2026-05-04. All file paths and line numbers verified against the current tree.

Contents

  • How to use these tours
  • Tour A — From CAD import to bend sequence (20 min)
  • Tour B — The Glob system in action (15 min)
  • Tour C — Rendering pipeline (15 min)
  • Tour D — A test, end-to-end (15 min)
  • Tour E — Persistence (Au load + migration) (15 min)
  • Tour F — A real bug fix in the wild (20 min)
  • Tour G — Settings cascade (Sheaf) (10 min)
  • Tour H — Layer dependencies and the Hub (10 min)
  • How to read these tours productively
  • A gentle calendar for the first three weeks
Tests and Golden Paths CAM Glossary with Code Mapping

      Copyright © 2025 TRUMPF Metamation. All rights reserved.

    Compiled by Bento