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.
35 lines
2.5 KiB
Typst
35 lines
2.5 KiB
Typst
// Generated by beam_section.py from input.yaml - do not edit by hand.
|
|
#let beam-section() = {
|
|
box(width: 302pt, height: 246pt)[
|
|
#place(dx: 80pt, dy: 34pt, rect(width: 112pt, height: 168pt, fill: rgb("#f2f2f2"), stroke: 1pt + black))
|
|
#place(dx: 103.6pt, dy: 57.62pt, rect(width: 64.75pt, height: 120.8pt, radius: 1.5pt, stroke: 5.25pt + black))
|
|
#place(dx: 106.2pt, dy: 162.6pt, circle(radius: 4.375pt, fill: black))
|
|
#place(dx: 157pt, dy: 162.6pt, circle(radius: 4.375pt, fill: black))
|
|
#place(dx: 106.2pt, dy: 60.25pt, circle(radius: 3.5pt, fill: black))
|
|
#place(dx: 158.8pt, dy: 60.25pt, circle(radius: 3.5pt, fill: black))
|
|
#place(line(start: (80pt, 218pt), end: (192pt, 218pt), stroke: 0.6pt + black))
|
|
#place(line(start: (80pt, 214pt), end: (80pt, 222pt), stroke: 0.6pt + black))
|
|
#place(line(start: (192pt, 214pt), end: (192pt, 222pt), stroke: 0.6pt + black))
|
|
#place(dx: 80pt, dy: 221pt, box(width: 112pt, align(center)[$b_w = 8 " in"$]))
|
|
#place(line(start: (68pt, 34pt), end: (68pt, 202pt), stroke: 0.6pt + black))
|
|
#place(line(start: (64pt, 34pt), end: (72pt, 34pt), stroke: 0.6pt + black))
|
|
#place(line(start: (64pt, 202pt), end: (72pt, 202pt), stroke: 0.6pt + black))
|
|
#place(dx: 2pt, dy: 113pt, text(size: 8pt)[$h = 12 " in"$])
|
|
#place(line(start: (50pt, 34pt), end: (50pt, 167pt), stroke: 0.6pt + black))
|
|
#place(line(start: (46pt, 34pt), end: (54pt, 34pt), stroke: 0.6pt + black))
|
|
#place(line(start: (46pt, 167pt), end: (54pt, 167pt), stroke: 0.6pt + black))
|
|
#place(dx: 2pt, dy: 95.5pt, text(size: 8pt)[$d = 9.5 " in"$])
|
|
#place(line(start: (162.2pt, 63.75pt), end: (204pt, 52pt), stroke: 0.5pt + rgb("#626b73")))
|
|
#place(dx: 160.8pt, dy: 62.25pt, circle(radius: 1.5pt, fill: black))
|
|
#place(dx: 208pt, dy: 46pt, text(size: 7.5pt)[2 No. 4 hanger \ bars])
|
|
#place(line(start: (168.4pt, 118pt), end: (204pt, 114pt), stroke: 0.5pt + rgb("#626b73")))
|
|
#place(dx: 166.9pt, dy: 116.5pt, circle(radius: 1.5pt, fill: black))
|
|
#place(dx: 208pt, dy: 108pt, text(size: 7.5pt)[No. 3 stirrup \ at 6 in o.c.])
|
|
#place(line(start: (161.4pt, 167pt), end: (204pt, 184pt), stroke: 0.5pt + rgb("#626b73")))
|
|
#place(dx: 159.9pt, dy: 165.5pt, circle(radius: 1.5pt, fill: black))
|
|
#place(dx: 208pt, dy: 178pt, text(size: 7.5pt)[2 No. 5 bottom \ $A_s = 0.62 " in"^2$])
|
|
#place(line(start: (103.6pt, 178.4pt), end: (40pt, 228pt), stroke: 0.5pt + rgb("#626b73")))
|
|
#place(dx: 102.1pt, dy: 176.9pt, circle(radius: 1.5pt, fill: black))
|
|
#place(dx: 2pt, dy: 232pt, text(size: 7.5pt)[cover = 1.5 in])
|
|
]
|
|
}
|