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
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.
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
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
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
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
Beam End Releases 0 0
DX1 DY1 DZ1 MX1 MY1 MZ1 DX2
000000
300
600
45
Rotation degrees
Beam Number
DY2 DZ2 MX2 MY2 MZ2
1703170417051706255825592560341034113412
1111111111
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
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
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
Input2
Page 13
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
Input2
Page 15
Input2
Page 16
0.75002295
Input2
Page 17
Element Actions
Input2
Page 18
0.00%
Input2
Page 19
0.00% 0.00% 0.00% 0.00% 0.00%
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
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
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
555666666666777777777888888888999999999
101010101010101010111111
111111111111
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
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
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
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
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
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
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
Plot Frame
Vertical axis Y/Z Y
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
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
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
Beam 8
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
#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
Factor x Sparse Solver
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.
www.interactiveds.com.au
http://www.alglib.net/
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.
Support displacements added, references check fixed to allow solution whan Alglib DLL not installed, provision for truss elements added, reaction force equilibrium check added.
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
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
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*******
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 *******
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
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) *******
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
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 *******
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
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
-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
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
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
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
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
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
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
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
Dim NumRows As Long, numcols As Long, NumBCols As Long, PLoads2() As Double, EndDef As Double
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)
EndDef = StartDef + StartSlope * DX + (SSRes(i, 5) - SSRes(i - 1, 5) - (SSRes(i - 1, 4) * DX)) / ei
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
Recommended