You are on page 1of 98

3D Frame Analysis

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


Principal Axes
Beam principal axes are defined in the same way as in the FEA program Strand7:
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 direction
i1 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
i.e. the Z axis is in effect defined as the vertical axis in the model, and the XY plane is horizontal.
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.
Units
Any consistent units may be used.

Solvers
Three 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 n
For instructions on installing the dll file see:
http://newtonexcelbach.wordpress.com/2012/11/16/frame4-now-with-added-alglib/
End Releases
Beam end may be released for translation or rotation. Note all end releases are relative to the global
Truss members transmitting axial load only may be defined by setting I1, I2 and J to zero.

Output
Clicking the "Recalculate" button generates node results (deflections and reactions) and forces and deflections at be
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.

global Z direction

he plane parallel to the Z axis;

ve direction.

m connections range.

not perform well.


piled and sparse solvers are not installed

e to the global axes.

d forces and deflections at beam ends.


beam results" button.

eam" sheet.

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

Beam Property Types


Property Number
1
2
3

3
Area

I1
I2
J
Young's Modulus
0.5 0.01041667 0.04166667 0.02908333
20000000
1.8000E-01 5.4000E-03 1.3500E-03 3.7692E-03
20000000
1.8000E-01 5.4000E-03 1.3500E-03 3.7692E-03
20000000

Node Coordinates
Shear Area1
0.00E+00
0.00E+00

Shear Area2
Shear Modulus
8,000,000
0.00E+00
8,000,000
0.00E+00
8,000,000

Number

8
X

1
2
3
4
5
6
7
8

Y
0.00
5.00
0.00
5.00
0.00
5.00
0.00
5.00

0.00
0.00
0.00
0.00
5.00
5.00
5.00
5.00

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

Number
0.00
0.00
3.00
3.00
0.00
0.00
3.00
5.00

1
2
5
6

X
F
F
F
F

Y
F
F
F
F

Z
F
F
F
F

MX
F
F
F
F

acement (rotation in radians)


Beam Connections
MY
F
F
F
F

MZ
F
F
F
F

Beam Number Property Type


1
1
2
1
3
1
4
1
5
2
6
2
7
2
8
3
9
3
10
3
11
2

11
Node 1

Node 2
1
2
5
6
3
7
4
3
3
4
5

3
4
7
8
4
8
8
7
8
7
4

Beam End Releases


Rotation
degrees
0
0
0
0
0
0
30
0
60
0
45

Beam
Number

DX1

0
DY1

0
DZ1

MX1

MY1

MZ1

DX2

DY2

DZ2

MX2

MY2

MZ2

1703
1704
1705
1706
2558
2559
2560
3410
3411
3412

1
1
1
1
1
1
1
1
1
1

0
1.2E-017
1.4E-017
1.7E-017
1.9E-017
2.1E-017
2.3E-017
2.5E-017
2.7E-017
2.9E-017
3.1E-017
3.3E-017
3.5E-017
3.7E-017
3.9E-017

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

1
0.981312
0.972597
0.962571
0.95131
0.938863
0.925255
0.910493
0.894569
0.877468
0.859165
0.839633
0.818845
0.796774
0.773402

-1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

1.22461E-016
-1.21343E-016
-1.20810E-016
-1.20196E-016
-1.19506E-016
-1.18744E-016
-1.17911E-016
-1.17007E-016
-1.16032E-016
-1.14985E-016
-1.13864E-016
-1.12668E-016
-1.11396E-016
-1.10044E-016
-1.08613E-016

0
1.2E-017
1.4E-017
1.7E-017
1.9E-017
2.1E-017
2.3E-017
2.5E-017
2.7E-017
2.9E-017
3.1E-017
3.3E-017
3.5E-017
3.7E-017
3.9E-017

-1E-016
1.2E-016
1.2E-016
1.2E-016
1.2E-016
1.2E-016
1.2E-016
1.2E-016
1.2E-016
1.1E-016
1.1E-016
1.1E-016
1.1E-016
1.1E-016
1.1E-016

-1
0.981312
0.972597
0.962571
0.95131
0.938863
0.925255
0.910493
0.894569
0.877468
0.859165
0.839633
0.818845
0.796774
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

3D Frame Analysis
Analysis 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 star
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

Load/m start

1.00E+01

1.00E+01

10

10

-10

-20

-10

-10

-10

-20

-10

-10

1.46969385

-10

-20

10

1.41421356

0.5

10

20

Page 13

Load/m end

Input2

Page 14

Input2

nd moments

load, and the load intensity at the start and end.

oads

Point Loads
b

Position

Moments

Load

Position

Moment

2.25

150

-100

100 4.0388736054

100

0
1.5
0
0 1.346291202

5.385 0.2500076512

0
2.2045407685

5.5113519213

-100 2.204540769

2.1213203436
1

100

1.5

1.00E+02

Page 15

100

Input2

Page 16

Input2

0.75002295

Page 17

Input2

Page 18

Input2

Page 19

