76
3D Frame Analysis Analysis of a 3D frame subject to distributed loads, point loads and Principal Axes Beam principal axes are defined in the same way as in the FEA program i.e. the Z axis is in effect defined as the vertical axis in the mode Units Any consistent units may be used. Solvers Three alternative solvers are available from the dropdown box on the " The Alglib Sparse Solver is by far the fastest, but may not con The compiled solver is recommended for cases where the sparse s The VBA solver is provided for cases where the necessary dll fi For instructions on installing the dll file see: End Releases Truss members transmitting axial load only may be defined by setting I Output Clicking the "Recalculate" button generates node results (deflections Beam results relative to beam principal axes are generated by clicking Intermediate results may be generated for any number of points. After generating beam results, results for selected beams may be plott i3 – is the unit vector directed from Node 1 to Node 2. i2 – is the unit vector arising from i2 = Z × i3 where Z is the i1 – completes the right-handed system such that i1 × i2 = i3 This procedure in effect creates the i2 Axis parallel to the XY plane, If the i3 axis is parallel to the Z axis then the i2 axis is parallel Beam principal axes may be rotated about the i3 axis by an angle speci Positive rotation is clockwise when looking in the positive i3 directi http://newtonexcelbach.wordpress.com/2012/11/16/frame4-now-with Beam end may be released for translation or rotation. Note all end re

3DFrame

Embed Size (px)

DESCRIPTION

3D FRAM ANALYSIS IN EXCEL

Citation preview

Page 1: 3DFrame

3D Frame AnalysisAnalysis of a 3D frame subject to distributed loads, point loads and moments

Principal AxesBeam principal axes are defined in the same way as in the FEA program Strand7:

i.e. the Z axis is in effect defined as the vertical axis in the model, and the XY plane is horizontal.

UnitsAny consistent units may be used.

SolversThree alternative solvers are available from the dropdown box on the "Output" sheet:

The Alglib Sparse Solver is by far the fastest, but may not converge for some problems.The compiled solver is recommended for cases where the sparse solver does not perform well.The VBA solver is provided for cases where the necessary dll files for the compiled and sparse solvers are not installed

For instructions on installing the dll file see:

End Releases

Truss members transmitting axial load only may be defined by setting I1, I2 and J to zero.

OutputClicking the "Recalculate" button generates node results (deflections and reactions) and forces and deflections at beam ends.Beam results relative to beam principal axes are generated by clicking the "Recalculate beam results" button.Intermediate results may be generated for any number of points.After generating beam results, results for selected beams may be plotted on the Plot Beam" sheet.

i3 – is the unit vector directed from Node 1 to Node 2.i2 – is the unit vector arising from i2 = Z × i3 where Z is the unit vector in the global Z directioni1 – completes the right-handed system such that i1 × i2 = i3

This procedure in effect creates the i2 Axis parallel to the XY plane, and the i1 Axis in the plane parallel to the Z axis;

If the i3 axis is parallel to the Z axis then the i2 axis is parallel to the Y axis in the positive direction.

Beam principal axes may be rotated about the i3 axis by an angle specified in the beam connections range.Positive rotation is clockwise when looking in the positive i3 direction.

http://newtonexcelbach.wordpress.com/2012/11/16/frame4-now-with-added-alglib/

Beam end may be released for translation or rotation. Note all end releases are relative to the global

Page 2: 3DFrame

The compiled solver is recommended for cases where the sparse solver does not perform well.The VBA solver is provided for cases where the necessary dll files for the compiled and sparse solvers are not installed

Clicking the "Recalculate" button generates node results (deflections and reactions) and forces and deflections at beam ends.Beam results relative to beam principal axes are generated by clicking the "Recalculate beam results" button.

After generating beam results, results for selected beams may be plotted on the Plot Beam" sheet.

is the unit vector in the global Z direction

Axis in the plane parallel to the Z axis;

axis is parallel to the Y axis in the positive direction.

axis by an angle specified in the beam connections range.

Beam end may be released for translation or rotation. Note all end releases are relative to the global axes.

Page 3: 3DFrame

3D Frame AnalysisAnalysis of a 3D frame subject to distributed loads, point loads and moments

Beam Property Types 3

Property Number Area I1 I2 J1 0.5 0.01041667 0.04166667 0.02908333 200000002 1.8000E-01 5.4000E-03 1.3500E-03 3.7692E-03 200000003 1.8000E-01 5.4000E-03 1.3500E-03 3.7692E-03 20000000

Young's Modulus

Page 4: 3DFrame

Node Coordinates 8

Shear Area1 Shear Area2 Shear Modulus Number X Y

0.00E+00 0.00E+00 8,000,000 1 0.00 0.00

0.00E+00 0.00E+00 8,000,000 2 5.00 0.008,000,000 3 0.00 0.00

4 5.00 0.005 0.00 5.006 5.00 5.007 0.00 5.008 5.00 5.00

Page 5: 3DFrame

Enter "F" for fixed restraint, or displacement value for prescribed displacement (rotation in radians)Node Restraints 4

Z Number X Y Z MX0.00 1 F F F F0.00 2 F F F F3.00 5 F F F F3.00 6 F F F F0.000.003.005.00

Page 6: 3DFrame

Enter "F" for fixed restraint, or displacement value for prescribed displacement (rotation in radians)Beam Connections 11

MY MZ Beam Number Property Type Node 1 Node 2F F 1 1 1 3F F 2 1 2 4F F 3 1 5 7F F 4 1 6 8

5 2 3 46 2 7 87 2 4 88 3 3 79 3 3 8

10 3 4 711 2 5 4

Page 7: 3DFrame

Beam End Releases 0 0

DX1 DY1 DZ1 MX1 MY1 MZ1 DX2

000000

300

600

45

Rotation degrees

Beam Number

Page 8: 3DFrame

DY2 DZ2 MX2 MY2 MZ2

1703170417051706255825592560341034113412

Page 9: 3DFrame

1111111111

Page 10: 3DFrame

0 0 1 -1 1.224606E-16 0 -1.22E-16 -11.18E-17 0.192424 0.981312 1 -1.213435E-16 1.18E-17 1.21E-16 0.9813121.42E-17 0.232497 0.972597 1 -1.208099E-16 1.42E-17 1.21E-16 0.9725971.66E-17 0.27103 0.962571 1 -1.201959E-16 1.66E-17 1.2E-16 0.9625711.89E-17 0.308235 0.95131 1 -1.195065E-16 1.89E-17 1.2E-16 0.951312.11E-17 0.34429 0.938863 1 -1.187443E-16 2.11E-17 1.19E-16 0.9388632.32E-17 0.379345 0.925255 1 -1.179111E-16 2.32E-17 1.18E-16 0.9252552.53E-17 0.413525 0.910493 1 -1.170072E-16 2.53E-17 1.17E-16 0.9104932.74E-17 0.446929 0.894569 1 -1.160322E-16 2.74E-17 1.16E-16 0.8945692.94E-17 0.479635 0.877468 1 -1.149851E-16 2.94E-17 1.15E-16 0.8774683.13E-17 0.511699 0.859165 1 -1.138644E-16 3.13E-17 1.14E-16 0.8591653.33E-17 0.543154 0.839633 1 -1.126684E-16 3.33E-17 1.13E-16 0.8396333.52E-17 0.574015 0.818845 1 -1.113955E-16 3.51E-17 1.11E-16 0.818845

3.7E-17 0.604277 0.796774 1 -1.100442E-16 3.7E-17 1.1E-16 0.7967743.88E-17 0.633916 0.773402 1 -1.086131E-16 3.88E-17 1.09E-16 0.773402

Page 11: 3DFrame

0-0.192424-0.232497

-0.27103-0.308235

-0.34429-0.379345-0.413525-0.446929-0.479635-0.511699-0.543154-0.574015-0.604277-0.633916

Page 12: 3DFrame

Input2

Page 12

3D Frame AnalysisAnalysis of a 3D frame subject to distributed loads, point loads and moments

Applied Loads

For distributed loads specify length from the ends of the start and end of the load, and the load intensity at the start and end.

For Point loads and moments specify the position and magnitude

Positions and load lengths are measured along the beam axis.

Distributed and point load direction is either "X", "Y" or "Z", relative to the global axes

0

Beam No Distributed Loads

10 Direction X/Y/Z a Load/m start Load/m end

1 X 0 1.00E+01 1.00E+01

3 X 0 10 10

5 Y 1 -10 -20

6 Z 0 -10 -10

7 Y 0 -10 -20

8 Z 0 -10 -10

9 Z 1.46969385 -10 -20

10 Y 1.41421356

4 Z 0.5 10 20

2 Y

Page 13: 3DFrame

Input2

Page 13

Page 14: 3DFrame

Input2

Page 14

Analysis of a 3D frame subject to distributed loads, point loads and moments

For distributed loads specify length from the ends of the start and end of the load, and the load intensity at the start and end.

Distributed Loads Point Loads Moments

