Knowing Your Strengths

See all articles from SYNC v3 n2
Drawing of a steel arch bridge
Drawing of a steel arch bridge

As an Industrial Designer, I am often required to specify the minimum practical amounts of material and the most effective configurations that will safely support a given load before spending thousands of dollars in tooling to produce parts for testing. Unfortunately, my staff does not include a graduate stress analyst, and my budget does not permit the use of high-priced consultants.

So I have been accustomed to resorting to a very handy and reliable reference work, Machinery’s Handbook, which has collected all the standard formulas in the field necessary to perform a simple stress analysis. Even though I programmed my Commodore PR100 hand-held calculator to help, the repeated calculations of various sections and materials under various loading conditions would still take many hours of tedious labor.

As soon as I became moderately confident with my ZX80 and its extended ROM/RAM, I resolved to commit this process to the computer. The program I developed for this task is listed below. The results have proved extremely rewarding. Now I can try out literally hundreds of possibilities in a matter of minutes, and I have found the results to be surprisingly reliable and predictive of actual performance.

In order to minimize LOADing time (nearly 5 minutes), I only programmed those sections, materials, and characteristics that we commonly encounter in our line of work. Needless to say, the program can be easily modified to accommodate the formulas that apply to your particular situation from your own sources.

Program Structure

The program should prove quite user-friendly and essentially self-instructive. Its basic structure rests on the following routine:

1) Select a section (or shape) and enter the dimensions.

2) Select a material (to get Modulus of Elasticity and Tensile Strength).

3) Select a “loading model” and enter load and length.

You can change any segment of the data by returning to the appropriate section and recalculate the results without reentering unchanged data. To alter any single variable, without affecting others, simply enter the data with a “LET” statement. To deal with more complex sections (or shapes), refer to any of the standard reference works (e.g., Machinery’s Handbook) for methods used to “mass” such shapes into simpler forms which can be handled by the program.

The Modulus of Elasticity and Tensile Strengths for most materials can be found in works such as Machinery’s Handbook and The Plastics Directory, and I am indebted to both of them. The wood data are interpolated from various sources and may be somewhat unreliable. You can alter these sections to suit your needs, but I recommend using actual test data wherever possible or manufacturer’s literature when available.

Using the Program

Suppose, for example, that you want to know the size and thickness of aluminum tube needed to mount a series of theater seats from supports a given distance apart. The tube will be firmly clamped in rigid cast iron supports (it makes a difference).

1) After you have typed in the program and SAVEd it (or if you are working from a tape, LOAD “STRENGTH”), hit RUN and ENTER.

2) You will be presented with a “SHAPE TABLE.” Select and enter an appropriate shape; in this case, enter 2 for a square tube. This calls up a graphic with various dimensions outlined.

3) The program will ask for “T” or thickness (if you know it). Let’s assume we do not know T, so enter 0.

4) It will ask for “D” the height dimension. Let’s try a 2 inch square tube. Enter 2 for both D and B.

5) Because we did not know the thickness, it will ask for the inside dimensions: “H” corresponding to D and “K” corresponding to B. Enter 1.75 for both of these. The computer goes blank for a second or so while it calculates. Then it displays: T (thickness), Section Area, Section Modulus, Moment of Inertia, and Radius of Gyration (this is included for use in the Torsional calculations later on).

6) The last line will ask for the next step. Since this is an initial calculation, with no previous data resident, we must enter 2 for material data. This calls up a “MATERIALS TABLE”, listing 10 common materials. Let’s choose an extruded tube of 6063-T5 aluminum. Enter 6. The Tensile Strength and Modulus of Elasticity (abbreviated MOD.EL.) are displayed: T, 29000; M.E., 10.3 million.

7) The last line will ask you to press ENTER to continue. This calls up a “BEAM LOAD TABLE” with 6 common loading diagrams. Since our beam will be firmly fixed in its supports, select 6. This recalls the appropriate loading diagram and asks for the load in pounds (W). Let’s suppose that 3 chairs are mounted between supports, the supports are 72 inches apart, and the chairs must accomodate occupants weighing up to 300 pounds each plus 20 pounds for each chair for a total of 960 pounds. Enter 960 for W and 72 for L. The screen displays: Total load in inch pounds, a reminder of the section you are testing (2 x 2 x 0.125), the Tensile (29000 PSI), the Stress at the critical point (the center in this case), and the Deflection you can expect at that critical point (about 5/32 of an inch in this case). As you can see, this is a pretty safe load for the selected section.