Input2

Page 20

Input2

Page 21

Input2

Page 22

Input2

Page 23

Input2

Page 24

Input2

Element Actions

Page 25

Input2

Page 26

Input2

Page 27

Input2

Page 28

Input2

Page 29

Input2

0.00%

Page 30

Input2

Page 31

Input2

0.00%

0.00%

0.00%

0.00%

0.00%

Page 32

3D Frame Analysis
Analysis of a 3D frame subject to distributed loads, point loads and moments
Equilibrium check
Total applied forces
Total output reactions
Output error

Alglib
Alglibsparse
sparsesolver
solver

Recalculate

Node Results

Beam En

Deflection
DX1
DY1
DZ1
RX1
RY1
RZ1
DX2
DY2
DZ2
RX2
RY2
RZ2
DX3
DY3
DZ3
RX3
RY3
RZ3
DX4
DY4
DZ4
RX4
RY4
RZ4
DX5
DY5
DZ5
RX5
RY5
RZ5
DX6
DY6
DZ6
RX6
RY6
RZ6
DX7
DY7
DZ7
RX7
RY7

0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
2.9132E-04
-2.8734E-04
-2.2585E-05
9.0821E-04
9.1975E-03
3.8307E-03
2.9099E-04
1.9287E-04
-3.3231E-06
-1.3541E-03
1.0444E-02
1.1636E-02
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
-3.5402E-05
-2.4805E-04
-1.4524E-05
9.6703E-03
-2.5195E-04

FX
-33.715
-31.846
75.284
9.169
-80.163
-5.185
-6.510
-64.576
11.077
61.005
-60.397
-15.751
0.000
0.000
0.000
0.000
0.000
0.000
0.000
0.000
0.000
0.000
0.000
0.000
-22.952
19.041
36.886
-10.686
10.254
-2.623
3.176
-4.342
-116.782
8.826
7.991
-87.258
0.000
0.000
0.000
0.000
0.000

1-1
1-2
2-1
2-2
3-1
3-2
4-1
4-2
5-1
5-2
6-1
6-2
7-1
7-2
8-1
8-2
9-1
9-2
10-1
10-2
11-1
11-2

-33.71
-3.71
-6.51
-6.51
-4.33
25.67
3.18
3.18
0.24
0.24
-3.88
-3.88
5.13
5.13
0.48
0.48
-4.43
-4.43
-30.02
-30.02
-18.62
-18.62

FY
-31.85
-31.85
-64.58
35.42
-0.47
-0.47
-4.34
-4.34
21.87
-15.63
-0.48
-0.48
11.02
30.25
-28.29
-28.29
-25.43
-25.43
28.28
28.28
19.52
19.52

RZ7
DX8
DY8
DZ8
RX8
RY8
RZ8

2.5972E-03
-4.0454E-05
9.5421E-05
1.4974E-05
2.7882E-03
-1.7149E-05
8.9369E-03

0.000
0.000
0.000
0.000
0.000
0.000
0.000

FX

FY

FZ

60.00
-60.00
-4.37E-06

81.72
-81.72
1.41E-05

-6.47
6.47
1.84E-05

Beam End Results


FZ
75.28
75.28
11.08
11.08
48.41
48.41
-116.78
35.72
26.53
26.53
25.34
-28.51
25.33
25.33
26.18
-23.82
22.58
-32.53
0.75
0.75
-11.53
-11.53

MX
9.17
63.63
61.01
17.28
-11.01
-12.43
8.83
-12.88
0.24
0.24
1.94
0.99
17.70
-8.70
22.95
17.07
40.45
20.60
1.06
-2.70
0.32
1.24

Beam
MY
-80.16
-24.02
-60.40
-40.87
9.72
-22.28
7.99
-7.89
-6.44
26.20
-22.37
-22.55
-18.58
71.16
0.99
0.99
-18.57
-40.72
2.67
-1.08
0.53
-1.24

MZ
-5.19
-5.19
-15.75
-15.75
-3.52
-3.52
-87.26
12.74
24.28
12.86
-3.79
-1.40
-13.24
12.41
-0.73
1.66
-28.73
-23.75
6.76
-1.94
0.89
-3.58

1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5

5
5
5
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
11
11
11

11
11
11
11
11
11

Number of segments/beam
X

Shear1
0.00
0.38
0.75
1.13
1.50
1.88
2.25
2.63
3.00
0.00
0.38
0.75
1.13
1.50
1.88
2.25
2.63
3.00
0.00
0.38
0.75
1.13
1.50
1.88
2.25
2.63
3.00
0.00
0.63
1.25
1.88
2.50
3.13
3.75
4.38
5.00
0.00
0.63
1.25
1.88
2.50
3.13

1976.85
1980.60
1984.35
1988.10
1991.85
1995.60
1999.35
2003.10
2006.85
-1642.65
-1642.65
-1642.65
-1642.65
-1642.65
-1642.65
-1642.65
-1642.65
-1642.65
130.70
134.45
138.20
141.95
145.70
149.45
153.20
156.95
160.70
-22.53
-22.53
-22.53
-22.53
-22.53
-22.53
-22.53
-22.53
-22.53
-13.99
-13.99
-13.99
-13.99
-13.99
-13.99

