%%HP: T(3)A(D)F(.);
\<< 'MI' VTYPE
  IF -1. ==
  THEN { 1. { 1.5 5.5
1.33 1430. 1308.125
1504.34 "N" } { 1600.
120. 14. 1. } { 1600.
682.73 14. 1. 0. } }
'MI' STO
  END
"SELECT LUMBER TYPE"
{ { "Visually Graded"
1. } { "GluLam" 2. }
{ "MSR" 3. } {
"Round Timber" 4. } }
'MI' 1. GET CHOOSE
ESC 'MI' 1. ROT PUT
"MEMBER INFORMATION"
{ { "B= "
"Member Width, inches"
0. } { "D= "
"Member Depth, inches"
0. } { "CD= "
"Load Duration Factor"
0. } { "Fc= "
"Allowable Compressive Stress, psi"
0. } { "Fb1= "
"Allowable Bending Stress, psi"
0. } { "Fb2= "
"Allowable Bending Stress, psi"
0. } { "FIRE-RATED?"
"(WALL STUDS) Y=YES, N=NO"
2. 6. } { } } { 2. 1.
} 'MI' 2. GET DUP
INFORM ESC 'MI' 2.
ROT PUT
"AXIAL CRITERIA" { {
"E= "
"Modulis of Elasticity, ksi"
0. } { "P= "
"Axial Load, lbs." 0.
} { "Ld= "
"Unbraced Length, strong, ft."
0. } { "Lb= "
"Unbraced Length, weak, ft."
0. } } { 2. 1. } 'MI'
3. GET DUP INFORM ESC
'MI' 3. ROT PUT
"FLEXURAL CRITERIA" {
{ "E1= "
"Modulis of Elasticity, ksi"
0. } { "M1= "
"Strong Axis Moment, ft-lbs"
0. } { "SPAN1= "
"Span, Strong Axis, ft"
0. } { "Lu1= "
"Unsupported Length, ft"
0. } { } { "M2= "
"Weak Axis Moment, ft-lbs"
0. } } { 2. 1. } 'MI'
4. GET DUP INFORM ESC
'MI' 4. ROT PUT 'MI'
1. GET 'MI' 2. GET
OBJ\-> DROP "Yy'Y''y'"
SWAP \->STR POS
  IF 0. \=/
  THEN 1. SF
  END 3. \->LIST * OBJ\->
DROP 0. 0. "" \-> \<-TP
\<-b \<-d \<-Fc \<-Fb1 \<-Fb2
\<-FcE1 \<-FcE2 \<-MSG
  \<<
    IF '\<-TP==4.'
    THEN
      IF '\<-b\=/\<-d'
      THEN
"Round Column!          @ column.  If b doesn't
b \=/ d"
MSGBOX KILL
      END 1.18 '\<-Fb1'
OVER '\<-Fb2' STO* STO*
    END 'MI' 3. GET
OBJ\-> DROP AXIAL 'MI'
4. GET OBJ\-> DROP2 1.
FLEX 0. 'MI' 4. GET
5. GET 0. 0. 0. FLEX
CSI
  \>>
\>>