Now suppose that we want to reduce the cost. Let’s try out a small rectangular steel tube. Enter 1 for a new section. Select 2 again, and enter the appropriate dimensions. Let’s say that we know the thickness this time: T: .062; D: 1.5; B: .75. Since we already have the rest of our data, we can simply “RECALCulate” by entering 4. As you can see, this substitution results in an equally safe situation.

Encouraged by this, we might try using fewer supports. Let’s try 6 chairs on a 12 foot beam. Enter 3 to revise the load. Select 6 again, and enter the load and length: W: 5*320 (you can enter this as an expression and let the computer calculate the result, 1600); L: 12*12 (144).

Lo and behold, we have overdone it. The screen flashes a reverse video “OVERSTRESS” 10 times, because the stress (35009.386) exceeds the tensile strength of the tube (29000 PSI). Under these circumstances, the Deflection data are probably unreliable.

Now let’s suppose that you have discovered a miracle material with Tensile strength of 100,000 PSI. Enter this data by returning to 2, the material subroutine. Otherwise, it will not become a part of the new MATERIAL STRENGTH calculation. If you wish to change only the total load applied, get into K mode by entering any letter (giving error 2/1510). Then enter the lighter load with a direct LET statement: “LET W:800”, followed by “GOTO 2640”. As you can see, we are no longer OVERSTRESSed. If you cannot remember the address of the stress calculation (2640), just go to 1500 to pick up the “BRANCHING” statement that will let you select 4 for recalculation.

Note: Loading diagram 3 (asymmetrical load placement) requires a third dimension “X” to indicate the distance from the load to the nearest support.

With some experimentation, you will develop an excellent sense of which variables have the greatest impact on beam strength and load.

Conclusion

One problem I have not bothered to resolve (because I am awaiting a printer) is remembering the precise details of the section entered in the first steps. If you do not plan to have a printer, you could alter the program to display a simple reminder of the section.

My plans for elaborating the program include a section for calculating compound loading vectors and flags to indicate when stresses approach “proportional limits” and “ultimate strength.” You can include safety factors to suit your particular needs by modifying statements in the last few lines. For example, changing line 3525 to 3525 IF S—.8=S2 THEN GOTO 3650 will flag a potential failure at 80% of the ultimate strength level.

Obviously, many of you will not be able to use this particular program directly in your work. However, you may still enjoy working through the program for its graphics and the way the various factors interact in a load carrying situation. Above all, we hope the program will inspire you to use your computer to find a way of taking a “load” off your work.

If any of you architects, designers, engineers, or scientists out there have written programs for the Sinclair computers, I urge you to submit them to SYNC so that we can share our efforts and all benefit.

(In the listing, [gfx] marks runs of ZX81 graphics characters and inverse spaces that draw title bars, section shapes and load arrows; their exact characters and spacing could not be reproduced as text, and the spacing of the diagram lines is approximate. [inv …] = inverse characters.)

   5 REM "STRENGTH"
