%%HP: T(3)A(D)F(.);
\<< 'CDAT' VTYPE
  IF -1. ==
  THEN { { 44.2 0. 4.
60. 12. 18. 16. 16.5
} 1. 1. } 'CDAT' STO
  END
"CONCRETE BRACKET/CORBEL DESIGN"
{ { " Vu ="
"Ult. Shear, kips" 0.
} { "Nuc ="
"Ult. Tension, kips, 0.2Vu, min"
0. } { "f\180c ="
"Ult. Concrete Strength, ksi"
0. } { " fy ="
"Ult. Re-steel strength, ksi"
0. } { "  a ="
"Face of support to Vu, in."
0. } { "  h ="
"Corbel depth at support, in."
0. } { "  b ="
"Flexural width, in."
0. } { "  d ="
"Flexural depth to steel, in."
0. } } { 2. 0. }
'CDAT' 1. GET DUP
INFORM ESC DUP 'CDAT'
1. ROT PUT OBJ\-> DROP
"SUPPORT SURFACE" { {
"Monolithic" 1. } {
"Roughened" 2. } {
"Smooth" 3. } {
"Steel" 4. } } 'CDAT'
2. GET CHOOSE ESC DUP
'CDAT' 2. ROT PUT {
1.4 1. .6 .7 } SWAP
GET "CONCRETE TYPE" {
{ "Normal Weight" 1.
} { "Lightweight" 2.
} } 'CDAT' 3. GET
CHOOSE ESC DUP 'CDAT'
3. ROT PUT \-> Vu Nuc
f\180c fy a h b d \Gm wt
  \<< .85 .2 f\180c * * .8
MAX b d * * wt 2.
    IF ==
    THEN 1. .35 a * d
/ - *
    END Vu
    IF <
    THEN
"Corbel too small!"
MSGBOX KILL
    END \Gm
    IF 'wt==2.'
    THEN .75 *
    END fy .85 * * Vu
SWAP / Nuc .2 Vu *
MAX 'Nuc' STO Nuc fy
.85 * / Nuc h d - *
Vu a * + .85 f\180c b d
* * * DUP SQ OVER 4.
ROLL * .45 d * / - \v/
- fy / OVER OVER + 3.
PICK 5. PICK 2. * 3.
/ + f\180c fy / b d .04
* * * MAX MAX DUP 4.
PICK - 2. /
"Calculated Steel Areas:
Avf = "
6. ROLL +
" in\178
 An = " + 5.
ROLL + " in\178
 Af = "
+ 4. ROLL +
" in\178
 As = " + ROT +
" in\178
 Ah = " + SWAP
+ " in\178" + SCRN
  \>>
\>>