8
Shear2
259.62
259.62
259.62
259.62
259.62
259.62
259.62
259.62
259.62
15.30
15.30
15.30
15.30
15.30
115.30
115.30
115.30
115.30
-434.69
-434.69
-434.69
-434.69
-434.69
-434.69
-434.69
-434.69
-434.69
-373.14
-373.14
-373.14
-373.14
-373.14
-373.14
-373.14
-373.14
-373.14
-68.72
-68.72
-66.10
-58.44
-49.22
-38.44

Axial
-64.05
-64.05
-64.05
-64.05
-64.05
-64.05
-64.05
-64.05
-64.05
-443.61
-443.61
-443.61
-443.61
-443.61
-443.61
-443.61
-443.61
-443.61
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
142.10
140.83
133.80
125.65
16.39
6.01
-5.49
-10.40
-10.40
-1817.64
-1817.64
-1817.64
-1817.64
-1817.64
-1817.64

Mom1
-6007.11
-5265.09
-4521.66
-3776.82
-3030.58
-2282.94
-1533.88
-783.42
-31.56
4559.80
3943.81
3327.81
2711.82
2095.83
1479.83
863.84
247.85
-368.15
-373.92
-324.20
-273.08
-220.55
-166.62
-111.28
-54.53
3.62
63.18
49.01
34.93
20.84
6.76
-7.32
-21.40
-35.48
-49.56
-63.65
49.38
40.64
31.90
23.16
-85.58
-94.33

Mom2
-781.64
-684.28
-586.93
-489.57
-392.21
-294.85
-197.49
49.86
147.22
-158.43
-152.69
-146.95
-141.21
-135.47
-92.23
-49.00
-5.76
37.48
1303.36
1140.35
977.35
814.34
651.33
488.32
325.31
162.30
-0.71
1499.02
1265.81
1032.59
799.38
566.17
332.96
99.74
-133.47
-366.68
50.34
7.39
-35.24
-74.24
-107.97
-135.45

Torsion
187.4262
187.4262
187.4262
187.4262
187.4262
187.4262
187.4262
187.4262
187.4262
-250.5418
-250.5418
-250.5418
-250.5418
-250.5418
-250.5418
-250.5418
-250.5418
-250.5418
174.9031
174.9031
174.9031
174.9031
174.9031
174.9031
174.9031
174.9031
174.9031
220.6036
220.6036
120.6036
120.6036
120.6036
120.6036
120.6036
120.6036
120.6036
-22.2957
-22.2957
-22.2957
-22.2957
-22.2957
-22.2957

3.75
4.38
5.00
0.00
0.67
1.35
2.02
2.692582404
3.365728004
4.038873605
4.712019206
5.385164807
0
0.673145601
1.346291202
2.019436803
2.692582404
3.365728004
4.038873605
4.712019206
5.385164807
0
0.625
1.25
1.875
2.5
3.125
3.75
4.375
5
0
0.918558654
1.837117307
2.755675961
3.674234614
4.592793268
5.511351921
6.429910575
7.348469228
0
0.883883476
1.767766953
2.651650429
3.535533906
4.419417382
5.303300859
6.187184335
7.071067812
0
0.960143218
1.920286437

-13.99
-13.99
-13.99
35.54
29.29
23.04
16.79
10.544313232
4.294313232
-1.955686768
-8.205686768
-14.455686768
-12.209466569
-9.9090865906
-7.3380736731
-36.659803862
-33.547525067
-30.164613334
-26.511068661
-22.586891051
-18.392080501
28.1274533778
21.8774533778
15.6274533778
9.3774533778
3.1274533778
-3.1225466222
-9.3725466222
-15.622546622
-21.872546622
27.7073066642
27.7073066642
25.8511513635
20.4373650701
13.918724431
6.2952294464
1.1908023697
1.1908023697
1.1908023697
8.4738436065
8.4738436065
8.4738436065
8.4738436065
8.4738436065
8.4738436065
8.4738436065
8.4738436065
8.4738436065
-21.940627432
-21.940627432
-21.940627432

-31.22
-31.22
-31.22
-19.05
-19.05
-19.05
-19.05
-19.047883964
-19.047883964
-19.047883964
-19.047883964
-19.047883964
58.0025313878
56.6744063878
55.1900313878
72.1189402055
70.3220652055
68.3689402055
66.2595652055
63.9939402055
61.5720652055
81.5996114101
81.5996114101
81.5996114101
81.5996114101
81.5996114101
81.5996114101
81.5996114101
81.5996114101
81.5996114101
0.7140940158
0.7140940158
3.9290493032
13.3060022248
24.5966190079
37.8008996526
46.642026693
46.642026693
46.642026693
-25.098182029
-25.098182029
-25.098182029
-25.098182029
-25.098182029
-25.098182029
-25.098182029
-25.098182029
-25.098182029
73.1271008205
73.1271008205
73.1271008205

