concrete-beam-section #1

Merged
smill merged 3 commits from concrete-beam-section into main 2026-09-21 19:24:39 -04:00

2026-09-21

Use concise dynamic rebar labels in beam section
Render bar-group callouts as (n) #size and stirrups as #size @ spacing,
driven entirely by the input values.
2026-09-21 19:23:14 -04:00
Refine beam section figure and derive As from bars
- Derive As from the provided longitudinal bars instead of taking it as
  input; drop the redundant As_bars output and update tests.
- Draw a fixed schematic 1 in cover and pin the bottom bars to the
  stirrup's bottom leg so the figure no longer depends on cover or d.
- Fixed stirrup stroke with a rounded 3 pt corner radius.
- Right-align the figure, constrain its caption to the image width, and
  shorten the caption to "Beam cross-section".
- Document input.yaml fields.
2026-09-21 19:16:57 -04:00
Add generated beam cross-section figure to concrete-beam
Add reinforcement inputs (cover, stirrup size/spacing, longitudinal and
top bar size/count) and emit the derived bar geometry from calc.py.
beam_section.py renders a native Typst drawing of the section to
assets/beam-section.typ, which concrete-beam.typ imports as a figure.
Effective depth d remains authoritative for the tension-steel position.
2026-09-21 14:25:16 -04:00