b Position Load Position Moment

0 2.25 150

0

1.5 2 -100

0

0 1.346291202 100 4.0388736054 100 5.385 0.2500076512

0

2.204540768505 5.5113519213 -100 2.204540769

2.12132034356

1 2 100 1 100

1.5 1.00E+02

Page 15: 3DFrame

Input2

Page 15

Page 16: 3DFrame

Input2

Page 16

0.75002295

Page 17: 3DFrame

Input2

Page 17

Element Actions

Page 18: 3DFrame

Input2

Page 18

0.00%

Page 19: 3DFrame

Input2

Page 19

0.00% 0.00% 0.00% 0.00% 0.00%

Page 20: 3DFrame

3D Frame AnalysisAnalysis of a 3D frame subject to distributed loads, point loads and moments

Equilibrium checkAlglib sparse solver Total applied forces

Total output reactionsOutput error

Node Results Beam End Results

Deflection FX FYDX1 0.0000E+00 -33.715 1-1 -33.71 -31.85DY1 0.0000E+00 -31.846 1-2 -3.71 -31.85DZ1 0.0000E+00 75.284 2-1 -6.51 -64.58RX1 0.0000E+00 9.169 2-2 -6.51 35.42RY1 0.0000E+00 -80.163 3-1 -4.33 -0.47RZ1 0.0000E+00 -5.185 3-2 25.67 -0.47DX2 0.0000E+00 -6.510 4-1 3.18 -4.34DY2 0.0000E+00 -64.576 4-2 3.18 -4.34DZ2 0.0000E+00 11.077 5-1 0.24 21.87RX2 0.0000E+00 61.005 5-2 0.24 -15.63RY2 0.0000E+00 -60.397 6-1 -3.88 -0.48RZ2 0.0000E+00 -15.751 6-2 -3.88 -0.48DX3 2.9132E-04 0.000 7-1 5.13 11.02DY3 -2.8734E-04 0.000 7-2 5.13 30.25DZ3 -2.2585E-05 0.000 8-1 0.48 -28.29RX3 9.0821E-04 0.000 8-2 0.48 -28.29RY3 9.1975E-03 0.000 9-1 -4.43 -25.43RZ3 3.8307E-03 0.000 9-2 -4.43 -25.43DX4 2.9099E-04 0.000 10-1 -30.02 28.28DY4 1.9287E-04 0.000 10-2 -30.02 28.28DZ4 -3.3231E-06 0.000 11-1 -18.62 19.52RX4 -1.3541E-03 0.000 11-2 -18.62 19.52RY4 1.0444E-02 0.000RZ4 1.1636E-02 0.000DX5 0.0000E+00 -22.952DY5 0.0000E+00 19.041DZ5 0.0000E+00 36.886RX5 0.0000E+00 -10.686RY5 0.0000E+00 10.254RZ5 0.0000E+00 -2.623DX6 0.0000E+00 3.176DY6 0.0000E+00 -4.342DZ6 0.0000E+00 -116.782RX6 0.0000E+00 8.826RY6 0.0000E+00 7.991RZ6 0.0000E+00 -87.258DX7 -3.5402E-05 0.000DY7 -2.4805E-04 0.000DZ7 -1.4524E-05 0.000RX7 9.6703E-03 0.000RY7 -2.5195E-04 0.000

Recalculate

Page 21: 3DFrame

RZ7 2.5972E-03 0.000DX8 -4.0454E-05 0.000DY8 9.5421E-05 0.000DZ8 1.4974E-05 0.000RX8 2.7882E-03 0.000RY8 -1.7149E-05 0.000RZ8 8.9369E-03 0.000

Page 22: 3DFrame

FX FY FZ60.00 81.72 -6.47

-60.00 -81.72 6.47-4.37E-06 1.41E-05 1.84E-05

Beam End Results Beam

FZ MX MY MZ 175.28 9.17 -80.16 -5.19 175.28 63.63 -24.02 -5.19 111.08 61.01 -60.40 -15.75 111.08 17.28 -40.87 -15.75 148.41 -11.01 9.72 -3.52 148.41 -12.43 -22.28 -3.52 1

-116.78 8.83 7.99 -87.26 135.72 -12.88 -7.89 12.74 126.53 0.24 -6.44 24.28 226.53 0.24 26.20 12.86 225.34 1.94 -22.37 -3.79 2

-28.51 0.99 -22.55 -1.40 225.33 17.70 -18.58 -13.24 225.33 -8.70 71.16 12.41 226.18 22.95 0.99 -0.73 2

-23.82 17.07 0.99 1.66 222.58 40.45 -18.57 -28.73 2

-32.53 20.60 -40.72 -23.75 30.75 1.06 2.67 6.76 30.75 -2.70 -1.08 -1.94 3

-11.53 0.32 0.53 0.89 3-11.53 1.24 -1.24 -3.58 3

3333444444444555555

Page 23: 3DFrame

555666666666777777777888888888999999999

101010101010101010111111

Page 24: 3DFrame

111111111111

Page 25: 3DFrame

Number of segments/beam 8

X Shear1 Shear2 Axial Mom1 Mom2 Torsion

0.00 1976.85 259.62 -64.05 -6007.11 -781.64 187.42620.38 1980.60 259.62 -64.05 -5265.09 -684.28 187.42620.75 1984.35 259.62 -64.05 -4521.66 -586.93 187.42621.13 1988.10 259.62 -64.05 -3776.82 -489.57 187.42621.50 1991.85 259.62 -64.05 -3030.58 -392.21 187.42621.88 1995.60 259.62 -64.05 -2282.94 -294.85 187.42622.25 1999.35 259.62 -64.05 -1533.88 -197.49 187.42622.63 2003.10 259.62 -64.05 -783.42 49.86 187.42623.00 2006.85 259.62 -64.05 -31.56 147.22 187.42620.00 -1642.65 15.30 -443.61 4559.80 -158.43 -250.54180.38 -1642.65 15.30 -443.61 3943.81 -152.69 -250.54180.75 -1642.65 15.30 -443.61 3327.81 -146.95 -250.54181.13 -1642.65 15.30 -443.61 2711.82 -141.21 -250.54181.50 -1642.65 15.30 -443.61 2095.83 -135.47 -250.54181.88 -1642.65 115.30 -443.61 1479.83 -92.23 -250.54182.25 -1642.65 115.30 -443.61 863.84 -49.00 -250.54182.63 -1642.65 115.30 -443.61 247.85 -5.76 -250.54183.00 -1642.65 115.30 -443.61 -368.15 37.48 -250.54180.00 130.70 -434.69 0.00 -373.92 1303.36 174.90310.38 134.45 -434.69 0.00 -324.20 1140.35 174.90310.75 138.20 -434.69 0.00 -273.08 977.35 174.90311.13 141.95 -434.69 0.00 -220.55 814.34 174.90311.50 145.70 -434.69 0.00 -166.62 651.33 174.90311.88 149.45 -434.69 0.00 -111.28 488.32 174.90312.25 153.20 -434.69 0.00 -54.53 325.31 174.90312.63 156.95 -434.69 0.00 3.62 162.30 174.90313.00 160.70 -434.69 0.00 63.18 -0.71 174.90310.00 -22.53 -373.14 142.10 49.01 1499.02 220.60360.63 -22.53 -373.14 140.83 34.93 1265.81 220.60361.25 -22.53 -373.14 133.80 20.84 1032.59 120.60361.88 -22.53 -373.14 125.65 6.76 799.38 120.60362.50 -22.53 -373.14 16.39 -7.32 566.17 120.60363.13 -22.53 -373.14 6.01 -21.40 332.96 120.60363.75 -22.53 -373.14 -5.49 -35.48 99.74 120.60364.38 -22.53 -373.14 -10.40 -49.56 -133.47 120.60365.00 -22.53 -373.14 -10.40 -63.65 -366.68 120.60360.00 -13.99 -68.72 -1817.64 49.38 50.34 -22.29570.63 -13.99 -68.72 -1817.64 40.64 7.39 -22.29571.25 -13.99 -66.10 -1817.64 31.90 -35.24 -22.29571.88 -13.99 -58.44 -1817.64 23.16 -74.24 -22.29572.50 -13.99 -49.22 -1817.64 -85.58 -107.97 -22.29573.13 -13.99 -38.44 -1817.64 -94.33 -135.45 -22.2957

Page 26: 3DFrame

3.75 -13.99 -31.22 -1817.64 -103.07 -156.33 -22.29574.38 -13.99 -31.22 -1817.64 -111.81 -175.85 -22.29575.00 -13.99 -31.22 -1817.64 -120.55 -195.36 -22.29570.00 35.54 -19.05 124.94 -53.55 5.67 -20.28810.67 29.29 -19.05 127.44 -31.73 -7.15 -20.28811.35 23.04 -19.05 129.94 -14.11 -19.98 -20.28812.02 16.79 -19.05 132.44 -0.70 -32.80 -20.2881

