| Filename | Latest commit message | Latest commit date |
|---|---|---|
Plain units already get a gap from the source whitespace, so drop the leading space inside the string; keep it only on superscripted units (in^2, in^3, in^4, ft^2). Also fix the generated concrete-beam figure labels. Regenerate all affected PDFs. |
||
| .. | ||
| assets | ||
| beam_section.py | ||
| calc.py | ||
| concrete-beam.pdf | ||
| concrete-beam.typ | ||
| input.yaml | ||
| README.md | ||
| results.json | ||
| test_concrete_beam.py | ||
Concrete Beam
Simple-span rectangular reinforced concrete beam, checked per ACI 318 for flexure, minimum steel, and concrete shear under a uniform gravity load (1.2D + 1.6L).
Files
input.yaml— geometry, loads, materials, and reinforcement; units are carried in the values.calc.py— computes the demands and capacities, writesresults.json, and regenerates the cross-section figure.beam_section.py— renders the cross-section as native Typst (assets/beam-section.typ), drawn to a fixed schematic cover.test_concrete_beam.py— pytest checks of the demands, flexure, minimum steel, shear, reinforcement geometry, and the generated figure.concrete-beam.typ— report; compiles toconcrete-beam.pdf.
As is derived from the provided bars (n_bars, bar_size).
Usage
Edit input.yaml, then:
python3 calc.py # writes results.json and assets/beam-section.typ
python3 -m pytest # checks the calculation and the generated figure
typst compile concrete-beam.typ # builds concrete-beam.pdf
calc.py must be run before compiling so the figure matches the current inputs; the tests fail if assets/beam-section.typ is stale.
Requirements
Python 3 with pyyaml, pint, pytest; Typst.