-1817.64
-1817.64
-1817.64
124.94
127.44
129.94
132.44
134.9379
137.4379
139.9379
142.4379
144.9379
-266.032
-259.3914
-251.9695
-336.6141
-327.6297
-317.8641
-307.3172
-295.9891
-283.8797
-117.7309
-117.7309
-117.7309
-117.7309
-117.7309
-117.7309
-117.7309
-117.7309
-117.7309
-136.5846
-136.5846
-135.5346
-132.4721
-128.7846
-124.4721
-121.5846
-121.5846
-121.5846
-500.2841
-500.2841
-500.2841
-500.2841
-500.2841
-500.2841
-500.2841
-500.2841
-500.2841
760.95716
760.95716
760.95716

-103.07
-111.81
-120.55
-53.55
-31.73
-14.11
-0.70
8.4995445002
13.493822564
14.280940622
10.860898675
3.2336967219
46.752104687
39.292420027
33.472313716
7.8233260323
-15.821732558
-37.280686683
-56.371360971
-91.481113866
-105.28870236
-52.881509522
-37.254976161
-25.5346928
-17.720659439
-13.812876078
-13.811342716
-17.716059355
-25.527025994
-37.244242633
-71.504114279
-46.053327977
-20.938126518
0.4058049405
16.26941939
25.637843312
-55.176785778
-54.082963957
-52.989142135
-54.046908973
-46.557018627
-39.067128281
-31.577237934
-24.087347588
-16.597457242
-9.1075668963
-1.6176765503
5.8722137958
59.53510678
38.468962141
17.402817503

-156.33
-175.85
-195.36
5.67
-7.15
-19.98
-32.80
-45.61957198
-58.44157128
-71.26357057
-84.08556987
-96.90756917
-103.4271379
-64.82123488
-27.16194287
21.94555914
69.89609215
116.5844772
161.9055352
173.5907111
215.8615781
-200.5112322
-149.511475
-98.51171789
-47.51196076
3.487796371
54.4875535
105.4873106
156.4870678
207.4868249
30.56595296
31.2218902
32.45907743
40.22829592
57.48970191
86.0011079
78.26405395
121.1074912
163.9509284
157.6850698
135.5012014
113.317333
91.13346466
68.94959628
46.76572789
24.58185951
2.397991121
-19.78587726
-394.4499822
-324.2374922
-254.0250023

-22.2957
-22.2957
-22.2957
-20.2881
-20.2881
-20.2881
-20.2881
-20.28806692
-20.28806692
-20.28806692
-20.28806692
-20.28806692
-24.0360285
-24.0360285
-24.0360285
-24.0360285
-24.0360285
-24.0360285
-24.0360285
-116.8836976
-116.8836976
1.8711262131
1.8711262131
1.8711262131
1.8711262131
1.8711262131
1.8711262131
1.8711262131
1.8711262131
1.8711262131
-28.02679826
-28.02679826
-28.02679826
-28.02679826
-28.02679826
-28.02679826
-0.810245563
-0.810245563
-0.810245563
-22.13687062
-22.13687062
-22.13687062
-22.13687062
-22.13687062
-22.13687062
-22.13687062
-22.13687062
-22.13687062
-30.84981989
-30.84981989
-30.84981989

2.880429655
3.840572874
4.800716092
5.760859311
6.721002529
7.681145748

-21.940627432
-21.940627432
-21.940627432
-21.940627432
-21.940627432
-21.940627432

73.1271008205
73.1271008205
73.1271008205
73.1271008205
73.1271008205
73.1271008205

760.95716
760.95716
760.95716
760.95716
760.95716
760.95716

-3.6633271352
-24.729471774
-45.795616412
-66.86176105
-87.927905688
-108.99405033

-183.8125123
-113.6000224
-43.38753246
26.82495748
97.03744742
167.2499374

-30.84981989
-30.84981989
-30.84981989
-30.84981989
-30.84981989
-30.84981989

D1
1.00E-02
1.33E-02
1.56E-02
1.73E-02
1.82E-02
1.87E-02
1.88E-02
1.86E-02
1.83E-02
0.00E+00
3.67E-04
1.40E-03
2.99E-03
5.05E-03
7.45E-03
1.01E-02
1.29E-02
1.58E-02
0.00E+00
-3.02E-05
-1.15E-04
-2.46E-04
-4.14E-04
-6.10E-04
-8.25E-04
-1.05E-03
-1.27E-03
0.00E+00
1.04E-05
3.71E-05
7.37E-05
1.13E-04
1.50E-04
1.76E-04
1.85E-04
1.72E-04
-1.92E-05
8.77E-04
2.36E-03
4.31E-03
6.13E-03
6.73E-03