2.692582404 10.544313232 -19.047883964 134.9379 8.4995445002 -45.61957198 -20.288066923.365728004 4.29431323201 -19.047883964 137.4379 13.493822564 -58.44157128 -20.288066924.038873605 -1.955686768 -19.047883964 139.9379 14.280940622 -71.26357057 -20.288066924.712019206 -8.205686768 -19.047883964 142.4379 10.860898675 -84.08556987 -20.288066925.385164807 -14.455686768 -19.047883964 144.9379 3.2336967219 -96.90756917 -20.28806692

0 -12.209466569 58.0025313878 -266.032 46.752104687 -103.4271379 -24.03602850.673145601 -9.9090865906 56.6744063878 -259.3914 39.292420027 -64.82123488 -24.03602851.346291202 -7.3380736731 55.1900313878 -251.9695 33.472313716 -27.16194287 -24.03602852.019436803 -36.659803862 72.1189402055 -336.6141 7.8233260323 21.94555914 -24.03602852.692582404 -33.547525067 70.3220652055 -327.6297 -15.821732558 69.89609215 -24.03602853.365728004 -30.164613334 68.3689402055 -317.8641 -37.280686683 116.5844772 -24.03602854.038873605 -26.511068661 66.2595652055 -307.3172 -56.371360971 161.9055352 -24.03602854.712019206 -22.586891051 63.9939402055 -295.9891 -91.481113866 173.5907111 -116.88369765.385164807 -18.392080501 61.5720652055 -283.8797 -105.28870236 215.8615781 -116.8836976

0 28.1274533778 81.5996114101 -117.7309 -52.881509522 -200.5112322 1.87112621310.625 21.8774533778 81.5996114101 -117.7309 -37.254976161 -149.511475 1.8711262131

1.25 15.6274533778 81.5996114101 -117.7309 -25.5346928 -98.51171789 1.87112621311.875 9.37745337781 81.5996114101 -117.7309 -17.720659439 -47.51196076 1.8711262131

2.5 3.12745337781 81.5996114101 -117.7309 -13.812876078 3.487796371 1.87112621313.125 -3.1225466222 81.5996114101 -117.7309 -13.811342716 54.4875535 1.8711262131

3.75 -9.3725466222 81.5996114101 -117.7309 -17.716059355 105.4873106 1.87112621314.375 -15.622546622 81.5996114101 -117.7309 -25.527025994 156.4870678 1.8711262131

5 -21.872546622 81.5996114101 -117.7309 -37.244242633 207.4868249 1.87112621310 27.7073066642 0.71409401578 -136.5846 -71.504114279 30.56595296 -28.02679826

0.918558654 27.7073066642 0.71409401578 -136.5846 -46.053327977 31.2218902 -28.026798261.837117307 25.8511513635 3.92904930319 -135.5346 -20.938126518 32.45907743 -28.026798262.755675961 20.4373650701 13.3060022248 -132.4721 0.4058049405 40.22829592 -28.026798263.674234614 13.918724431 24.5966190079 -128.7846 16.26941939 57.48970191 -28.026798264.592793268 6.29522944636 37.8008996526 -124.4721 25.637843312 86.0011079 -28.026798265.511351921 1.19080236967 46.642026693 -121.5846 -55.176785778 78.26405395 -0.8102455636.429910575 1.19080236967 46.642026693 -121.5846 -54.082963957 121.1074912 -0.8102455637.348469228 1.19080236967 46.642026693 -121.5846 -52.989142135 163.9509284 -0.810245563

0 8.47384360646 -25.098182029 -500.2841 -54.046908973 157.6850698 -22.136870620.883883476 8.47384360646 -25.098182029 -500.2841 -46.557018627 135.5012014 -22.136870621.767766953 8.47384360646 -25.098182029 -500.2841 -39.067128281 113.317333 -22.136870622.651650429 8.47384360646 -25.098182029 -500.2841 -31.577237934 91.13346466 -22.136870623.535533906 8.47384360646 -25.098182029 -500.2841 -24.087347588 68.94959628 -22.136870624.419417382 8.47384360646 -25.098182029 -500.2841 -16.597457242 46.76572789 -22.136870625.303300859 8.47384360646 -25.098182029 -500.2841 -9.1075668963 24.58185951 -22.136870626.187184335 8.47384360646 -25.098182029 -500.2841 -1.6176765503 2.397991121 -22.136870627.071067812 8.47384360646 -25.098182029 -500.2841 5.8722137958 -19.78587726 -22.13687062

0 -21.940627432 73.1271008205 760.95716 59.53510678 -394.4499822 -30.849819890.960143218 -21.940627432 73.1271008205 760.95716 38.468962141 -324.2374922 -30.849819891.920286437 -21.940627432 73.1271008205 760.95716 17.402817503 -254.0250023 -30.84981989

Page 27: 3DFrame

2.880429655 -21.940627432 73.1271008205 760.95716 -3.6633271352 -183.8125123 -30.849819893.840572874 -21.940627432 73.1271008205 760.95716 -24.729471774 -113.6000224 -30.849819894.800716092 -21.940627432 73.1271008205 760.95716 -45.795616412 -43.38753246 -30.849819895.760859311 -21.940627432 73.1271008205 760.95716 -66.86176105 26.82495748 -30.849819896.721002529 -21.940627432 73.1271008205 760.95716 -87.927905688 97.03744742 -30.849819897.681145748 -21.940627432 73.1271008205 760.95716 -108.99405033 167.2499374 -30.84981989

Page 28: 3DFrame

D1 D2 D3 R1 R2 R3

1.00E-02 0.00E+00 0.00E+00 0.00E+00 5.73E-01 0.00E+001.33E-02 -2.53E-04 -2.40E-06 7.56E-02 4.28E-01 1.73E-021.56E-02 -9.68E-04 -4.80E-06 1.41E-01 3.01E-01 3.46E-021.73E-02 -2.08E-03 -7.21E-06 1.97E-01 1.94E-01 5.19E-021.82E-02 -3.52E-03 -9.61E-06 2.42E-01 1.07E-01 6.92E-021.87E-02 -5.23E-03 -1.20E-05 2.78E-01 3.82E-02 8.65E-021.88E-02 -7.13E-03 -1.44E-05 3.03E-01 -1.10E-02 1.04E-011.86E-02 -9.12E-03 -1.68E-05 3.03E-01 -4.09E-02 1.21E-011.83E-02 -1.11E-02 -1.92E-05 2.93E-01 -5.14E-02 1.38E-010.00E+00 1.00E-02 0.00E+00 0.00E+00 0.00E+00 5.73E-013.67E-04 9.95E-03 -1.66E-05 1.60E-02 1.10E-01 5.50E-011.40E-03 9.79E-03 -3.33E-05 3.15E-02 2.03E-01 5.27E-012.99E-03 9.54E-03 -4.99E-05 4.64E-02 2.81E-01 5.04E-015.05E-03 9.19E-03 -6.65E-05 6.06E-02 3.43E-01 4.80E-017.45E-03 8.75E-03 -8.32E-05 7.24E-02 3.89E-01 4.57E-011.01E-02 8.25E-03 -9.98E-05 7.96E-02 4.20E-01 4.34E-011.29E-02 7.72E-03 -1.16E-04 8.25E-02 4.34E-01 4.11E-011.58E-02 7.18E-03 -1.33E-04 8.08E-02 4.32E-01 3.88E-010.00E+00 0.00E+00 1.00E-02 5.73E-01 0.00E+00 0.00E+00-3.02E-05 -3.33E-03 1.00E-02 4.47E-01 -9.00E-03 1.62E-02-1.15E-04 -5.89E-03 1.00E-02 3.38E-01 -1.67E-02 3.23E-02-2.46E-04 -7.79E-03 1.00E-02 2.45E-01 -2.31E-02 4.85E-02-4.14E-04 -9.14E-03 1.00E-02 1.70E-01 -2.81E-02 6.46E-02-6.10E-04 -1.00E-02 1.00E-02 1.11E-01 -3.17E-02 8.08E-02-8.25E-04 -1.06E-02 1.00E-02 6.91E-02 -3.38E-02 9.69E-02-1.05E-03 -1.10E-02 1.00E-02 4.39E-02 -3.45E-02 1.13E-01-1.27E-03 -1.12E-02 1.00E-02 3.56E-02 -3.36E-02 1.29E-010.00E+00 0.00E+00 1.00E-02 5.73E-01 0.00E+00 0.00E+001.04E-05 -4.92E-03 1.00E-02 3.35E-01 1.80E-03 3.40E-023.71E-05 -7.46E-03 1.00E-02 1.38E-01 3.00E-03 6.18E-027.37E-05 -8.07E-03 1.00E-02 -1.96E-02 3.59E-03 8.03E-021.13E-04 -7.18E-03 1.00E-02 -1.37E-01 3.58E-03 9.89E-021.50E-04 -5.23E-03 1.00E-02 -2.14E-01 2.97E-03 1.17E-011.76E-04 -2.65E-03 1.00E-02 -2.51E-01 1.74E-03 1.36E-011.85E-04 1.14E-04 1.00E-02 -2.49E-01 -8.37E-05 1.55E-011.72E-04 2.63E-03 1.00E-02 -2.06E-01 -2.52E-03 1.73E-01

