%%HP: T(3)A(D)F(.);
\<< 'BI' VTYPE
  IF -1. ==
  THEN { 3. 29000.
46. 4.59 10. 1.92 10.
1.92 } 'BI' STO
  END
"BRACE INFORMATION" {
{ "Seism. Zone:"
"Number, only" 0. } {
"E="
"Modulis of Elasticity, ksi"
0. } { "Fy="
"Yield Stress, ksi"
0. } { "A="
"Section Area, sq.in."
0. } { "klx="
"X-Eff. Brace Length, ft."
0. } { "rx="
"Radius of Gyration-X, in."
0. } { "kly="
"Y-Eff. Brace Length, ft."
0. } { "ry="
"Radius of Gyration-Y, in."
0. } } { 2. 0. } BI
BI INFORM ESC 'BI'
STO BI OBJ\-> DROP 7.
ROLL 7. PICK / 2. \pi
SQ * * \v/ ROT ROT /
12. * 4. ROLL 4. ROLL
/ 12. * \-> Z Fy A Cc
SLy SLx
  \<< SLx SLy MAX
    IF 'Z<3.'
    THEN
      IF 200. >
      THEN BUZZ
"Slenderness Ratio Exceeds 200"
MSGBOX
      END
    ELSE
      IF '720./\v/Fy' >
      THEN BUZZ
"Slenderness Ratio Exceeds 720/\v/Fy"
MSGBOX
      END
    END 6. Fy Cc SQ *
* 23. / DUP SLx SQ /
"Fex" \->TAG SWAP SLy
SQ / "Fey" \->TAG SLx
SLy MAX Cc / DUP DUP
    IF 1. >
    THEN 6. 23. /
SWAP SQ /
    ELSE 1. OVER SQ
2. / - SWAP DUP 3. *
8. / SWAP 3. ^ 8. / -
5. 3. / + /
    END Fy * "Fa"
\->TAG DUP ROT 2. / 1.
+ INV DUP
    IF .8 <
    THEN
      IF 'Z==2.'
      THEN DROP .8
      END
    END
    IF 'Z==1.'
    THEN DROP 1.
    END * "Fas" \->TAG
DUP A * 4. * 3. /
"Allow. P" \->TAG
  \>>
\>>