calcs/slab-on-grade/slab-on-grade.typ
smillmorel aa790c1be5 Normalize spacing before units across all calc sheets
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.
2026-09-21 20:38:04 -04:00

74 lines
1.6 KiB
Typst

#import "assets/sheet.typ": calcline, calcsheet, check
#show: calcsheet.with(
title: "Slab-On-Grade Design",
project: "Pinecrest Residence",
prepared-by: "Conemco Engineering",
)
#let round(value, digits: 2) = calc.round(value, digits: digits)
= Slab-On-Grade Design
Considering 4" thick, 3000 psi slab on grade with 6x6 w.2.1. For interior use.
== Input Data
#let t = 5
#let L = 15
#let fc = 3000
#let wc = 150
#let fy = 60000
#let fs = (2 / 3) * fy
#let DL = 20
#let LL = 100
#let b = 12
#calcline([$t = #t "in"$], [Slab thickness])
#calcline([$L = #L "ft"$], [Max joint spacing])
#calcline([$f'c = #fc "psi"$], [Concrete strength])
#calcline([$omega_c = #wc "pcf"$], [Concrete density])
#calcline([$f_y = #fy "psi"$], [Steel strength])
#calcline([$f_s = (2\/3) f_y = #fs "psi"$], [Working stress])
#calcline([$D_L = #DL "psf"$], [Dead load])
#calcline([$L_L = #LL "psf"$], [Live load])
#calcline([$b = #b "in"$], [Design width])
== Acting Load
#let w = wc * (t / 12) + DL + LL
#calcline(
[$w = omega_c dot t + D_L + L_L = #round(w) "psf"$],
[Design lineal load],
)
== Required Steel Reinforcement
#let F = 1.5
#let As_req = (F * L * w) / (2 * fs)
#calcline([$F = #F$], [Subgrade friction factor])
#calcline(
[$A_(s,"req") = display((F L w) / (2 f_s)) = #round(As_req, digits: 4) " in²/ft"$],
[Required steel reinf area using subgrade drag equation],
)
== Provided Steel Reinforcement
#let As = 0.058
#calcline(
[$A_s = #As " in²/ft"$],
[Provided steel reinf. area #linebreak() WWF 6"x6" 2.9x2.9],
)
#v(8pt)
#check(
"Provided steel reinforcement",
As_req,
As,
unit: "in²/ft",
demand-label: [$A_(s,"req")$],
capacity-label: [$A_s$],
)