Académique Documents
Professionnel Documents
Culture Documents
The Assembly
Process
25–1
Chapter 25: THE ASSEMBLY PROCESS 25–2
TABLE OF CONTENTS
Page
§25.1. INTRODUCTION 25–3
§25.2. SIMPLIFIED ASSEMBLY PROCESS 25–4
§25.2.1. A Plane Truss Example Structure . . . . . . . . . . . . 25–4
§25.2.2. A Mathematica Implementation . . . . . . . . . . . . 25–7
§25.3. COMPLICATIONS 25–7
§25.3.1. Frame-Truss Example Structure . . . . . . . . . . . . 25–7
§25.3.2. A Mathematica Implementation . . . . . . . . . . . . 25–13
§25.4. *KINEMATIC RELEASES 25–15
§25.5. *IMPOSING A MULTIFREEDOM CONSTRAINT 25–16
EXERCISES . . . . . . . . . . . . . . . . . . . . . . . 25–18
25–2
25–3 §25.1 INTRODUCTION
§25.1. INTRODUCTION
Previous Chapters have explained operations for forming element level entities such as stiffness matrices.
Sandwiched between element processing and solution there is the assembly process, in which the master
stiffness equations are constructed.
The position of the assembler in a DSM-based code for static analysis is sketched in Figure 25.1. In
practice the assembler is implemented as a driver of the element library. That is, instead of forming all
elements first and then assembling, the assembler constructs one element at a time, and immediately
merges it into the master equations.
Assembly is the most complex stage of a production finite element program in terms of data flow. The
complexity is not due to the mathematical operations, which merely involve matrix addition, but to the
combined effect of formation of individual elements and merge. Forming an element requires access to
node, element, constitutive and fabrication data. Merge requires access to the freedom and connection
data, as well as knowledge of the sparse matrix format in which K is stored. As illustrated in Figure
25.1, the assembler sits at the crossroads of this process.
The coverage of the assembly process for a general FEM implementation is beyond the scope of an
introductory course. Instead this Chapter uses assumptions that lead to drastic simplifications, which
in turn allows the basic aspects to be covered with a few examples.
Model definition
tables:
^
geometry K Modify Eqs K Equation
element Assembler
for BCs Solver
freedom
connectivity
Some equation solvers apply BCs
(e) and solve simultaneously
K
Nodal
Element displacements
Stiffness
Matrices
ELEMENT
LIBRARY
25–3
Chapter 25: THE ASSEMBLY PROCESS 25–4
1 (1) 2 (2) 3
(4)
3 (3) (5)
4 x
4 4
25–4
25–5 §25.2 SIMPLIFIED ASSEMBLY PROCESS
(1) (2)
1 (1,2) 2 (3,4) 3 (5,6)
(3) (5)
(4)
4 (7,8)
assembly
2 (3,4)
1 (1,2) 3 (5,6)
4 (7,8)
called the element freedom table, or EFT for short. The element stiffness matrix is listed below with
the EFT entries listed after the matrix rows:
1500 0 −1500 0 1
0 0 0 0 2
K(1) = (25.2)
−1500 0 1500 0 3
0 0 0 0 4
Merging the element into (25.1) gives
1500 0 −1500 0 0 0 0 0 1
0 0 0 0 0 0 0 0 2
−1500 0 1500 0 0 0 0 0 3
0 0 0 0 0 0 0 0 4
K= (25.3)
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Element (2) goes from node 2 to 3. The degrees of freedom at these nodes have global numbers
2 × 2 − 1 = 3, 2 × 2 = 4, 2 × 3 − 1 = 5 and 2 × 3 = 6. Hence the EFT is 3,4,5,6, and
1500 0 −1500 0 3
0 0 0 0 4
K(2) = (25.4)
−1500 0 1500 0 5
0 0 0 0 6
25–5
Chapter 25: THE ASSEMBLY PROCESS 25–6
Element (4) goes from node 2 to 4. Its EFT is 3,4,7,8, and its stiffness is
0 0 0 0 3
0 2000 0 −2000 4
K(4) = (25.8)
0 0 0 0 7
0 −2000 0 2000 8
Finally, element (5) goes from node 3 to 4. Its EFT is 5,6,7,8, and its element stiffness is
768 576 −768 −576 5
576 432 −576 −432 6
K(5) = (25.10)
−768 −576 768 576 7
−576 −432 576 432 8
25–6
25–7 §25.3 COMPLICATIONS
Since all elements have been processed, (25.11) is the complete free-free master stiffness.
§25.3. COMPLICATIONS
We now proceed to follow the assembly of a more complicated structure in which two of the simplifi-
cations listed previously do not apply:
1. The structure contains different element types: bars and beam-columns.
2. The nodal freedom configuration varies.
Under these conditions it is not possible to compute the global freedom number directly from the node
number. It is necessary to build a Node-to-Freedom Map Table, or NFMT, first. The code to generate
an NFMT is the topic of Exercise 25.3.
GDOF #: 1 2 3 4 5 6 7 8 9 10 11
(25.12)
DOF: u x1 u y1 θz1 u x2 u y2 θz2 u x3 u y3 θz3 u x4 u y4
The position of each freedom, as identified by the numbers in the first row, is called the global freedom
number.
25–7
Chapter 25: THE ASSEMBLY PROCESS 25–8
Cell 25.1 - A Mathematica Assembler for the Truss Example of Figure 25.2
AssembleMasterStiffnessPlaneTruss[nodcoor_,elenod_,
elemat_,elefab_,eleopt_]:=Module[
{numele=Length[elenod],numnod=Length[nodcoor],
e,eNL,eftab,ni,nj,i,j,ncoor,mprop,fprop,opt,Ke,K},
K=Table[0,{2*numnod},{2*numnod}];
For [e=1, e<=numele, e++,
eNL=elenod[[e]]; {ni,nj}=eNL;
eftab={2*ni-1,2*ni,2*nj-1,2*nj};
ncoor={nodcoor[[ni]],nodcoor[[nj]]};
mprop=elemat[[e]]; fprop=elefab[[e]]; opt=eleopt;
Ke=Stiffness2DBar[ncoor,mprop,fprop,opt];
neldof=Length[Ke];
For [i=1, i<=neldof, i++, ii=eftab[[i]];
For [j=i, j<=neldof, j++, jj=eftab[[j]];
K[[jj,ii]]=K[[ii,jj]]+=Ke[[i,j]]
];
];
];
Return[K]];
nodcoor={{-4,3},{0,3},{4,3},{0,0}};
elenod= {{1,2},{2,3},{1,4},{2,4},{3,4}};
elemat= Table[{3000,0,0,0},{5}];
elefab= Table[{2},{5}];
eleopt= {True};
K=AssembleMasterStiffnessPlaneTruss[nodcoor,elenod,elemat,elefab,eleopt];
Print["Master Stiffness of Example Truss:"];
Print[K//MatrixForm];
Print["Eigs of K=",Chop[Eigenvalues[N[K]]]];
25–8
25–9 §25.3 COMPLICATIONS
3m
E=200000 MPa, A=0.003 m2
E=200000 MPa, A=0.001 m2
E=200000 MPa, A=0.001 m2 4m 4m
Figure 25.4. A frame-truss structure that illustrates assembly with multiple element
types (beams and bars) and different nodal freedom configurations.
(a) (b)
FEM idealization 1 Beam-column 2 Beam-column 3
Bar
Bar Bar
disassembly
4
(c)
(1) (2) (d)
1(1,2,3) 2(4,5,6) 3(7,8,9) 1(1,2,3) 2(4,5,6) 3(7,8,9)
(3) (5)
(4) assembly
4(10,11) 4(10,11)
We now proceed to go over the assembly process by hand. The master stiffness K is displayed as a fully
stored matrix for visualization convenience. The process beging by initialization of K = 0.
1 2 3 4 5 6
(25.13)
u x1 u y1 θz1 u x2 u y2 θz2
The mapping between the element and global freedoms is specified by the EFT
element: 1 2 3 4 5 6
(25.14)
assembly: 1 2 3 4 5 6
25–9
Chapter 25: THE ASSEMBLY PROCESS 25–10
150. 0. 0. −150. 0. 0. 1
0. 22.5 45. 0. −22.5 45. 2
0. 45. 120. 0. −45. 60. 3
K(1) = (25.15)
−150. 0. 0. 150. 0. 0. 4
0. −22.5 −45. 0. 22.5 −45. 5
0. 45. 60. 0. −45. 120. 6
150. 0. 0. −150. 0. 0. 0 0 0 0 0 1
0. 22.5 45. 0. −22.5 45. 0 0 0 0 0 2
0. 45. 120. 0. −45. 60. 0 0 0 0 0 3
−150. 0. 0. 150. 0. 0. 0 0 0 0 0 4
0. −22.5 −45. 0. 22.5 −45. 0 0 0 0 0 5
K = 0. 45. 60. 0. −45. 120. 0 0 0 0 0 6 (25.16)
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
1 2 3 4 5 6
(25.17)
u x2 u y2 θz2 u x3 u y3 θz3
element: 1 2 3 4 5 6
(25.18)
assembly: 4 5 6 7 8 9
150. 0. 0. −150. 0. 0. 4
0. 22.5 45. 0. −22.5 45. 5
0. 45. 120. 0. −45. 60. 6
K(2) = (25.19)
−150. 0. 0. 150. 0. 0. 7
0. −22.5 −45. 0. 22.5 −45. 8
0. 45. 60. 0. −45. 120. 9
25–10
25–11 §25.3 COMPLICATIONS
1 2 3 4
(25.21)
u x1 u y1 u x4 u y4
element: 1 2 3 4
(25.22)
assembly: 1 2 10 11
1 2 3 4
(25.25)
u x2 u y2 u x4 u y4
25–11
Chapter 25: THE ASSEMBLY PROCESS 25–12
element: 1 2 3 4
(25.26)
assembly: 4 5 10 11
0 0 0 0 4
0 200. 0 −200. 5
K(4) = (25.27)
0 0 0 0 10
0 −200. 0 200. 11
175.6 −19.2 0. −150. 0. 0. 0 0 0 −25.6 19.2
−19.2 36.9 45. 0. −22.5 45. 0 0 0 19.2 −14.4
0. 45. 120. 0. −45. 60. 0 0 0 0 0
−150. 0. 0. 300. 0. 0. −150. 0. 0. 0 0 4
0. −22.5 −45. 0. 245. 0. 0. −22.5 45. 0 −200. 5
K = 0. 45. 60. 0. 0. 240. 0. −45. 60. 0 0
0 0 0 −150. 0. 0. 150. 0. 0 0 0
0 0 0 0. −22.5 −45. 0. 22.5 −45. 0 0
0 0 0 0. 45. 60. 0. −45. 120. 0 0
−25.6 19.2 0 0 0 0 0 0 0 25.6 −19.2 10
19.2 −14.4 0 0 −200. 0 0 0 0 −19.2 214.4 11
(25.28)
1 2 3 4
(25.29)
u x2 u y2 u x4 u y4
element: 1 2 3 4
(25.30)
assembly: 7 8 10 11
25.6 19.2 −25.6 −19.2 7
19.2 14.4 −19.2 −14.4 8
K(5) = (25.31)
−25.6 −19.2 25.6 19.2 10
−19.2 −14.4 19.2 14.4 11
25–12
25–13 §25.3 COMPLICATIONS
REMARK 25.1
For storage as a skyline matrix the connection between nodes 1 and 3 would be out of the skyline envelope. Omitting
the lower triangle the skyline template for (25.32) looks like
Examination of the skyline template (25.33) reveals that some additional zero entries could be removed from the
template; for example K 13 . The fact that those entries are exactly zero is, however, fortuitous. It comes from the
fact that some elements such as the beams are aligned along x, which decouples axial and bending stiffnesses.
Cell 25.3 gives a Mathematica implementation of the assembly process for the frame-truss structure
just described. This is done by module AssembleMasterStiffnessPlaneFrameTruss. The two
subordinate modules Stiffness2DBar and Stiffness2DBeamColumn, which implement the stiffness
matrix calculation for a plane bar and beam-column, respectively, are omitted to save space. These are
the same used in Chapter 21.
25–13
Chapter 25: THE ASSEMBLY PROCESS 25–14
Cell 25.3 - A Mathematica Assembler for the Frame-Truss Example of Figure 25.4
AssembleMasterStiffnessPlaneFrameTruss[nodcoor_,eletyp_,
elenod_,elemat_,elefab_,eleopt_,NFCT_]:=Module[
{numele=Length[elenod],numnod=Length[nodcoor],
numdof,e,eNL,eftab,n,ni,nj,i,j,k,m,mi,mj,
ncoor,mprop,fprop,opt,NFMT,Ke,K}, NFMT=Table[0,{numnod}];
m=0; For [n=1,n<=numnod,n++, k=NFCT[[n]];
If [k>0, NFMT[[n]]=m; m+=k, NFMT[[n]]=-1]]; numdof=m;
K=Table[0,{numdof},{numdof}];
For [e=1, e<=numele, e++,
eNL=elenod[[e]]; {ni,nj}=eNL; mi=NFMT[[ni]]; mj=NFMT[[nj]];
ncoor={nodcoor[[ni]],nodcoor[[nj]]};
mprop=elemat[[e]]; fprop=elefab[[e]]; opt=eleopt;
If [eletyp[[e]]=="Bar",
{ni,nj}=eNL; mi=NFMT[[ni]]; mj=NFMT[[nj]];
ncoor={nodcoor[[ni]],nodcoor[[nj]]};
eftab={mi+1,mi+2,mj+1,mj+2};
Ke=Stiffness2DBar[ncoor,mprop,fprop,opt]];
If [eletyp[[e]]=="BeamColumn",
{ni,nj}=eNL; mi=NFMT[[ni]]; mj=NFMT[[nj]];
ncoor={nodcoor[[ni]],nodcoor[[nj]]};
eftab={mi+1,mi+2,mi+3,mj+1,mj+2,mj+3};
Ke=Stiffness2DBeamColumn[ncoor,mprop,fprop,opt]];
neldof=Length[Ke];
For [i=1, i<=neldof, i++, ii=eftab[[i]];
For [j=i, j<=neldof, j++, jj=eftab[[j]];
K[[jj,ii]]=K[[ii,jj]]+=Ke[[i,j]]
];
];
];
Return[K]
];
nodcoor={{-4,3},{0,3},{4,3},{0,0}};
eletyp= {"BeamColumn","BeamColumn","Bar","Bar","Bar"};
elenod= {{1,2},{2,3},{1,4},{2,4},{3,4}};
elemat= Join[Table[{30000,0,0,0},{2}],Table[{200000,0,0,0},{3}]];
elefab= {{0.02,0.004},{0.02,0.004},{0.001},{0.003},{0.001}};
eleopt= {True}; NFCT= {3,3,3,2};
K=AssembleMasterStiffnessPlaneFrameTruss[nodcoor,eletyp,
elenod,elemat,elefab,eleopt,NFCT]; K=Chop[K];
Print["Master Stiffness of Example Frame-Truss:"];
Print[K//MatrixForm];
Print["Eigs of K=",Chop[Eigenvalues[N[K]]]];
25–14
25–15 §25.4 *KINEMATIC RELEASES
eletyp A list of element type identifiers provided as character strings: "Bar" for a bar element
or "BeamColumn" for a beam-column element. For the example frame-truss structure
eletyp is { "BeamColumn","BeamColumn","Bar","Bar","Bar" }.
NFCT The Node Freedom Count Table (NFCT) is an integer array with one entry per node.
Entry NFCT[[n]]=k if there are k≥ 0 degrees of freedom defined at node n. If k is
zero, node n has not been defined. The NFCT for the example structure of Figure 25.4 is
{ 3,3,3,2 }. In Cell 25.3 this array is directly set by the test statements. The construction
of this table from more primitive node freedom data is the subject of Exercise 25.2.
The element fabrication list elefab has minor modifications. A plane beam-column element requires
two properties: { A,Izz }, which are the cross section area and the moment of inertia about the local
z axis. A bar element requires only the cross section area: { A }. For the example frame-truss struc-
ture elefab is { { 0.02,0.004 },{ 0.02,0.004 },{ 0.001 },{ 0.003 }, { 0.001 } } in accordance with
Figure 25.4. The element material property list elemat is modified on the account that the elastic moduli
for the beam and bars is different. The other arguments are the same as in Cell 25.1.
Upon entry the assembler proceeds to build the Node Freedom Map Table or NFMT from NFCT. This
is an array with one entry per node. Entry NFT[[n]]=i , i≥0, if the global freedoms associated with
node n are i+1, ... ,i+k, where k=NFCT[[n]]. If node n is undefined, NFMT[[n]]=-1. For
example, the NFMT for the frame-truss example structure is { 0,3,6,9 }. The total number of degrees
of freedoms, numdof, is obtained as a byproduct, and used to initialize the master stiffness array.
The assembler then loops over the elements and unpacks data. It calls the appropriate element stiffness
module according to element type. The NFMT is used to construct the Element Freedom Table (EFT)
array. The merging logic (the two For loops at the end of the element loop) is common to both elements.
Running the test statements shown at the end of Cell 25.3 produces the output shown in Cell 25.4. This
reproduces the master stiffness (25.32). The eigenvalue analysis verifies that the assembled stiffness
has the correct rank of 11 − 3 = 8.
25–15
Chapter 25: THE ASSEMBLY PROCESS 25–16
(a) (b)
MFC
FEM idealization 1 Beam-column 2 Beam-column 3
Bar
Bar
Bar
disassembly
4
(c)
(6) MFC
(d)
(1) (2)
1(1,2,3) 2(4,5,6) 3(7,8,9) 1(1,2,3) 2(4,5,6) 3(7,8,9)
(3) (5)
(4) assembly
4(10,11) 4(10,11)
Occassionally it is necessary to account for kinematic releases that preclude freedoms at a node to be the same.
This occurs when modeling devices such as hinges and expansion joints. The treatment of these cases by freedom
injection or node duplication is left to future version of these Notes.
To see the effect of imposing an MFC through the Lagrange multiplier method on the configuration of the master
stiffness matrix, suppose that the frame-truss example structure of the previous section is subjected to the constraint
that nodes 1 and 3 must move vertically by the same amount. That is,
u y1 = u y3 or u y1 − u y3 = 0. (25.35)
For assembly purposes (25.35) may be viewed as an element labeled as (6). See Figure 25.6.
The degrees of freedom of the assembled structure increase by one to 12. They are ordered as follows:
GDOF #: 1 2 3 4 5 6 7 8 9 10 11 12
(25.36)
DOF: u x1 u y1 θz1 u x2 u y2 θz2 u x3 u y3 θz3 u x4 u y4 λ(6)
The assembly of the first five elements proceeds as explained before, and produces the same master stiffness as
25–16
25–17 §25.5 *IMPOSING A MULTIFREEDOM CONSTRAINT
(25.32), except for an extra zero row and column. Processing the MFC element (6) yields
175.6 −19.2 0. −150. 0. 0. 0 0 0 −25.6 19.2 0
−19.2 36.9 45. 0. −22.5 45. 0 0 0 19.2 −14.4 1.
0. −45. 60. 0
45. 120. 0. 0 0 0 0 0
−150. 0. 0. 300. 0. 0. −150. 0. 0. 0 0 0
0. −22.5 −45. 0. 245. 0. 0. −22.5 45. 0 −200. 0
0. 45. 60. 0. 0. 240. 0. −45. 60. 0 0 0
K=
0 0 0 −150. 0. 0. 175.6 19.2 0 −25.6 −19.2 0
0 −22.5 −45. 19.2 36.9 −45. −19.2 −14.4 −1.
0 0 0.
0 0 0 0. 45. 60. 0. −45. 120. 0 0 0
−25.6 19.2 0 0 0 0 −25.6 −19.2 0 51.2 0 0
19.2 −14.4 0 0 −200. 0 −19.2 −14.4 0 0 228.8 0
0 1. 0 0 0 0 0 −1. 0 0 0 0
(25.37)
in which the coefficients 1 and −1 associated with the MFC (25.35) end up in the last row and column.
25–17
Chapter 25: THE ASSEMBLY PROCESS 25–18
EXERCISE 25.1
[A+C:5+10] The Freedom Activity Table, or FAT, is a two-dimensional data structure that marks which degrees
of freedoms (DOF) are specified at each node. Entry FAT[[n]] is a one-dimensional list of freedom activity tags.
For example, suppose that1 up to six DOF: three translations and three rotations ordered as
can be specified at each node n = 1, 2, . . .. Then each entry of the FAT If the j th freedom is defined it is identified
by a one, and if undefined by a zero. The configuration of the FAT for the plane truss example structure of Figure
25.2 is
FAT = { { 1,1,0,0,0,0 }, { 1,1,0,0,0,0 }, { 1,1,0,0,0,0 }, { 1,1,0,0,0,0 } }
which says that only u xn and u yn are defined at each of the four nodes.
(a) Show how the FAT of the frame-truss structure of Figure 25.4 looks like if this marking scheme is used.
(Note: θn is the same as θzn .)
(b) Suppose that the nodes of the frame-truss structure of Figure 25.4 are numbered 1, 2, 5 and 6 instead of 1, 2,
3 and 4. In other words, there is a “node gap” in that nodes 3 and 4 are undefined. Show how the FAT would
then look like.
EXERCISE 25.2
[A+C:15] The Node Freedom Count Table, or NFCT, is an array with one entry per node. Entry NFT[[n]]=k if
there are k≥ 0 defined DOFs at node n. If k is zero, node n has not been defined. For example, the NFCT for the
frame-truss structure of Figure 25.4 is
NFCT = { 3,3,3,2 } (E25.2)
Write a Mathematica module NodeFreedomCountTable that receives the FAT as only argument and returns
NFCT. Test the module for the frame-truss example structure. Hint: a one-liner implementation is
NodeFreedomCountTable[FAT ]:=Table[Sum[FAT[[n,i]],{ i,1,6 }],{ n,1,Length[FAT] }];
but this is difficult to figure out. Try a more readable form.
EXERCISE 25.3
[A+C:15] The Node Freedom Map Table, or NFMT, is an array with one entry per node. Entry NFMT[[n]]=i
with i≥0, if the global freedoms associated with node n are i+1, ... ,i+k, where k=NFCT[[n]]. If node n is
undefined, NFMT[[n]]=-1.2 For example, the NFMT for the frame-truss structure of Figure 25.4 is
Write a Mathematica module NodeFreedomMapTable that receives the NFCT as only argument and returns
NFMT. Test the module for this example structure. Hint: the logic can be copied from code in Chapter 25 if you
know where to look.
1 This is actually the scheme implemented in the NASTRAN commercial FEM code
2 Other schemes are used in FEM codes; this is just one of several possible choices.
25–18
25–19 Exercises
(a) (b)
FEM idealization 1 Beam-column 2 Beam-column 3
Plate
Bar
Bar
E =240000 MPa, ν=1/3 Plate
Plate
h =1.6 mm =0.0016 m, 4 Bar
disassembly
Other dimensions & properties
same as in Figure 25.4
(c)
(1) (2) (d)
Beam-column Beam-column 3(7,8,9)
1(1,2,3) 2(4,5,6) 3(7,8,9) 1(1,2,3) 2(4,5,6)
Plate Plate
4(10,11) 4(10,11)
EXERCISE 25.4
[A/C:25] The frame-truss structure of Figure 25.4 is reinforced with two triangular steel plates attached as shown
in Figure E25.1(a). The plate thickness is 1.6 mm= 0.0016 m; the material is isotropic with E = 240000 MPa and
ν = 1/3. The reinforcing plates are modeled with two plane stress 3-node linear triangles numbered (6) and (7),
as illustrated in Figure E25.1(b,c). Compute the master stiffness matrix K of the structure.3
This exercise may be done through Mathematica. For this download Notebook ExampleAssemblers.nb from this
Chapter index, and complete Cell 3 by writing the assembler.4 The plate element identifier is "Trig3". Debugging
hint: check that matrix (25.32) is obtained if the plate thickness h plate is (temporarily) set to zero.
Target:
337.6
−19.2 0 −312. −72. 0 0 0 0 −25.6 91.2
−19.2 90.9 45. −72. −76.5 45. 0 0 0 91.2 −14.4
0 −45. 0
45. 120. 0 60. 0 0 0 0
−312. −72. 0 816. 0 0 −312. 72. 0 −192. 0
−72. −76.5 −45. 0 929. 0 72. −76.5 45. 0 −776.
K= 0 45. 60. 0 0 240. 0 −45. 60. 0 0 (E25.4)
0 −312. −25.6 −91.2
0 0 72. 0 337.6 19.2 0
0 −76.5 −45. 19.2 90.9 −45. −91.2 −14.4
0 0 72.
0 0 0 0 45. 60. 0 −45. 120. 0 0
−25.6 91.2 0 −192. 0 0 −25.6 −91.2 0 243.2 0
91.2 −14.4 0 0 −776. 0 −91.2 −14.4 0 0 804.8
3 This structure would violate the compatibility requirements stated in Chapter 19 unless the beams are allow to deflect laterally
independently of the plates. This is the fabrication sketched in Figure E25.1(a).
4 Cells 1 and 2 contain working assemblers for plane truss and plane frames, respectively, which may be used as templates.
25–19