D2
0.00E+00
-2.53E-04
-9.68E-04
-2.08E-03
-3.52E-03
-5.23E-03
-7.13E-03
-9.12E-03
-1.11E-02
1.00E-02
9.95E-03
9.79E-03
9.54E-03
9.19E-03
8.75E-03
8.25E-03
7.72E-03
7.18E-03
0.00E+00
-3.33E-03
-5.89E-03
-7.79E-03
-9.14E-03
-1.00E-02
-1.06E-02
-1.10E-02
-1.12E-02
0.00E+00
-4.92E-03
-7.46E-03
-8.07E-03
-7.18E-03
-5.23E-03
-2.65E-03
1.14E-04
2.63E-03
1.11E-02
9.63E-03
8.21E-03
6.66E-03
4.85E-03
2.65E-03

D3
0.00E+00
-2.40E-06
-4.80E-06
-7.21E-06
-9.61E-06
-1.20E-05
-1.44E-05
-1.68E-05
-1.92E-05
0.00E+00
-1.66E-05
-3.33E-05
-4.99E-05
-6.65E-05
-8.32E-05
-9.98E-05
-1.16E-04
-1.33E-04
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.00E-02
1.83E-02
1.80E-02
1.76E-02
1.73E-02
1.70E-02
1.67E-02

R1
0.00E+00
7.56E-02
1.41E-01
1.97E-01
2.42E-01
2.78E-01
3.03E-01
3.03E-01
2.93E-01
0.00E+00
1.60E-02
3.15E-02
4.64E-02
6.06E-02
7.24E-02
7.96E-02
8.25E-02
8.08E-02
5.73E-01
4.47E-01
3.38E-01
2.45E-01
1.70E-01
1.11E-01
6.91E-02
4.39E-02
3.56E-02
5.73E-01
3.35E-01
1.38E-01
-1.96E-02
-1.37E-01
-2.14E-01
-2.51E-01
-2.49E-01
-2.06E-01
-1.38E-01
-1.29E-01
-1.34E-01
-1.52E-01
-1.82E-01
-2.23E-01

R2
5.73E-01
4.28E-01
3.01E-01
1.94E-01
1.07E-01
3.82E-02
-1.10E-02
-4.09E-02
-5.14E-02
0.00E+00
1.10E-01
2.03E-01
2.81E-01
3.43E-01
3.89E-01
4.20E-01
4.34E-01
4.32E-01
0.00E+00
-9.00E-03
-1.67E-02
-2.31E-02
-2.81E-02
-3.17E-02
-3.38E-02
-3.45E-02
-3.36E-02
0.00E+00
1.80E-03
3.00E-03
3.59E-03
3.58E-03
2.97E-03
1.74E-03
-8.37E-05
-2.52E-03
5.14E-02
1.11E-01
1.59E-01
1.96E-01
1.14E-01
-4.81E-03

R3
0.00E+00
1.73E-02
3.46E-02
5.19E-02
6.92E-02
8.65E-02
1.04E-01
1.21E-01
1.38E-01
5.73E-01
5.50E-01
5.27E-01
5.04E-01
4.80E-01
4.57E-01
4.34E-01
4.11E-01
3.88E-01
0.00E+00
1.62E-02
3.23E-02
4.85E-02
6.46E-02
8.08E-02
9.69E-02
1.13E-01
1.29E-01
0.00E+00
3.40E-02
6.18E-02
8.03E-02
9.89E-02
1.17E-01
1.36E-01
1.55E-01
1.73E-01
2.93E-01
2.66E-01
2.40E-01
2.13E-01
1.87E-01
1.60E-01

5.98E-03
3.73E-03
-1.33E-04
1.26E-02
1.26E-02
1.21E-02
1.13E-02
0.0105513173
0.0098987203
0.0094666984
0.0092684611
0.009246612
0.0054604478
0.0054809044
0.0061630755
0.007348982
0.0086689853
0.0097265192
0.0101617056
0.009498591
0.0073040247
-1.9215E-005
0.0028306785
0.0051368728
0.0070689321
0.0087399066
0.0102063325
0.0114682321
0.0124691134
0.0130959706
0.0172708513
0.017030983
0.0153518102
0.0130073567
0.0106613129
0.0088067739
0.0077341334
0.0062379521
0.0030516783
-0.000133082
0.0047184761
0.0082228979
0.0105969052
0.0120572193
0.0128205615
0.0131036532
0.0131232158
0.0130959706
0.0065094553
0.0044802281
0.0037644666

-3.57E-05
-3.29E-03
-7.18E-03
1.12E-02
9.99E-03
8.70E-03
7.34E-03
0.0058359847
0.0041418
0.0022024178
-0.000035958
-0.002627123
0.0150369618
0.0123417248
0.0093741927
0.0063010729
0.0033196235
0.000630989
-0.001568982
-0.003157648
-0.004018549
0.0182771207
0.016434831
0.0140517734
0.011312409
0.0084011987
0.0055026034
0.002801084
0.0004811015
-0.001272883
0.0115935626
0.007640522
0.0039314622
0.0004807366
-0.002649526
-0.005323325
-0.007316891
-0.008510495
-0.008757947
0.0162147527
0.0107748669
0.0063151691
0.0026751859
-0.000305556
-0.002787531
-0.004931213
-0.006897074
-0.008845588
-0.006509455
-0.001417337
0.0009071286