-1.92E-05 1.11E-02 1.83E-02 -1.38E-01 5.14E-02 2.93E-018.77E-04 9.63E-03 1.80E-02 -1.29E-01 1.11E-01 2.66E-012.36E-03 8.21E-03 1.76E-02 -1.34E-01 1.59E-01 2.40E-014.31E-03 6.66E-03 1.73E-02 -1.52E-01 1.96E-01 2.13E-016.13E-03 4.85E-03 1.70E-02 -1.82E-01 1.14E-01 1.87E-016.73E-03 2.65E-03 1.67E-02 -2.23E-01 -4.81E-03 1.60E-01

Page 29: 3DFrame

5.98E-03 -3.57E-05 1.64E-02 -2.71E-01 -1.36E-01 1.34E-013.73E-03 -3.29E-03 1.61E-02 -3.26E-01 -2.78E-01 1.07E-01

-1.33E-04 -7.18E-03 1.58E-02 -3.88E-01 -4.32E-01 8.08E-021.26E-02 1.12E-02 3.68E-03 -1.07E-01 3.36E-02 8.10E-021.26E-02 9.99E-03 3.71E-03 -1.07E-01 -2.68E-02 5.51E-021.21E-02 8.70E-03 3.73E-03 -1.12E-01 -5.90E-02 2.91E-021.13E-02 7.34E-03 3.75E-03 -1.21E-01 -6.91E-02 3.17E-03

0.0105513173 0.0058359847 0.0037790647 -0.135294156 -0.063056803 -0.0227810850.0098987203 0.0041418 0.0038045297 -0.153875044 -0.046847674 -0.0487308330.0094666984 0.0022024178 0.0038304623 -0.17703486 -0.026509302 -0.0746805810.0092684611 -3.5958E-05 0.0038568623 -0.204773601 -0.008051441 -0.100630329

0.009246612 -0.002627123 0.0038837297 -0.237091268 0.0025161502 -0.1265800770.0054604478 0.0150369618 0.0066156524 -0.213252431 -0.029782765 0.54542549580.0054809044 0.0123417248 0.0065665171 -0.24326782 0.0314884577 0.51468186290.0061630755 0.0093741927 0.0065186965 -0.259662363 0.0832531736 0.4839382301

0.007348982 0.0063010729 0.0064549757 -0.260560921 0.1125200432 0.45319459720.0086689853 0.0033196235 0.0063928617 -0.244125917 0.1065579568 0.42245096440.0097265192 0.000630989 0.0063325007 -0.210789302 0.0683595607 0.39170733150.0101617056 -0.001568982 0.0062740388 -0.161020589 0.0011777311 0.3609636986

0.009498591 -0.003157648 0.0062176221 -0.106812869 -0.118000249 0.21146190020.0073040247 -0.004018549 0.0061633966 -0.037224759 -0.25887522 0.0619601019-1.92151E-05 0.0182771207 -0.011073153 -0.138465005 0.2926570536 -0.051371191

0.0028306785 0.016434831 -0.011093592 -0.196494009 0.2333151755 -0.0491490760.0051368728 0.0140517734 -0.011114031 -0.237612881 0.1921082185 -0.0469269610.0070689321 0.011312409 -0.011134471 -0.261821621 0.1638553575 -0.0447048450.0087399066 0.0084011987 -0.01115491 -0.269120229 0.1433757677 -0.042482730.0102063325 0.0055026034 -0.01117535 -0.259508704 0.1254886241 -0.0402606150.0114682321 0.002801084 -0.011195789 -0.232987048 0.1050131017 -0.03803850.0124691134 0.0004811015 -0.011216228 -0.189555259 0.0767683755 -0.0358163850.0130959706 -0.001272883 -0.011236668 -0.129213338 0.0355736205 -0.033594270.0172708513 0.0115935626 0.0048964498 -0.254074678 0.0464591585 0.201859636

0.017030983 0.007640522 0.0048615995 -0.239019745 -0.068114794 0.15294218230.0153518102 0.0039314622 0.004826802 -0.223607706 -0.133165519 0.10402472850.0130073567 0.0004807366 0.0047925971 -0.206246824 -0.152368972 0.05510727470.0106613129 -0.002649526 0.0047592533 -0.182858483 -0.135144316 0.00618982090.0088067739 -0.005323325 0.0047269301 -0.148388739 -0.093163133 -0.0427276330.0077341334 -0.007316891 0.0046956832 -0.097001059 -0.039904319 -0.0916450870.0062379521 -0.008510495 0.0046646603 -0.048423136 -0.146391165 -0.0930592740.0030516783 -0.008757947 0.0046336373 0.0210328449 -0.250745889 -0.094473462-0.000133082 0.0162147527 -0.006062809 -0.387865198 0.3628368132 0.24852086160.0047184761 0.0107748669 -0.00618564 -0.319125515 0.2684874825 0.21134211840.0082228979 0.0063151691 -0.006308472 -0.260788175 0.188186632 0.17416337520.0105969052 0.0026751859 -0.006431303 -0.212853178 0.1219342616 0.1369846320.0120572193 -0.000305556 -0.006554134 -0.175320524 0.0697303714 0.09980588870.0128205615 -0.002787531 -0.006676966 -0.148190213 0.0315749614 0.06262714550.0131036532 -0.004931213 -0.006799797 -0.131462245 0.0074680316 0.02544840230.0131232158 -0.006897074 -0.006922628 -0.12513662 -0.002590418 -0.0117303410.0130959706 -0.008845588 -0.00704546 -0.129213338 0.0013996125 -0.0489090840.0065094553 -0.006509455 0.0039056732 0.398368214 -0.174589853 0.37296393420.0044802281 -0.001417337 0.0041086253 0.2153286486 -0.074748836 0.31668159820.0037644666 0.0009071286 0.0043115775 0.0680533454 -0.017829818 0.2603992622

Page 30: 3DFrame

0.0036428986 0.0010632676 0.0045145297 -0.043457696 -0.0038328 0.20411692620.0033962516 -0.000349595 0.0047174819 -0.119204474 -0.032757782 0.14783459020.0023052535 -0.002732133 0.0049204341 -0.159186991 -0.104604764 0.0915522542-0.000349368 -0.005485023 0.0051233862 -0.163405245 -0.219373746 0.0352699182-0.005286885 -0.008008938 0.0053263384 -0.131859237 -0.377064728 -0.021012418-0.013226571 -0.009704552 0.0055292906 -0.064548967 -0.577677709 -0.077294754

Page 31: 3DFrame

1 2 3 4 5 6Frame resultsSupport ReactionsStrand7 Results

FX FY FZ MX MY MZ(kN) (kN) (kN) (kNm) (kNm) (kNm)

Node 1 -33.71 -31.85 75.28 9.17 -80.16 -5.19Node 2 -6.51 -64.58 11.08 61.01 -60.40 -15.75Node 5 -22.95 19.04 36.89 -10.69 10.25 -2.62Node 6 3.18 -4.34 -116.78 8.83 7.99 -87.26

3DFrame ResultsFX FY FZ MX MY MZ

(kN) (kN) (kN) (kNm) (kNm) (kNm)1 -33.71 -31.85 75.28 9.17 -80.16 -5.192 -6.51 -64.58 11.08 61.01 -60.40 -15.755 -22.95 19.04 36.89 -10.69 10.25 -2.626 3.18 -4.34 -116.78 8.83 7.99 -87.26

3DFrame - Strand7FX FY FZ MX MY MZ

(kN) (kN) (kN) (kNm) (kNm) (kNm)1 0.00 0.00 0.00 0.00 0.00 0.002 0.00 0.00 0.00 0.00 0.00 0.005 0.00 0.00 0.00 0.00 0.00 0.006 0.00 0.00 0.00 0.00 0.00 0.00

Page 32: 3DFrame

Plot Frame

Vertical axis Y/Z Y

Page 33: 3DFrame

PlotScale 0.9View Target offset:Centre XCentre YCentre Z

Viewdistance 2000000View angle - plan 0 degreesView angle - elev 0 degreesView angle - rotn 0 degreesDeflection factor 2000

Reselect and draw frame

Redraw frame

Page 34: 3DFrame
Page 35: 3DFrame

Plot beam actions and deflections for selected beamsBeam Numbers

Series 1 2Series 2 5Series 3 8Series 4Series 5Series 6

Beam Action: Bending Moment 1

0 1 2 3 4 5 6-60

-40

-20

0

20

40

60

Beam 2 Beam 5 Beam 8Distance along beam, m

Bend

ing

Mom

ent 1

Re-plot Chart

Page 36: 3DFrame

Beam Numbers

-44.1763 35.7439Beam 2 Beam 5 Beam 8

