3D Statics Problem
08 Dec 2015
The following three-dimensional statics problem is taken from the book Engineering Mechanics: Statics , 8th edition, by J. L. Meriam, et al. The solution algorithm was created using the Jupyter Notebook and the Python programming language.

Problem 3/076
The light right-angle boom which supports the 410-kg cylinder is supported by three cables and a ball-and-socket joint at O attached to the vertical x-y surface. Determine the reactions at O and the cable tensions.

Figure 1. Right-Angle Boom and Cylinder
import numpy as np
# Set output precision
% precision 3

# Mass on a string (kg)
m = 410
# Position vectors of each point
# (Point G is where the mass string is tied to the boom)
A = np . array ([ 0.00 , 0.0 , 2.7 ])
B = np . array ([ 1.10 , 0.0 , 2.7 ])
C = np . array ([ - 0.80 , 0.9 , 0.0 ])
D = np . array ([ 1.10 , 1.8 , 0.0 ])
E = np . array ([ 1.10 , 0.0 , 0.0 ])
G = np . array ([ 0.55 , 0.0 , 2.7 ])

# Weight force vector
W = np . array ([ 0 , - m * 9.81 , 0 ])
# Radius vectors
OA = A
OG = G
OB = B
# Tension vectors
AC = C - A
BD = D - B
BE = E - B

# Tension unit vectors
uAC = AC / np . linalg . norm ( AC )
uBD = BD / np . linalg . norm ( BD )
uBE = BE / np . linalg . norm ( BE )

# Create a 3x3 matrix
M = np . zeros ( shape = ( 3 , 3 ))

# Populate cols of matrix with moment vectors
M [:, 0 ] = np . cross ( OA , uAC )
M [:, 1 ] = np . cross ( OB , uBD )
M [:, 2 ] = np . cross ( OB , uBE )
print ( M )

```
[[-0.822 -1.498 -0. ]
[-0.731 0.915 1.1 ]
[ 0. 0.61 0. ]]
```

# The three tension moments must cancel the weight moment
w = - np . cross ( OG , W )
print ( w )

# Solve the matrix for the tension magnitudes
T = np . linalg . solve ( M , w )
T_AC = T [ 0 ]
T_BD = T [ 1 ]
T_BE = T [ 2 ]

# Reaction forces at O
Ox = - T_AC * uAC [ 0 ]
Oy = - T_AC * uAC [ 1 ] - T_BD * uBD [ 1 ] - W [ 1 ]
Oz = - T_AC * uAC [ 2 ] - T_BD * uBD [ 2 ] - T_BE * uBE [ 2 ]

print ( "T_AC = {} N \n T_BD = {} N \n T_BE = {} N \n " . format ( T_AC , T_BD , T_BE ))
print ( "Ox = {} N \n Oy = {} N \n Oz = {} N" . format ( Ox , Oy , Oz ))

```
T_AC = 6606.0 N
T_BD = 3625.5 N
T_BE = 1371.2 N
Ox = 1787.6 N
Oy = 0.0 N
Oz = 10420.9 N
```