1.64E-02
1.61E-02
1.58E-02
3.68E-03
3.71E-03
3.73E-03
3.75E-03
0.0037790647
0.0038045297
0.0038304623
0.0038568623
0.0038837297
0.0066156524
0.0065665171
0.0065186965
0.0064549757
0.0063928617
0.0063325007
0.0062740388
0.0062176221
0.0061633966
-0.011073153
-0.011093592
-0.0111140313
-0.011134471
-0.01115491
-0.01117535
-0.011195789
-0.011216228
-0.011236668
0.0048964498
0.0048615995
0.004826802
0.0047925971
0.0047592533
0.0047269301
0.0046956832
0.0046646603
0.0046336373
-0.006062809
-0.00618564
-0.006308472
-0.006431303
-0.006554134
-0.006676966
-0.006799797
-0.006922628
-0.00704546
0.0039056732
0.0041086253
0.0043115775

-2.71E-01
-3.26E-01
-3.88E-01
-1.07E-01
-1.07E-01
-1.12E-01
-1.21E-01
-0.135294156
-0.153875044
-0.17703486
-0.204773601
-0.237091268
-0.213252431
-0.24326782
-0.259662363
-0.260560921
-0.244125917
-0.210789302
-0.161020589
-0.106812869
-0.037224759
-0.138465005
-0.196494009
-0.237612881
-0.261821621
-0.269120229
-0.259508704
-0.232987048
-0.189555259
-0.129213338
-0.254074678
-0.239019745
-0.223607706
-0.206246824
-0.182858483
-0.148388739
-0.097001059
-0.048423136
0.0210328449
-0.387865198
-0.319125515
-0.260788175
-0.212853178
-0.175320524
-0.148190213
-0.131462245
-0.12513662
-0.129213338
0.398368214
0.2153286486
0.0680533454

-1.36E-01
-2.78E-01
-4.32E-01
3.36E-02
-2.68E-02
-5.90E-02
-6.91E-02
-0.063056803
-0.046847674
-0.026509302
-0.008051441
0.0025161502
-0.029782765
0.0314884577
0.0832531736
0.1125200432
0.1065579568
0.0683595607
0.0011777311
-0.118000249
-0.25887522
0.2926570536
0.2333151755
0.1921082185
0.1638553575
0.1433757677
0.1254886241
0.1050131017
0.0767683755
0.0355736205
0.0464591585
-0.068114794
-0.133165519
-0.152368972
-0.135144316
-0.093163133
-0.039904319
-0.146391165
-0.250745889
0.3628368132
0.2684874825
0.188186632
0.1219342616
0.0697303714
0.0315749614
0.0074680316
-0.002590418
0.0013996125
-0.174589853
-0.074748836
-0.017829818

1.34E-01
1.07E-01
8.08E-02
8.10E-02
5.51E-02
2.91E-02
3.17E-03
-0.022781085
-0.048730833
-0.074680581
-0.100630329
-0.126580077
0.5454254958
0.5146818629
0.4839382301
0.4531945972
0.4224509644
0.3917073315
0.3609636986
0.2114619002
0.0619601019
-0.051371191
-0.049149076
-0.046926961
-0.044704845
-0.04248273
-0.040260615
-0.0380385
-0.035816385
-0.03359427
0.201859636
0.1529421823
0.1040247285
0.0551072747
0.0061898209
-0.042727633
-0.091645087
-0.093059274
-0.094473462
0.2485208616
0.2113421184
0.1741633752
0.136984632
0.0998058887
0.0626271455
0.0254484023
-0.011730341
-0.048909084
0.3729639342
0.3166815982
0.2603992622

0.0036428986
0.0033962516
0.0023052535
-0.000349368
-0.005286885
-0.013226571

0.0010632676
-0.000349595
-0.002732133
-0.005485023
-0.008008938
-0.009704552

0.0045145297
0.0047174819
0.0049204341
0.0051233862
0.0053263384
0.0055292906

-0.043457696
-0.119204474
-0.159186991
-0.163405245
-0.131859237
-0.064548967

-0.0038328
-0.032757782
-0.104604764
-0.219373746
-0.377064728
-0.577677709

0.2041169262
0.1478345902
0.0915522542
0.0352699182
-0.021012418
-0.077294754

1
Frame results
Support Reactions
Strand7 Results
FX
(kN)
Node 1
Node 2
Node 5
Node 6

FY
(kN)

FZ
(kN)

MX
(kNm)

MY
(kNm)

MZ
(kNm)

-33.71
-6.51
-22.95
3.18

-31.85
-64.58
19.04
-4.34

75.28
11.08
36.89
-116.78

9.17
61.01
-10.69
8.83