X Mom1 X Mom1 X Mom10 -44.1763 0 -9.998851 0 -33.57173

0.25 -40.49494 0.416667 1.436836 0.416667 -21.225480.5 -36.81359 0.833333 12.87252 0.833333 -10.61533

0.75 -33.13223 1.25 24.30821 1.25 -1.7413011 -29.45087 1.666667 35.7439 1.666667 5.396621

1.25 -25.76951 2.083333 -52.82042 2.083333 10.798431.5 -22.08815 2.5 -41.38473 2.5 14.46413

1.75 -18.40679 2.916667 -29.94904 2.916667 16.393722 -14.72543 3.333333 -18.51336 3.333333 16.5872

2.25 -11.04408 3.75 -7.077669 3.75 15.044572.5 -7.362717 4.166667 4.358018 4.166667 11.76582

2.75 -3.681359 4.583333 15.79371 4.583333 6.7509673 -1.42E-14 5 27.22939 5 0

0 1 2 3 4 5 6-60

-40

-20

0

20

40

60

Beam 2 Beam 5 Beam 8Distance along beam, m

Bend

ing

Mom

ent 1

Re-plot Chart

Page 37: 3DFrame

Beam 8

Page 38: 3DFrame
Page 39: 3DFrame
Page 40: 3DFrame
Page 41: 3DFrame
Page 42: 3DFrame
Page 43: 3DFrame

Sparse solver time 0.000 s Factor x Sparse SolverGammaA Compiled solver time 0.00 s 1.8

0.0000 VBA solver time 0.000.00000.00000.0000 150183.340.0000 150183.340.00000.52360.0000

0 0.00E+004.65591081 2.91E-04

-65.6107559 -2.87E-04-82.9443918 -2.26E-05-35.7185229 1.59E-0526.6768562 1.61E-04

4.90625 6.69E-05-7.75862069 2.91E-0472.8658016 1.93E-0425.2577491 -3.32E-0621.9403845 -2.36E-0549.2413793 1.82E-0440.2403017 2.03E-04

15 -3.54E-050 -2.48E-04

-51.925824 -1.45E-0520.8333333 1.69E-0414.9381867 -4.40E-06

0 4.53E-0518.1027099 -4.05E-05

-31.7825179 9.54E-0516.3139661 1.50E-0515.2318249 4.87E-053.75259485 -2.99E-0716.4798851 1.56E-04

#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A

Page 44: 3DFrame

#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A#N/A #N/A

Page 45: 3DFrame

Factor x Sparse Solver

Page 46: 3DFrame

DisclaimerThis program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.

A copy of the GNU General Public License may be obtained from:The Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Copyright

Spreadsheet, VBA code and C# interface code ã Copyright 2013 Interactive Design Services Pty Ltd. all rights reservedAlglib C# code ã Copyright (c) 2013 Sergey Bochkanov (ALGLIB project).Alglib code and documentation may be downloaded from:

Revision HistoryCurrent Version 1.03 17-Mar-13

Rev Date By Description

1.00 21-Jan-13 DAJ First release 3DFrame1.01 3-Feb-13 DAJ Reaction calculation corrected1.02 3/3/2013 DAJ Shear deflection and end release calculations added, plot functions updated1.03 3/17/2013 DAJ Support displacements added, references check fixed to allow solution whan Alglib DLL not installed, provision for truss elements added, reaction force equilibrium check added.

[email protected]

www.interactiveds.com.au

http://www.alglib.net/

Page 47: 3DFrame

Copyright 2013 Interactive Design Services Pty Ltd. all rights reserved Copyright (c) 2013 Sergey Bochkanov (ALGLIB project).

Shear deflection and end release calculations added, plot functions updatedSupport displacements added, references check fixed to allow solution whan Alglib DLL not installed, provision for truss elements added, reaction force equilibrium check added.

Page 48: 3DFrame

Support displacements added, references check fixed to allow solution whan Alglib DLL not installed, provision for truss elements added, reaction force equilibrium check added.

Page 49: 3DFrame

Data ranges Last Plot RangeInput1!$M$7:$O$21 Plot!$D$5:$O$34Input1!$Y$7:$AB$24Sheet2!$D$6:$N$35 1 2 3 4Plot!$D$5:$O$34 Type No. Type Colour Dash

1 Pline 82 Line 10

6 3 Line 11Mom1 4 Pline 12Shear1 Shear Force 1 5 Pline 13Shear2 Shear Force 2 6 Pline 14Axial Axial Force 7 Pline 15

Mom1 Bending Moment 1 8 Pline 16Mom2 Bending Moment 2 9 Pline 17

Torsion Torsion 10 Pline 18Deflection1 Deflection 1 11 Pline 19Deflection2 Deflection 2 12 Pline 20Deflection3 Deflection 3 13 Pline 21Rotation1 Rotation 1, degrees 14 Pline 22Rotation2 Rotation 2, degrees 15 Pline 23Rotation3 Rotation 3, degrees 16 Pline 24

17 Pline 25Alglib sparse solver 18 Pline 26Compiled solver 19 Pline 27VBA solver 20 Pline 28

21 Pline 2922 Pline 3023 Pline 3124 Pline 3225 Pline 3326 Pline 3427 Pline 3528 Pline 3629 Pline 3730 Pline 8

Page 50: 3DFrame

Begin Arrow End ArrowStyle Length Width Style Length Width

5 6 7 8 9 10 11Weight

1.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.001.00

Page 51: 3DFrame

a1a2 a4

a3 -a5a8

-a5 a7a4 a6

-a1 -a2 -a4

-a3 a5 -a8

-a5 a7/2a4 a6/2

a1a3 a5

a2 -a4a8

-a4 a6a5 a7

-a1 -a3 -a5

-a2 a4 -a8

-a4 a6/2a5 a7/2

Frame4Function LinBeam2(BeamCoords As Variant, BeamSect As Variant, NumSegs As Long, Optional By******* Optional ByVal EndDefA As Variant, Optional ByVal NumDloads As Variant, Optional Optional OutCols As Variant) As Variant *******' Find deflected shape for beam under specified loads including resolution of applied loads *******' Beam length and slope specified by end coordinates *******' Results are output for each listed point in OutPoints *******' Out - Output index: 1 (default) - Shear, Moment, Slope and Deflection at each Outpoint; 2 - Forc *******

Dim SSRes() As Double, SSRes2() As Double, SSRes3() As Double, Numsegments As Long, NumNDim i As Long, j As Long, k As Long, LoadLen As Double, TotLoad As Double, TotMom As Double *******Dim Q As Double, Qdash As Double, QNeg As Double, DX As Double, DX1 As Double, DX2 As Dou*******Dim StartSlope As Double, EndSlope As Double, StartDef As Double, SlopeChange As Double, N *******Dim XS1 As Double, XS2 As Double, S1Node As Long, S2Node As Long, Span As Double, Segme*******

Page 52: 3DFrame

Dim S1Def As Double, S2Def As Double, S1RForce As Double, S2RForce As Double, DefChange *******Dim NumRows As Long, NumCols As Long, NumBCols As Long, NumSegCols As Long, PLoads2() *******Dim GA As Double, EA As Double, BeamAng As Double, BeamCos As Double, BeamSin As Double*******Dim PTrans As Double, PAx As Double, QA As Double, QAdash As Double, QANeg As Double, PA *******Dim End2DT As Double, End2DAx As Double, End1Defa(1 To 1, 1 To 2) As Double, End1DefAng *******Const Tol As Double = 0.00000000000001

If TypeName(BeamCoords) = "Range" Then BeamCoords = BeamCoords.Value2 ******* If TypeName(BeamSect) = "Range" Then BeamSect = BeamSect.Value2 ******* If IsMissing(OutCols) = False Then ******* If TypeName(OutCols) = "Range" Then OutCols = OutCols.Value2 ******* NumOutCols = UBound(OutCols, 2) ******* Else ******* NumOutCols = 8 ******* End If *******

NumBCols = UBound(BeamSect, 2) DX = BeamCoords(2, 1) - BeamCoords(1, 1) ******* DY = BeamCoords(2, 2) - BeamCoords(1, 2) ******* BeamLength = (DX ^ 2 + DY ^ 2) ^ 0.5 ******* Beam(1, 1) = BeamLength ******* BeamAng = ATn2(DX, DY) ******* ' If BeamAng <> 0 Then ******* BeamCos = Cos(BeamAng) ******* BeamSin = Sin(BeamAng) ******* ' End If *******

******* If IsMissing(EndDefA) = True Then ******* EndCols = 1 ******* Else ******* If TypeName(EndDefA) = "Range" Then EndDefA = EndDefA.Value2 ******* EndCols = UBound(EndDefA, 2) ******* End If ******* XS1 = 0 ******* XS2 = BeamLength ******* Span = XS2 - XS1 *******