7 PRINT "[gfx] STRENGTH OF MATERIALS [gfx]"
8 PRINT "[gfx]"
10 PRINT "[gfx] SHAPE TABLE [gfx]"
11 PRINT
12 PRINT
13 PRINT " 1 [gfx] SQ/RECT SOLID"
14 PRINT " 2 O SQ/RECT TUBE"
16 PRINT " 3 * ROUND SOLID"
18 PRINT " 4 O ROUND TUBE"
20 PRINT " 5 I SECTION"
22 PRINT " 6 H SECTION"
24 PRINT " 7 C SECTION"
26 PRINT " 8 L SECTION"
28 PRINT " 9 V SECTION (INVERTED)"
30 PRINT "10 T SECTION"
32 PRINT "11 + SECTION"
40 PRINT
45 PRINT
50 PRINT "ENTER APPROPRIATE SHAPE CODE"
55 INPUT S1
65 CLS
66 IF S1>11 THEN LET S=19
70 GOTO S1*100
100 PRINT "[gfx] SQUARE/RECTANGULAR SOLID [gfx]"
104 PRINT
106 PRINT "[gfx]---- DIRECTION"
108 PRINT "[gfx] : OF LOAD"
110 PRINT "[gfx] : [gfx]"
112 PRINT "[gfx]-- D [gfx]"
114 PRINT "[gfx] : : [gfx]"
116 PRINT "[gfx] Y :"
118 PRINT "[gfx]-----"
120 PRINT ": :"
122 PRINT ": --B-- :"
124 PRINT
128 PRINT "B=";
130 INPUT B
132 PRINT B;" ";
136 PRINT "D=";
138 INPUT D
140 PRINT D;" ";
142 LET Y=D/2
146 PRINT "Y=";Y
148 PRINT
149 LET T=0
150 LET A=B*D
152 LET I=(B*(D**3))/12
154 LET Z=(B*(D**2))/6
155 LET K=SQR (I/A)
156 GOSUB 1600
166 PRINT
168 GOTO 1500
200 PRINT "[gfx] SQUARE/RECTANGULAR TUBE [gfx]"
202 PRINT "[gfx]---*-"
204 PRINT "[gfx]-*-: D=OUTSIDE DEPTH"
206 PRINT "[gfx] [gfx] : : B=OUTSIDE BREADTH"
208 PRINT "[gfx] [gfx] : : H=INSIDE DEPTH"
210 PRINT "[gfx]---[gfx]*H D K=INSIDE BREADTH"
212 PRINT "[gfx] [gfx]:: : T=THICKNESS (WALL)"
214 PRINT "[gfx] [gfx]Y: : Y=MOMENT"
216 PRINT "[gfx]:*-:"
218 PRINT "[gfx]-*-*-"
220 PRINT ":: -K-:: :"
222 PRINT ":: -::-T ENTER T (IF KNOWN)"
224 PRINT ": --B--: ""0"" IF UNKNOWN"
228 PRINT
230 INPUT T
236 PRINT "D=";
238 INPUT D
240 PRINT D;" B=";
244 INPUT B
246 PRINT B;
248 IF T<>0 THEN GOTO 262
249 PRINT " H=";
250 INPUT H
252 PRINT H;" K=";
254 INPUT K
256 LET T=(B-K)/2
258 PRINT K;" T=";T
260 GOTO 270
262 LET H=D-2*T
264 LET K=B-2*T
266 PRINT " H=";H;" K=";K;" T=";T
268 LET Y=D/2
270 LET A=(D*B)-(H*K)
272 LET Z=((B*D**3)-(H*K**3))/6*D
274 LET I=((B*D**3)-(H*K**3))/12
275 LET K=SQR (I/A)
276 GOSUB 1600
278 PRINT
280 GOTO 1500
282 STOP
300 PRINT "[gfx] ROUND SOLID [gfx]"
302 PRINT "[gfx]------*-"
304 PRINT "[gfx] :"
306 PRINT "[gfx] :"
308 PRINT "[gfx] :"
310 PRINT "[gfx]*-D D=DIAMETER"
312 PRINT "[gfx] : :"
314 PRINT "[gfx] Y : Y=DIST NEUT.TO EXT"
316 PRINT "[gfx] : :"
318 PRINT "[gfx]---*-*-"
320 PRINT
322 PRINT "D=";
324 INPUT D
326 LET Y=D/2
328 PRINT D;" Y=";Y
329 LET B=D
330 LET A=.7854*(D**2)
331 LET T=0
332 LET Z=.098*(D**3)
334 LET I=.049*(D**4)
335 LET K=SQR (I/A)
336 GOSUB 1600
338 PRINT
340 GOTO 1500
350 STOP
400 PRINT "[gfx] ROUND TUBE [gfx]"
402 PRINT "[gfx]---------*-"
404 PRINT "[gfx]-----*-:"
406 PRINT "[gfx] : :"
408 PRINT "[gfx] ID :"
410 PRINT "[gfx]-*-: :"
412 PRINT "[gfx] : :OD"
414 PRINT "[gfx] Y : :"
416 PRINT "[gfx]--: -*-:"
418 PRINT "[gfx]---*-*-*-"
420 PRINT TAB 11;":"
422 PRINT TAB 11;"T"
424 PRINT "ENTER T (IF KNOWN), 0 (IF NOT)"
428 INPUT T
432 PRINT "OD=";
434 INPUT OD
436 IF T<>0 THEN GOTO 446
438 PRINT OD;" ID=";
440 INPUT ID
442 PRINT ID;" T=";(OD-ID)/2;" Y=";OD/2
444 GOTO 451
446 LET ID=OD-(2*T)
448 LET Y=OD/2
450 PRINT OD;" ID=";ID;" T=";T;" Y=";Y
451 LET B=ID
452 LET A=.7854*(OD**2-ID**2)
453 LET D=OD
454 LET I=.049*(OD**4-ID**4)
456 LET Z=.098*((OD**4-ID**4)/OD)
457 LET K=SQR (I/A)
458 GOSUB 1600
460 PRINT
462 GOTO 1500
464 STOP
500 PRINT "[gfx] I-SECTION [gfx]"
501 LET N=5
502 PRINT "[gfx]---+-"
504 PRINT "[gfx]-+-: [gfx]"
506 PRINT "[gfx] : : [gfx]"
508 PRINT "[gfx] H : [gfx]"
510 PRINT "+-----[gfx]- : : LOAD"
512 PRINT ": [gfx] : D"
514 PRINT "Y [gfx] : :"
516 PRINT ": [gfx]-+-:"
518 PRINT "+- [gfx]-+-+-"
520 PRINT " : :: : :"
522 PRINT " :T-++- : F"
524 PRINT " +--B---+"
526 PRINT " : :"
530 PRINT "T=";
532 INPUT T
534 PRINT T;" F=";
536 INPUT F
538 PRINT F;" D=";
540 INPUT D
542 LET H=D-(2*F)
543 LET Y=D/2
544 PRINT D,"Y=";Y;" H=";H;" B=";
546 INPUT B
548 PRINT B
550 IF N<>5 THEN GOTO 30+(N*100)
552 LET Y=D/2
554 LET A=(B*D)-(H*(B-T))
556 LET I=((B*(D**3))-((H**3)*(B-T)))/12
558 LET Z=I/Y
559 LET K1=(B*D**3)-(H**3*(B-T))
560 LET K2=12*((B*D)-(H*(B-T)))
561 LET K=SQR (K1/K2)
564 PRINT "AREA=";A;" S.MOD=";Z,"MOMIN=";I;" RAGY=";K
566 GOTO 1500
600 PRINT "[gfx] H-SECTION [gfx]"
601 LET N=6
602 PRINT
604 PRINT "[gfx]---+-"
606 PRINT "[gfx] : : LOAD"
608 PRINT "[gfx] : : [gfx]"
610 PRINT "[gfx]-+-B [gfx]"
612 PRINT "[gfx] : : :"
614 PRINT "[gfx]T [gfx] Y :"
616 PRINT "[gfx]-+-+-"
618 PRINT " : ::"
620 PRINT " : F-++-"
622 PRINT " +--D--+"
624 PRINT " : :"
628 GOTO 528
630 LET Y=B/2
632 LET A=(B*D)-(H*(B-T))
634 LET I=((2*F*(B**3))+(H*(T**3)))/12
636 LET Z=I/Y
637 LET K1=2*F*(B**3)+H*(T**3)
638 LET K2=12*((B*D)-(H*(B-T)))
639 LET K=SQR (K1/K2)
640 GOTO 564
700 PRINT "[gfx] C-SECTION [gfx]"
701 LET N=7
702 PRINT "[gfx]-+-+-"
704 PRINT "[gfx]-+-: LOAD"
706 PRINT "[gfx] : : : [gfx]"
708 PRINT "[gfx] : F : [gfx]"
710 PRINT "[gfx]--:----+-D [gfx]"
712 PRINT "[gfx] H : :"
714 PRINT "[gfx] : Y :"
716 PRINT "[gfx] : :"
720 PRINT "[gfx]-+-+-"
722 PRINT ":: :"
724 PRINT "++-T :"
726 PRINT "+--B--+"
727 PRINT ": :"
728 GOTO 528
730 LET Y=D/2
732 LET A=(B*D)-(H*(B-T))
734 LET I=((B*(D**3))-((H**3)*(B-T)))/12
736 LET Z=I/Y
737 LET K1=(B*D**3)-(H**3*(B-T))
738 LET K2=12*((B*D)-(H*(B-T)))
739 LET K=SQR (K1/K2)
740 GOTO 564
800 PRINT "[gfx] L-SECTION [gfx]"
801 LET N=8
802 PRINT " -++-T"
804 PRINT " ::"
806 PRINT "-+-[gfx]-----+-+-EXTREME FIBER"
808 PRINT " : [gfx] : :"
810 PRINT " : [gfx] Y :"
812 PRINT " B [gfx] : :"
816 PRINT " : [gfx] : D"
818 PRINT " :-[gfx]-----+-:-NEUTRAL FIBER"
820 PRINT " : [gfx] :"
822 PRINT " : [gfx]-+- [gfx]"
824 PRINT "-+- LOAD"
826 PRINT " : : [gfx]"
828 PRINT " +--L----+ [gfx]"
830 PRINT " : :"
834 PRINT "T=";
836 INPUT T
838 PRINT T;" B=";
840 INPUT B
841 PRINT B;" L=";
842 INPUT L
845 LET D=B-T
846 LET Y=B-(T*(2*D+L)+(D**2))/(2*(D+L))
848 PRINT L," D=";D;" Y=";Y
850 LET A=T*(L+D)
851 LET E=(T*(Y**3))+L*((B-Y)**3)
852 LET P=(L-T)*((B-Y-T)**3)
853 LET I=(E-P)/3
854 LET Z=I/Y
856 LET K=SQR ((I/(3*T*(L+B-T)))*(T*(Y**3)+L*((B-Y)**3)-((L-T)*((B-Y-T)**3))))
858 GOTO 564
900 PRINT "[gfx] INVERTED V-SECTION [gfx]"
901 LET N=9
902 PRINT " *"
904 PRINT " / -----+-EXTREME FIBER"
906 PRINT " / [gfx] :"
908 PRINT " L [gfx] Y"
910 PRINT " / [gfx] :"
912 PRINT " / [gfx]----[gfx]-+-NEUTRAL FIBER"
914 PRINT "* [gfx] [gfx]"
916 PRINT " [gfx] [gfx]"
918 PRINT "//"
920 PRINT "/T"
922 PRINT TAB 12;"T=";
924 INPUT T
926 PRINT T;" L=";
927 INPUT L
928 PRINT L
929 LET B=L
930 LET A=T*((2*L)-T)
931 LET D=L
932 LET Y=((L**2)+(L*T)-(T**2))/(2*(2*L-T)*COS (45))
934 LET P=Y*COS (45)
936 LET I=(2*(P**4)-(2*(P-T)**4)+T*(L-(2*P-T/2))**3)/2
938 LET Z=I/Y
940 LET K=SQR (I/A)
942 PRINT "Y=";Y;" AREA=";A;" S.MOD=";Z
944 PRINT "MOMIN=";I;" RAGYR=";K
946 PRINT
948 GOTO 1500
950 PRINT
1000 PRINT "[gfx] T-SECTION [gfx]"
1002 PRINT " F +---B---+"
1004 PRINT " : : :"
1006 PRINT "-+---[gfx]-+-"
1008 PRINT "-+-+-[gfx] :"
1010 PRINT " : : [gfx] :"
1012 PRINT " : ---[gfx]--+---:--NEUTRAL FIBER"
1014 PRINT " H [gfx] : D"
1016 PRINT " : [gfx] Y :"
1018 PRINT " : [gfx] : :"
1020 PRINT " -+------[gfx]--+--+--EXTREME FIBER"
1022 PRINT " ::"
1023 PRINT " -++-T"
1024 PRINT " ::"
1025 PRINT "T=";
1026 INPUT T
1028 PRINT T;" F=";
1030 INPUT F
1032 PRINT F;" B=";
1034 INPUT B
1036 PRINT B;" D=";
1038 INPUT D
1040 PRINT D
1041 LET H=D-F
1042 LET A=B*F+H*T
1044 LET Y=D-(((D**2)*T+(F**2)*(B-T))/(2*A))
1045 PRINT "H=";H;" Y=";Y
1046 LET I=.5*(T*Y**3)+B*(D-Y)**3-(B-T)*(D-Y-F)**3
1048 LET Z=I/Y
1050 LET K=SQR (I/A)
1052 GOTO 564
1100 PRINT "[gfx] + SECTION [gfx]"
1101 LET N=11
1102 PRINT " : :"
1104 PRINT " -+ +-T"
1106 PRINT " [gfx]------+-"
1108 PRINT " [gfx] :"
1110 PRINT " : [gfx] D"
1112 PRINT "-+- [gfx] :"
1114 PRINT " [gfx]-+-:"
1116 PRINT "-+- [gfx] : :"
1118 PRINT " : : [gfx] : Y :"
1120 PRINT " F : [gfx] : : :"
1122 PRINT " : [gfx]---+-+-"
1124 PRINT " : :"
1126 PRINT " +--B--+"
1128 PRINT " : :"
1130 PRINT "T=";
1132 INPUT T
1134 PRINT T;" F=";
1135 INPUT F
1136 PRINT F;" D=";
1137 INPUT D
1138 PRINT D;" B=";
1140 INPUT B
1142 LET A=D*T+F*(B-T)
1144 LET Y=D/2
1146 LET I=((T*D**3)+(F**3)*(B-T))/12
1146 LET Z=I/Y
1150 LET K=SQR (I/A)
1152 PRINT B;" Y=";Y
1154 GOTO 564
1200 PRINT "[gfx] MATERIALS TABLE [gfx]"
1205 PRINT
1210 PRINT "1 CLASS 25 CAST GRAY IRON"
1215 PRINT "2 DUCTILE (NODULAR) CAST IRON"
1220 PRINT "3 1025 LOW CARBON STEEL"
1225 PRINT "4 30302 STAINLESS STEEL"
1230 PRINT "5 51430 STAINLESS STEEL"
1235 PRINT "6 6063 T5 ALUMINUM"
1240 PRINT "7 6061 T6 ALUMINUM"
1245 PRINT "8 NO.2 STRUCTURAL DOUGLAS FIR"
1250 PRINT "9 INJ. MOLDED ABS OR HIS"
1255 PRINT "10 MOLDED NYLON 6+40 PCT. GLASS"
1260 PRINT
1265 PRINT "ENTER APPROPRIATE MATERIAL CODE"
1270 INPUT Q
1275 PRINT
1280 PRINT
1300 IF Q=1 THEN LET E=14.2
1305 IF Q=1 THEN LET S=25000
1310 IF Q=2 THEN LET E=25
1315 IF Q=2 THEN LET S=80000
1320 IF Q=3 THEN LET E=30
1325 IF Q=3 THEN LET S=80000
1330 IF Q=4 THEN LET E=28
1335 IF Q=4 THEN LET S=105000
1340 IF Q=5 THEN LET E=29
1345 IF Q=5 THEN LET S=60000
1355 IF Q=6 THEN LET E=10.3
1360 IF Q=6 THEN LET S=29000
1365 IF Q=7 THEN LET E=11.4
1370 IF Q=7 THEN LET S=48000
1375 IF Q=8 THEN LET E=1.3
1380 IF Q=8 THEN LET S=1300
1385 IF Q=9 THEN LET E=.29
1390 IF Q=9 THEN LET S=5500
1395 IF Q=10 THEN LET E=1.5
1400 IF Q=10 THEN LET S=26000
1405 PRINT
1410 LET E=E*10**6
1415 PRINT "TENSILE=";S;" MOD.EL.=";E
1420 PRINT
1425 PRINT "PRESS ""ENTER"" TO CONTINUE"
1430 INPUT A$
1435 CLS
1440 GOTO 2000
1500 PRINT "ENT:(1)SEC(2)MAT(3)LOAD(4)RECALC"
1510 INPUT N
1515 CLS
1520 IF N=1 THEN GOTO 10
1530 IF N=2 THEN GOTO 1200
1540 IF N=3 THEN GOTO 2000
1545 IF N=4 THEN GOTO 3500
1550 STOP
1600 PRINT "SECTION AREA =";A
1610 PRINT "SECTION MODULUS =";Z
1620 PRINT "MOMENT OF INERTIA =";I
1622 PRINT "RAD. OF GYRATION=";K
1630 RETURN
1900 PRINT "SHAPE NOT YET PROGRAMMED","PRESS ""ENTER"" TO RETURN SHAPE TABLE"
1910 INPUT A$
1915 CLS
1920 GOTO 10
1930 STOP
2000 PRINT "[gfx] BEAM LOAD TABLE [gfx]"
2001 LET X=0
2002 PRINT
2004 PRINT "WWWWWWWWW"
2006 PRINT "[gfx] 1 SUPPORTED BOTH ENDS"
2008 PRINT "[gfx] [gfx] UNIFORM LOAD"
2009 GOSUB 2070
2010 PRINT TAB 4;"W"
2012 PRINT "[gfx] 2 SUPPORTED BOTH ENDS"
2014 PRINT "[gfx] [gfx] CENTRAL LOAD"
2015 GOSUB 2070
2016 PRINT TAB 2;"W"
2018 PRINT "[gfx] 3 SUPPORTED BOTH ENDS"
2020 PRINT "[gfx] [gfx] LOAD OFF-CENTER"
2021 PRINT
2022 GOSUB 2070
2023 PRINT "[gfx]WWWWWWW 4 FIXED ONE END"
2024 PRINT "[gfx] UNIFORM LOAD"
2026 PRINT "[gfx]"
2027 GOSUB 2070
2028 PRINT "[gfx] W 5 FIXED ONE END"
2030 PRINT "[gfx] LOADED OTHER"
2032 PRINT "[gfx]"
2033 GOSUB 2070
2034 PRINT "[gfx]WWWWW[gfx] 6 FIXED BOTH ENDS"
2036 PRINT "[gfx] UNIFORM LOAD"
2038 PRINT "[gfx] [gfx]"
2039 GOSUB 2070
2040 PRINT TAB 3;"**ENTER APPROPRIATE CODE**"
2045 INPUT X
2050 CLS
2055 GOTO 2000+(X*100)
2060 STOP
2070 IF X>0 THEN GOTO 2020+(X*100)
2075 RETURN
2080 STOP
2100 LET X=1
2110 GOTO 2004
2120 PRINT
2130 GOSUB 3000
2140 LET S2=-(W*L)/(8*Z)
2150 LET U=(5*(W*(L**3)))/(384*E*I)
2160 GOTO 3500
2170 STOP
2200 LET X=2
2210 GOTO 2010
2220 PRINT
2230 GOSUB 3000
2240 LET S2=(W*L)/(4*Z)
2250 LET U=(W*(L**3))/(48*E*I)
2260 GOTO 3500
2270 STOP
2300 LET X=3
2310 GOTO 2016
2320 PRINT
2330 GOSUB 3000
2340 LET S2=(W*(X1*(L-X1)))/(Z*L)
2345 LET V=SQR (((I/3)+(2*X1))/(3*(L-X1)))*(L-X1)
2350 LET U=(W*X1*(V**3))/(3*E*I*L)
2360 GOTO 3500
2370 STOP
2400 LET X=4
2410 GOTO 2023
2420 PRINT
2430 GOSUB 3000
2440 LET S2=(W*L)/(2*Z)
2450 LET U=(W*(L**3))/(8*E*I)
2460 GOTO 3500
2470 STOP
2500 LET X=5
2510 GOTO 2028
2520 PRINT
2530 GOSUB 3000
2540 LET S2=(W*L)/Z
2550 LET U=(W*(L**3))/(3*E*I)
2560 GOTO 3500
2570 STOP
2600 LET X=6
2610 GOTO 2034
2620 PRINT
2630 GOSUB 3000
2640 LET S2=(W*L)/(12*Z)
2650 LET U=(W*(L**3))/(384*E*I)
2560 GOTO 3500
2670 STOP
3000 PRINT "W (LOAD IN LBS.)=";
3010 INPUT W
3020 PRINT W
3030 PRINT "L (BEAM LENGTH-IN.)=";
3040 INPUT L
3050 PRINT L
3060 IF X<>3 THEN GOTO 3100
3070 PRINT "X (DIST-W TO NEAR SUPP)=";
3080 INPUT X1
3090 PRINT X1
3100 RETURN
3500 PRINT
3502 PRINT "LOAD=";W*L;" IN.LBS."
3503 PRINT "SECTION =";D;"X";B;"X";T
3504 PRINT "MATL. STRENGTH (T)=";S;" PSI"
3505 PRINT "STRESS (CRIT.PT.)=";S2;" PSI"
3510 PRINT "DEFL.(CRIT. PT.)=";U;" IN."
3520 PRINT
3525 IF S2<S THEN GOTO 3650
3530 PRINT
3500 FOR N=1 TO 10
3505 PRINT AT 14,9;" "
3610 PAUSE 30
3615 PRINT AT 14,9;"[inv OVERSTRESS]"
3620 PAUSE 60
3630 NEXT N
3550 PRINT
3655 GOTO 1500
9999 STOP

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.