-80.16
-60.40
10.25
7.99

-5.19
-15.75
-2.62
-87.26

3DFrame Results
FX
(kN)
1
-33.71
2
-6.51
5
-22.95
6
3.18

FY
(kN)
-31.85
-64.58
19.04
-4.34

FZ
(kN)
75.28
11.08
36.89
-116.78

MX
(kNm)
9.17
61.01
-10.69
8.83

MY
(kNm)
-80.16
-60.40
10.25
7.99

MZ
(kNm)
-5.19
-15.75
-2.62
-87.26

3DFrame - Strand7
FX
(kN)
1
0.00
2
0.00
5
0.00
6
0.00

FY
(kN)
0.00
0.00
0.00
0.00

FZ
(kN)
0.00
0.00
0.00
0.00

MX
(kNm)
0.00
0.00
0.00
0.00

MY
(kNm)
0.00
0.00
0.00
0.00

MZ
(kNm)
0.00
0.00
0.00
0.00

Plot Frame
Vertical axis Y/Z

PlotScale
View Target offset:
Centre X
Centre Y
Centre Z
Viewdistance
View angle - plan
View angle - elev
View angle - rotn
Deflection factor

0.9

2000000
0 degrees
0 degrees
0 degrees
2000

Reselect and draw frame

Redraw frame

Plot beam actions and deflections for selected beams


Beam Numbers
Series 1
Series 2
Series 3
Series 4
Series 5
Series 6

Bending Moment 1

Beam Action:

2
5
8

Bending Moment 1

Mom1

Re-plot Chart

60

40

20

-20

-40

-60
0

2
3
4
Distance along beam, m
Beam 2
Beam 5
Beam 8

-44.1763

hart

Beam 2
X
0
0.25
0.5
0.75
1
1.25
1.5
1.75
2
2.25
2.5
2.75
3

Mom1
-44.1763
-40.49494
-36.81359
-33.13223
-29.45087
-25.76951
-22.08815
-18.40679
-14.72543
-11.04408
-7.362717
-3.681359
-1E-014

35.7439
Beam 5
X
0
0.416667
0.833333
1.25
1.666667
2.083333
2.5
2.916667
3.333333
3.75
4.166667
4.583333
5

Mom1
-9.998851
1.436836
12.87252
24.30821
35.7439
-52.82042
-41.38473
-29.94904
-18.51336
-7.077669
4.358018
15.79371
27.22939

Beam 8
X
0
0.416667
0.833333
1.25
1.666667
2.083333
2.5
2.916667
3.333333
3.75
4.166667
4.583333
5

Beam 8
Mom1
-33.57173
-21.22548
-10.61533
-1.741301
5.396621
10.79843
14.46413
16.39372
16.5872
15.04457
11.76582
6.750967
0

0
4.65591081
-65.6107559
-82.9443918
-35.7185229
26.6768562
4.90625
-7.75862069
72.8658016
25.2577491
21.9403845
49.2413793
40.2403017
15
0
-51.925824
20.8333333
14.9381867
0
18.1027099
-31.7825179
16.3139661
15.2318249
3.75259485
16.4798851
#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

GammaA
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
0.5236
0.0000
0.00E+00
2.91E-04
-2.87E-04
-2.26E-05
1.59E-05
1.61E-04
6.69E-05
2.91E-04
1.93E-04
-3.32E-06
-2.36E-05
1.82E-04
2.03E-04
-3.54E-05
-2.48E-04
-1.45E-05
1.69E-04
-4.40E-06
4.53E-05
-4.05E-05
9.54E-05
1.50E-05
4.87E-05
-2.99E-07
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

Sparse solver time


Compiled solver time
VBA solver time

150183.34
150183.34

#N/A

0.000 s
0.00 s
0.00

Factor x Sparse Solver


1.8

#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

or x Sparse Solver

Disclaimer
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of 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 of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU 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.

dougjenkins@interactiveds.com.au
www.interactiveds.com.au

Copyright
Spreadsheet, VBA code and C# interface code
Alglib C# code
Alglib code and documentation may be downloaded from:
Revision History
Current Version
Rev

Date
1.00
1.01
1.02
1.03

21-Jan-13
3-Feb-13
3/3/2013
3/17/2013

1.03

Copyright 2013 Interactive Design Services Pty