ReDim OutPoints(1 To NumSegs + 1, 1 To 1) OutPoints(1, 1) = 0 SegLength = Span / NumSegs ******* NumOut = NumSegs + 1 For i = 2 To NumOut OutPoints(i, 1) = OutPoints(i - 1, 1) + SegLength Next i

If IsMissing(DLoads) = False Then

DLoads = Range2Array(DLoads, NumRows, NumCols, , , True, 2) If IsMissing(NumDloads) = True Then NumDloads = NumRows

ReDim Preserve DLoads(1 To NumRows, 1 To 9) ******* For i = 1 To NumRows ******* If UCase(DLoads(i, 5)) = "X" Then ******* DLoads(i, 6) = -DLoads(i, 3) * BeamSin ' Trans start ******* DLoads(i, 7) = -DLoads(i, 4) * BeamSin ' Trans end *******

Page 53: 3DFrame

DLoads(i, 8) = DLoads(i, 3) * BeamCos ' Long start ******* DLoads(i, 9) = DLoads(i, 4) * BeamCos ' Long end ******* Else *******

DLoads(i, 6) = DLoads(i, 3) * BeamCos ' Trans start ******* DLoads(i, 7) = DLoads(i, 4) * BeamCos ' Trans end ******* DLoads(i, 8) = -DLoads(i, 3) * BeamSin ' Long start ******* DLoads(i, 9) = -DLoads(i, 4) * BeamSin ' Long end ******* End If ******* Next i *******

Else NumDloads = 0 End If If IsMissing(PLoads) = False Then PLoads = Range2Array(PLoads, NumRows, PLoadCols, , , False) If IsMissing(NumPloads) = True Then NumPloads = NumRows For i = 1 To NumRows ******* If BeamAng <> 0 Then *******

PAx = -(PLoads(i, 2) * BeamCos + PLoads(i, 3) * BeamSin) ******* PTrans = PLoads(i, 3) * BeamCos - PLoads(i, 2) * BeamSin ******* Else ******* PAx = -PLoads(i, 2) ******* PTrans = PLoads(i, 3) ******* End If ******* PLoads(i, 2) = PTrans 'PTrans ******* PLoads(i, 3) = PAx ' PAx ******* Next i *******

Else NumPloads = 0 End If ReDim PLoads2(1 To NumPloads, 1 To 5)

' *** *******

' Insert additional nodes if required at segment ends and supports.

' Insert segment ends Segments3 = CombineArray(Beam, OutPoints, Num3, , , True) NumNodes = Num3 Numsegments = Num3 - 1

If NumBCols < 2 Then ******* ReDim SSRes(1 To NumNodes, 1 To 8) ******* ReDim SSRes2(1 To NumNodes, 1 To 8) ******* Else ' Include shear slope and deflection and total slope and deflection ReDim SSRes(1 To NumNodes, 1 To 11) ******* ReDim SSRes2(1 To NumNodes, 1 To 11) ******* End If *******

S1Node = 1

Page 54: 3DFrame

S2Node = NumNodes

ReDim Segments2(1 To NumNodes, 1 To NumBCols + 1) k = 1

For i = 1 To NumNodes Segments2(i, 1) = Segments3(i, 1) If Segments2(i, 1) <> 0 Then If (Segments2(i, 1) - Beam(k, 1)) / Segments2(i, 1) > Tol Then k = k + 1 End If Segments2(i, 2) = BeamSect(k, 1) ******* If NumBCols > 1 Then Segments2(i, 3) = BeamSect(k, 2) ******* If NumBCols > 2 Then Segments2(i, 4) = BeamSect(k, 3) ******* Next i

' *** 'Solve assuming zero rotation at node 1 ' SSRes columns: SSRes2 columns: ******* ' 1: X 1: Shear force ******* ' 2: Shear force 2: Bending moment ******* ' 3: Bending moment 3: Axial force ******* ' 4: Slope 4: DX ******* ' 5: Deflection due to bending 5: DY ******* ' 6: Axial force 6: RZ ******* ' 7: Axial deflection 7: D Trans ******* ' 8: Shear slope 8: D Ax ******* ' 9: Shear deflection *******

SSRes(1, 4) = EndDefA(1, 4) **************

SSRes(1, 5) = 0 SSRes(1, 7) = 0

******* If PLoads(1, 1) = 0 Then ******* SSRes(1, 2) = PLoads(1, 2) ******* SSRes(1, 6) = PLoads(1, 3) ******* If PLoadCols > 3 Then SSRes(1, 3) = PLoads(1, 4) ******* End If *******

For i = 2 To NumNodes X0 = Segments2(i - 1, 1) x = Segments2(i, 1) DX = x - X0 For j = 1 To NumDloads

X1 = DLoads(j, 1) X2 = DLoads(j, 2) Q = DLoads(j, 6) ******* QNeg = -DLoads(j, 7) ******* QA = DLoads(j, 8) ******* QANeg = -DLoads(j, 9) ******* If X2 <> X1 Then ******* Qdash = (DLoads(j, 7) - DLoads(j, 6)) / (X2 - X1) ******* QAdash = (DLoads(j, 9) - DLoads(j, 8)) / (X2 - X1) *******

Page 55: 3DFrame

Else ******* Qdash = 0 ******* QAdash = 0 ******* End If ******* DX1 = x - X1 If DX1 < 0 Then DX1 = 0 DX2 = x - X2 If DX2 < 0 Then DX2 = 0

