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.
This commit is contained in:
smillmorel 2026-09-21 14:25:16 -04:00
commit 25f66bb4da
8 changed files with 973 additions and 568 deletions

View file

@ -1,4 +1,5 @@
#import "assets/sheet.typ": calcline, calcsheet, check
#import "assets/beam-section.typ": beam-section
#let data = json("results.json")
#let n = data.values
@ -37,6 +38,16 @@ Simple-span rectangular beam under uniform gravity load. Numbers come from `calc
caption: [#n.span ft simply supported beam, #n.bw in × #n.h in rectangular section.],
)
== Section and Reinforcement
#figure(
beam-section(),
caption: [
Beam cross-section: #n.bw in × #n.h in, No. #n.stirrup_size stirrups at #n.stirrup_spacing in
on center, and #n.n_bars No. #n.bar_size longitudinal bars (A_s = #n.As in²).
],
)
== Loads and Beam Demand
#calcline([$L = #n.span " ft"$], [Simple span])