Copyright (c) 2013 Sergey Bochkanov (ALGLIB p
http://www.alglib.net/

17-Mar-13

By

Description

DAJ
DAJ
DAJ
DAJ

First release 3DFrame


Reaction calculation corrected
Shear deflection and end release calculations added, plot functions updated
Support displacements added, references check fixed to allow solution whan Alglib DLL

e Design Services Pty Ltd. all rights reserved


Bochkanov (ALGLIB project).

nctions updated
w solution whan Alglib DLL not installed, provision for truss elements added, reaction force equilibrium check added.

Data ranges
Last Plot Range
Input1!$M$7:$O$21 Plot!$D$5:$O$34
Input1!$Y$7:$AB$24
Sheet2!$D$6:$N$35
Plot!$D$5:$O$34

6
Mom1
Shear1
Shear2
Axial
Mom1
Mom2
Torsion
Deflection1
Deflection2
Deflection3
Rotation1
Rotation2
Rotation3
Alglib sparse solver
Compiled solver
VBA solver

Shear Force 1
Shear Force 2
Axial Force
Bending Moment 1
Bending Moment 2
Torsion
Deflection 1
Deflection 2
Deflection 3
Rotation 1, degrees
Rotation 2, degrees
Rotation 3, degrees

1
Type No.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

2
Type
Pline
Line
Line
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline
Pline

3
Colour

4
Dash

8
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
8

Style
5
Weight
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1.00

Begin Arrow
Length
Width
6
7

Style
8

End Arrow
Length
Width
9
10
11

a1
a2

a4
a3

-a5
a8

-a5

a7

a4

a6

-a1
-a2

-a4
-a3

a5
-a8

-a5

a7/2

a4

a6/2

a1
a3

a5
a2

-a4
a8

-a4

a6

a5

a7

-a1
-a3

-a5
-a2

a4
-a8

-a4
a5

a6/2
a7/2

Frame4
Function LinBeam2(BeamCoords As Variant, BeamSect As Variant, NumSegs As Long, Optional ByV
*******
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, NumN
Dim 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 Doub
*******
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, Segmen*******

Dim S1Def As Double, S2Def As Double, S1RForce As Double, S2RForce As Double, DefChange A*******
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 A
*******
Dim End2DT As Double, End2DAx As Double, End1Defa(1 To 1, 1 To 2) As Double, End1DefAng A*******
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
LinBeam3D
Read data
Find beam length and angle and section properties
Count loads
Convert loads to local axes, save to PLoads and DLoads

Convert end loads and deflections to local axes, save to PLoads2 and EndDefA
For each axis
Copy Ploads and Dloads to DLoadsL and PLoadsL
Solve with AxBeam3 or LinBeam3
Add results to ResA2
For each axis
Copy Ploads2 to PLoadsL and EndDefA to EndDefL
Solve with AxBeam3 or LinBeam3
Add results to ResA2

-a1
-a2

a4
-a3

-a5
-a8

a5

a7/2

-a4

a6/2

a1
a2

-a4
a3

a5
a8

a5

a7

-a4

a6

-a1
-a3

a5
-a2

-a4
-a8

a4

a6/2

-a5

a7/2

a1
a3

-a5
a2

a4
a8

a4
-a5

a6
a7

3DFrame-sheardef
Function LinBeam3(Length As Double, BeamSect As Variant, NumSegs As Long, Optional ByVal DLoads As Variant, Option
Optional ByVal EndDefA As Variant, Optional ByVal NumDloads As Variant, Optional ByVal NumPloads As Varia
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, NumOu
Dim i As Long, j As Long, k As Long, ei As Double, Segments2 As Variant, Num3 As Long, OutPoints() As Double
Dim Q As Double, Qdash As Double, QNeg As Double, DX As Double, DX1 As Double, DX2 As Double, W As Double
Dim StartSlope As Double, EndSlope As Double, StartDef As Double, PLoadCols As Long
Dim XS1 As Double, XS2 As Double, S1Node As Long, S2Node As Long, Segments3() As Double, SegLength As Double

Dim EndCols As Long


Dim NumRows As Long, numcols As Long, NumBCols As Long, PLoads2() As Double, EndDef As Double
Dim GA As Double, ea As Double, Beam(1 To 1, 1 To 1) As Double
Dim 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 / 12

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 If
End Function

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

yl / ell
Den * Cg / (ell * ell)
-Den * Sg / (ell * ell)

1
0 Sg
0 Cg

-Cg
Sg

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

yl / ell
Den * Cg / (ell * ell)
-Den * Sg / (ell * ell)

0
Cg
-Sg

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

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

0
Sg
Cg

1
0
0

As Long, Optional ByVal DLoads As Variant, Optional ByVal PLoads As Variant, _


ads As Variant, Optional ByVal NumPloads As Variant, _

ocal axis system

n difference at ends

msegments As Long, NumNodes As Long, NumOut As Long, X As Double, X0 As Double, X1 As Double, X2 As Double
nt, Num3 As Long, OutPoints() As Double
DX1 As Double, DX2 As Double, W As Double
LoadCols As Long
g, Segments3() As Double, SegLength As Double

2() As Double, EndDef As Double

Neg * DX2 - Qdash * DX2 ^ 2 / 2


6 + QNeg * DX2 ^ 2 / 2 - Qdash * DX2 ^ 3 / 6
24 + QNeg * DX2 ^ 3 / 6 - Qdash * DX2 ^ 4 / 24)
/ 120 + QNeg * DX2 ^ 4 / 24 - Qdash * DX2 ^ 5 / 120)

5) - (SSRes(i - 1, 4) * DX)) / ei

X2 As Double

You might also like