SSRes(i, 2) = SSRes(i, 2) + Q * DX1 + Qdash * DX1 ^ 2 / 2 + QNeg * DX2 - Qdash * DX2 ^ SSRes(i, 3) = SSRes(i, 3) + Q * DX1 ^ 2 / 2 + Qdash * DX1 ^ 3 / 6 + QNeg * DX2 ^ 2 / 2 - SSRes(i, 4) = SSRes(i, 4) + (Q * DX1 ^ 3 / 6 + Qdash * DX1 ^ 4 / 24 + QNeg * DX2 ^ 3 / 6 SSRes(i, 5) = SSRes(i, 5) + (Q * DX1 ^ 4 / 24 + Qdash * DX1 ^ 5 / 120 + QNeg * DX2 ^ 4 / SSRes(i, 6) = SSRes(i, 6) + QA * DX1 + QAdash * DX1 ^ 2 / 2 + QANeg * DX2 - QAdash * ******* SSRes(i, 7) = SSRes(i, 7) + QA * DX1 ^ 2 / 2 + QAdash * DX1 ^ 3 / 6 + QANeg * DX2 ^ 2 / ******* Next j

For j = 1 To NumPloads X1 = PLoads(j, 1) DX1 = x - X1 W = PLoads(j, 2) PA = PLoads(j, 3) ******* 'If DX1 < 0 Then DX1 = 0 If DX1 > 0 Then SSRes(i, 2) = SSRes(i, 2) + W SSRes(i, 3) = SSRes(i, 3) + W * DX1 SSRes(i, 4) = SSRes(i, 4) + (W * DX1 ^ 2 / 2) SSRes(i, 5) = SSRes(i, 5) + (W * DX1 ^ 3 / 6) SSRes(i, 6) = SSRes(i, 6) + PA ******* SSRes(i, 7) = SSRes(i, 7) + PA * DX1 ******* End If ******* Next j

If NumBCols > 1 Then ******* 'Adjust shear slope and deflection for GA GA = Segments2(i, 3) If GA > 0 Then SSRes(i, 8) = SSRes(i, 2) / GA SSRes(i, 9) = SSRes(i - 1, 9) - (SSRes(i, 3) - SSRes(i - 1, 3)) / GA End If If NumBCols > 2 Then ******* 'Adjust axial deflection for EA EA = Segments2(i, 4) SSRes(i, 7) = SSRes(i, 7) / EA

End If End If

If PLoadCols > 3 Then For j = 1 To NumPloads X1 = PLoads(j, 1) ******* DX1 = x - X1 W = PLoads(j, 4) If DX1 > 0 Then

Page 56: 3DFrame

SSRes(i, 3) = SSRes(i, 3) + W SSRes(i, 4) = SSRes(i, 4) + W * DX1 SSRes(i, 5) = SSRes(i, 5) + (W * DX1 ^ 2 / 2) End If Next j End If

Next i For i = 1 To NumSegs + 1 x = OutPoints(i, 1) SSRes(i, 1) = x Next i

' Adjust slope and deflection for EI*******

For i = 2 To NumNodes EI = Segments2(i, 2) ******* x = Segments2(i, 1) DX = x - Segments2(i - 1, 1) If i = 2 Then StartSlope = SSRes(i - 1, 4) Else StartSlope = EndSlope If i = 2 Then StartDef = SSRes(i - 1, 5) Else StartDef = EndDef

EndSlope = StartSlope + (SSRes(i, 4) - SSRes(i - 1, 4)) / EI EndDef = StartDef + StartSlope * DX + (SSRes(i, 5) - SSRes(i - 1, 5) - (SSRes(i - 1, 4) * DX)) SSRes(i - 1, 4) = StartSlope SSRes(i - 1, 5) = StartDef Next i

i = i - 1 SSRes(i, 4) = EndSlope SSRes(i, 5) = EndDef

' LinBeam2 = SSRes ******* 'Exit Function ******* If NumBCols > 1 Then ******* For i = 2 To NumNodes SSRes(i, 5) = SSRes(i, 5) + SSRes(i, 9) Next i End If

' Adjust deflection ******* End2DT = -(EndDefA(2, 2) - EndDefA(1, 2)) * BeamSin + (EndDefA(2, 3) - EndDefA(1, 3)) * B ******* End2DAx = (EndDefA(2, 2) - EndDefA(1, 2)) * BeamCos + (EndDefA(2, 3) - EndDefA(1, 3)) * B ******* DefChange = (SSRes(S2Node, 5) - End2DT) *******

If DefChange <> 0 Then ******* SlopeChange = DefChange / Span ******* For i = 2 To NumNodes ******* SSRes(i, 4) = SSRes(i, 4) - SlopeChange ******* SSRes(i, 5) = SSRes(i, 5) - SlopeChange * SSRes(i, 1) ******* Next i ******* End If *******

k = 1 *******

Page 57: 3DFrame

ReDim SSRes2(1 To NumNodes, 1 To 9) ******* For i = 1 To NumOut ******* Do While OutPoints(i, 1) > SSRes(k, 1) ******* k = k + 1 ******* Loop ******* For j = 1 To 3 ******* SSRes2(i, j) = SSRes(k, j) ******* Next j *******

SSRes2(i, 4) = SSRes(k, 6) ******* SSRes2(i, 5) = -SSRes(i, 5) * BeamSin + SSRes(i, 7) * BeamCos ' DX ******* SSRes2(i, 6) = (SSRes(i, 5) * BeamCos + SSRes(i, 7) * BeamSin) ' DY ******* SSRes2(i, 7) = SSRes(k, 4) ******* SSRes2(i, 8) = SSRes(k, 5) ******* SSRes2(i, 9) = SSRes(k, 7) ******* Next i *******

' Add initial deflection of start node ******* If EndDefA(1, 2) <> 0 Or EndDefA(1, 3) <> 0 Then ******* Xinc = (EndDefA(2, 2) * 0 + EndDefA(1, 2)) / Span ******* YInc = (EndDefA(2, 3) * 0 + EndDefA(1, 3)) / Span ******* End1Defa(1, 1) = EndDefA(1, 2) ******* End1Defa(1, 2) = EndDefA(1, 3) ******* End1DefAng = ATn2(EndDefA(1, 2), EndDefA(1, 3)) + Pi / 2 ******* End1DRtn = ((EndDefA(1, 2) ^ 2 + EndDefA(1, 3) ^ 2) ^ 0.5 * Cos(BeamAng - End1DefAng)) *******

******* For i = 1 To NumNodes ******* SSRes2(i, 8) = SSRes2(i, 8) + End1DRtn ******* SSRes2(i, 9) = SSRes2(i, 9) + End1DRtn * Tan(BeamAng - End1DefAng) *******

******* SSRes2(i, 5) = SSRes2(i, 5) + EndDefA(1, 2) ******* SSRes2(i, 6) = SSRes2(i, 6) + EndDefA(1, 3) ******* Next i *******

******* End If ******* If NumOutCols = 8 Then ******* LinBeam2 = SSRes2 ******* Else ******* ReDim SSRes3(1 To NumNodes, 1 To NumOutCols) ******* For i = 1 To NumNodes ******* For j = 1 To NumOutCols ******* k = OutCols(1, j) ******* SSRes3(i, j) = SSRes2(i, k) ******* Next j ******* Next i ******* LinBeam2 = SSRes3 ******* End If *******End Function

LinBeam3DRead dataFind beam length and angle and section propertiesCount loadsConvert loads to local axes, save to PLoads and DLoads

Page 58: 3DFrame

Convert end loads and deflections to local axes, save to PLoads2 and EndDefAFor each axis

Copy Ploads and Dloads to DLoadsL and PLoadsLSolve with AxBeam3 or LinBeam3Add results to ResA2

For each axisCopy Ploads2 to PLoadsL and EndDefA to EndDefLSolve with AxBeam3 or LinBeam3Add results to ResA2

Page 59: 3DFrame

-a1 -a2 a4

-a3 -a5 -a8

a5 a7/2 -a4 a6/2

a1a2 -a4

a3 a5a8

a5 a7 -a4 a6

-a1 -a3 a5

-a2 -a4 -a8

a4 a6/2 -a5 a7/2

a1a3 -a5

a2 a4a8

a4 a6 -a5 a7

3DFrame-sheardefFunction LinBeam3(Length As Double, BeamSect As Variant, NumSegs As Long, Optional ByVal DLoads As Variant, Optional ByVal PLoads As Variant, _ Optional ByVal EndDefA As Variant, Optional ByVal NumDloads As Variant, Optional ByVal NumPloads As Variant, _ Optional OutCols As Variant, Optional Out As Long = 1) As Variant' Find deflected shape for beam under specified transverse loads using local axis system' Results are output for each listed point in OutPoints' Out - Output index: 1 (default) - Shear, Mom, Rotation, Deflection' Out = 2: - Force and moment imbalance and deflection and rotation difference at ends

Dim SSRes() As Double, SSRes2() As Double, SSRes3() As Double, Numsegments As Long, NumNodes As Long, NumOut As Long, X As Double, X0 As Double, X1 As Double, X2 As DoubleDim i As Long, j As Long, k As Long, ei As Double, Segments2 As Variant, Num3 As Long, OutPoints() As DoubleDim Q As Double, Qdash As Double, QNeg As Double, DX As Double, DX1 As Double, DX2 As Double, W As DoubleDim StartSlope As Double, EndSlope As Double, StartDef As Double, PLoadCols As LongDim XS1 As Double, XS2 As Double, S1Node As Long, S2Node As Long, Segments3() As Double, SegLength As Double

Page 60: 3DFrame

Dim EndCols As LongDim NumRows As Long, numcols As Long, NumBCols As Long, PLoads2() As Double, EndDef As DoubleDim GA As Double, ea As Double, Beam(1 To 1, 1 To 1) As DoubleDim NumOutCols As Long

Const Tol As Double = 0.00000000000001

If TypeName(BeamSect) = "Range" Then BeamSect = BeamSect.Value2 If IsMissing(OutCols) = False Then If TypeName(OutCols) = "Range" Then OutCols = OutCols.Value2 NumOutCols = UBound(OutCols, 2) Else NumOutCols = 8 End If

NumBCols = UBound(BeamSect, 2) Beam(1, 1) = Length

If IsMissing(EndDefA) = True Then EndCols = 1 Else If TypeName(EndDefA) = "Range" Then EndDefA = EndDefA.Value2 EndCols = UBound(EndDefA, 2) End If XS1 = 0 XS2 = Length

ReDim OutPoints(1 To NumSegs + 1, 1 To 1) OutPoints(1, 1) = 0 SegLength = Length / NumSegs NumOut = NumSegs + 1 For i = 2 To NumOut OutPoints(i, 1) = OutPoints(i - 1, 1) + SegLength Next i

If IsMissing(DLoads) = False Then

DLoads = Range2Array(DLoads, NumRows, numcols, , , True, 2) If IsMissing(NumDloads) = True Then NumDloads = NumRows

Page 61: 3DFrame

Else NumDloads = 0 End If If IsMissing(PLoads) = False Then PLoads = Range2Array(PLoads, NumRows, PLoadCols, , , False) If IsMissing(NumPloads) = True Then NumPloads = NumRows

Else NumPloads = 0 End If ReDim PLoads2(1 To NumPloads, 1 To 5)

' Insert additional nodes if required at segment ends and supports.

' Insert segment ends Segments3 = CombineArray(Beam, OutPoints, Num3, , , True) NumNodes = Num3 Numsegments = Num3 - 1

If NumBCols < 3 Then ReDim SSRes(1 To NumNodes, 1 To 12)

Else ' Include shear slope and deflection and total slope and deflection ReDim SSRes(1 To NumNodes, 1 To 14) End If

S1Node = 1

Page 62: 3DFrame

S2Node = NumNodes

ReDim Segments2(1 To NumNodes, 1 To NumBCols + 1) k = 1

For i = 1 To NumNodes Segments2(i, 1) = Segments3(i, 1) If Segments2(i, 1) <> 0 Then If (Segments2(i, 1) - Beam(k, 1)) / Segments2(i, 1) > Tol Then k = k + 1 End If Segments2(i, 2) = BeamSect(k, 2) If NumBCols > 2 Then Segments2(i, 3) = BeamSect(k, 3) If NumBCols > 3 Then Segments2(i, 4) = BeamSect(k, 4) Next i

' *** 'Solve assuming zero rotation at node 1 ' SSRes columns: ' 1: X ' 2: Shear force ' 3: Bending moment ' 4: Slope ' 5: Deflection due to bending ' 6: Shear slope ' 7: Shear deflection

SSRes(1, 4) = 0 SSRes(1, 5) = 0 SSRes(1, 7) = 0

If PLoads(1, 1) = 0 Then SSRes(1, 2) = PLoads(1, 2) If PLoads(1, 3) = 0 Then SSRes(1, 3) = PLoads(1, 4)

For i = 2 To NumNodes X0 = Segments2(i - 1, 1) X = Segments2(i, 1) DX = X - X0 For j = 1 To NumDloads

X1 = DLoads(j, 1) X2 = DLoads(j, 2) Q = DLoads(j, 3) QNeg = -DLoads(j, 4) If X2 <> X1 Then Qdash = (DLoads(j, 4) - DLoads(j, 3)) / (X2 - X1) Else Qdash = 0 End If

Page 63: 3DFrame

DX1 = X - X1 If DX1 < 0 Then DX1 = 0 DX2 = X - X2 If DX2 < 0 Then DX2 = 0

SSRes(i, 2) = SSRes(i, 2) + Q * DX1 + Qdash * DX1 ^ 2 / 2 + QNeg * DX2 - Qdash * DX2 ^ 2 / 2 SSRes(i, 3) = SSRes(i, 3) + Q * DX1 ^ 2 / 2 + Qdash * DX1 ^ 3 / 6 + QNeg * DX2 ^ 2 / 2 - Qdash * DX2 ^ 3 / 6 SSRes(i, 4) = SSRes(i, 4) + (Q * DX1 ^ 3 / 6 + Qdash * DX1 ^ 4 / 24 + QNeg * DX2 ^ 3 / 6 - Qdash * DX2 ^ 4 / 24) SSRes(i, 5) = SSRes(i, 5) + (Q * DX1 ^ 4 / 24 + Qdash * DX1 ^ 5 / 120 + QNeg * DX2 ^ 4 / 24 - Qdash * DX2 ^ 5 / 120)

Next j

For j = 1 To NumPloads X1 = PLoads(j, 1) DX1 = X - X1 W = PLoads(j, 2)

'If DX1 < 0 Then DX1 = 0 If DX1 > 0 Then SSRes(i, 2) = SSRes(i, 2) + W SSRes(i, 3) = SSRes(i, 3) + W * DX1 SSRes(i, 4) = SSRes(i, 4) + (W * DX1 ^ 2 / 2) SSRes(i, 5) = SSRes(i, 5) + (W * DX1 ^ 3 / 6) End If

Next j

If NumBCols > 2 Then 'Adjust shear slope and deflection for GA GA = Segments2(i, 3) If GA > 0 Then SSRes(i, 8) = SSRes(i, 2) / GA SSRes(i, 9) = SSRes(i - 1, 9) - (SSRes(i, 3) - SSRes(i - 1, 3)) / GA End If If NumBCols > 3 Then 'Adjust axial deflection for EA ea = Segments2(i, 4) SSRes(i, 7) = SSRes(i, 7) / ea

End If End If

If PLoadCols > 3 Then For j = 1 To NumPloads X1 = PLoads(j, 3) DX1 = X - X1 W = PLoads(j, 4) If DX1 > 0 Then

Page 64: 3DFrame

SSRes(i, 3) = SSRes(i, 3) + W SSRes(i, 4) = SSRes(i, 4) + W * DX1 SSRes(i, 5) = SSRes(i, 5) + (W * DX1 ^ 2 / 2) End If Next j End If

Next i For i = 1 To NumSegs + 1 X = OutPoints(i, 1) SSRes(i, 1) = X Next i

' Adjust slope and deflection for EI ei = BeamSect(1, 2) For i = 2 To NumNodes

X = Segments2(i, 1) DX = X - Segments2(i - 1, 1) If i = 2 Then StartSlope = SSRes(i - 1, 4) Else StartSlope = EndSlope If i = 2 Then StartDef = SSRes(i - 1, 5) Else StartDef = EndDef

EndSlope = StartSlope + (SSRes(i, 4) - SSRes(i - 1, 4)) / ei EndDef = StartDef + StartSlope * DX + (SSRes(i, 5) - SSRes(i - 1, 5) - (SSRes(i - 1, 4) * DX)) / ei SSRes(i - 1, 4) = StartSlope SSRes(i - 1, 5) = StartDef Next i

i = i - 1 SSRes(i, 4) = EndSlope SSRes(i, 5) = EndDef

If NumBCols > 2 Then For i = 2 To NumNodes SSRes(i, 5) = SSRes(i, 5) + SSRes(i, 9) Next i End If

Page 65: 3DFrame

If IsMissing(EndDefA) = False Then SSRes(1, 4) = EndDefA(1, 3) SSRes(1, 5) = EndDefA(1, 2) If SSRes(1, 4) <> 0 Or SSRes(1, 5) <> 0 Then For i = 2 To NumNodes X = Segments2(i, 1) SSRes(i, 4) = SSRes(i, 4) + EndDefA(1, 3) SSRes(i, 5) = SSRes(i, 5) + EndDefA(1, 2) + EndDefA(1, 3) * X Next i End If End If

If NumOutCols = 8 Then LinBeam3 = SSRes Else ReDim SSRes3(1 To NumNodes, 1 To NumOutCols) For i = 1 To NumNodes For j = 1 To NumOutCols k = OutCols(1, j) SSRes3(i, j) = SSRes2(i, k) Next j Next i LinBeam3 = SSRes3 End IfEnd Function

Page 66: 3DFrame

xl / ell yl / ell zl / ell (-xl * yl * Cg - ell * zl * Sg) / Den Den * Cg / (ell * ell) (-yl * zl * Cg + ell * xl * Sg) / Den (xl * yl * Sg - ell * zl * Cg) / Den -Den * Sg / (ell * ell) (yl * zl * Sg + ell * xl * Cg) / Den

0 1 0 -Cg 0 SgSg 0 Cg

xl / ell yl / ell zl / ell (-xl * zl * Cg + ell * yl * Sg) / Den Den * Cg / (ell * ell) (-yl * zl * Cg - ell * xl * Sg) / Den (xl * zl * Sg + ell * yl * Cg) / Den -Den * Sg / (ell * ell) (yl * zl * Sg - ell * xl * Cg) / Den

0 0 1 Cg Sg 0 -Sg Cg 0

Function LinBeam3(Length As Double, BeamSect As Variant, NumSegs As Long, Optional ByVal DLoads As Variant, Optional ByVal PLoads As Variant, _ Optional ByVal EndDefA As Variant, Optional ByVal NumDloads As Variant, Optional ByVal NumPloads As Variant, _

' Find deflected shape for beam under specified transverse loads using local axis system

' Out = 2: - Force and moment imbalance and deflection and rotation difference at ends

Dim SSRes() As Double, SSRes2() As Double, SSRes3() As Double, Numsegments As Long, NumNodes As Long, NumOut As Long, X As Double, X0 As Double, X1 As Double, X2 As DoubleDim i As Long, j As Long, k As Long, ei As Double, Segments2 As Variant, Num3 As Long, OutPoints() As DoubleDim Q As Double, Qdash As Double, QNeg As Double, DX As Double, DX1 As Double, DX2 As Double, W As DoubleDim StartSlope As Double, EndSlope As Double, StartDef As Double, PLoadCols As LongDim XS1 As Double, XS2 As Double, S1Node As Long, S2Node As Long, Segments3() As Double, SegLength As Double

Page 67: 3DFrame

Dim NumRows As Long, numcols As Long, NumBCols As Long, PLoads2() As Double, EndDef As Double

Page 68: 3DFrame

SSRes(i, 2) = SSRes(i, 2) + Q * DX1 + Qdash * DX1 ^ 2 / 2 + QNeg * DX2 - Qdash * DX2 ^ 2 / 2 SSRes(i, 3) = SSRes(i, 3) + Q * DX1 ^ 2 / 2 + Qdash * DX1 ^ 3 / 6 + QNeg * DX2 ^ 2 / 2 - Qdash * DX2 ^ 3 / 6 SSRes(i, 4) = SSRes(i, 4) + (Q * DX1 ^ 3 / 6 + Qdash * DX1 ^ 4 / 24 + QNeg * DX2 ^ 3 / 6 - Qdash * DX2 ^ 4 / 24) SSRes(i, 5) = SSRes(i, 5) + (Q * DX1 ^ 4 / 24 + Qdash * DX1 ^ 5 / 120 + QNeg * DX2 ^ 4 / 24 - Qdash * DX2 ^ 5 / 120)

Page 69: 3DFrame

EndDef = StartDef + StartSlope * DX + (SSRes(i, 5) - SSRes(i - 1, 5) - (SSRes(i - 1, 4) * DX)) / ei

Page 70: 3DFrame

Dim SSRes() As Double, SSRes2() As Double, SSRes3() As Double, Numsegments As Long, NumNodes As Long, NumOut As Long, X As Double, X0 As Double, X1 As Double, X2 As Double