INCAS BULLETIN, Volume 6, Issue 1/ 2014, pp. 21 – 36 ISSN 2066 – 8201
Computing Method of Forces on Rivet
Ion DIMA*
*Corresponding author
INCAS – National Institute for Aerospace Research “Elie Carafoli”
B-dul Iuliu Maniu 220, Bucharest 061126, Romania
DOI: 10.13111/2066-8201.2014.6.1.3
Abstract: This article aims to provide a quick methodology of forces calculation on rivet in single shear
using the finite element method (FEM) – NASTRAN/PATRAN. These forces can be used for the calculus
of bearing, inter rivet buckling and riveting check. For this method to be efficient and fast, a macro has
been developed based on this methodology described in the article. The macro was wrote in Visual
Basic with Excel interface. In the beginning phase of any aircraft project, when the rivets type and
position are not yet precisely known, the modelling of rivets, as attachment elements between items, is
made node on node in the finite element model, without taking account of the rivets position. Although
the rivets are not modelled in the finite element model, this method together with the macro enable a
quick extraction and calculation of the forces on the rivet. This calculation of forces on rivet is intended
to critical case, selected from the stress plots of NASTRAN for max. /min. principal stress and shear.
Key Words: rivet, bearing, inter rivet buckling, riveting check, reserve factor, macro, pitch of riveting,
endloads, the flow of force, FEM, NASTRAN/PATRAN, Visual Basic, Excel
1. INTRODUCTION
Widely, in the beginning phase of any aircraft project a rough model with finite elements is
used. This model has to be easy to update at any modification of design and should give quick
and reliable results.
Thus with the modeling technique the shells and bars elements are used. The rivets, as
attachment elements, are not modelled, because their type and position are not precisely
known. Therefore the attachment between the items are made node on node, without taking
account of the rivets position.
Although the rivets are not modelled in the finite element model, this method enable a
quick extraction and calculation of the forces on the rivet. For this method to be efficient a
macro has been developed based on this methodology. The macro was wrote in Visual Basic
with Excel interface.
Generally, the NASTRAN/PATRAN software is used for the modeling of the aircraft
structure. This calculation of forces on rivet is made for critical case, selected from stress plots
of NASTRAN for max. /min. principal stress and shear.
The following chapters discuss both the methodology and the macro for a fast calculation
of forces on rivet.
2. COMPUTING METHOD OF FORCES ON RIVET
The modeling technique with shell elements for skin, ribs and stringers, using
NASTRAN/PATRAN software is shown in figures below.
Ion DIMA 22
INCAS BULLETIN, Volume 6, Issue 1/ 2014
Fig. 1 CATIA and FEM structural model of the trailing edge of the wing
In PATRAN, there is the option NOELOP (PARAM, NOELOP, 1), in which the sum of
the grid point forces (GPFORCE Case Control command) is computed parallel to the edges of
adjacent elements, called endload forces.
To use this option, a group with nodes, where the endload forces shall be computed, has
to be created.
For the NASTRAN output request should be given the option GPFORCE, with PARAM,
NOELOP, 1 - see figure below.
CATIA Model
StringerFEM Model
Lateral
directionLongitudinal
direction
Skin
Riveting
Transversal
direction
Rib
Rib
Shell
elements
Rib
Stringer
Skin
23 Computing Method of Forces on Rivet
INCAS BULLETIN, Volume 6, Issue 1/ 2014
Fig. 2 bdf file – with PARAM, NOELOP, 1 input data
After running to NASTRAN, the output results shall be printed in f06 file, as it is shown in
the figure below:
Fig. 3 f06 file – output results
Ion DIMA 24
INCAS BULLETIN, Volume 6, Issue 1/ 2014
The meaning of the entity names from Figure 3 is:
POINT – ID is a pointed node and ORIENT – ID is an oriented node. TENSION refers to
the force which acts from POINT – ID to ORIENT – ID. Positive value is the tension and the
negative value refers to compression.
Based on these endloads forces, from NASTRAN, force diagrams along longitudinal,
transversal and lateral directions will be built, as seen in figures below:
Fig. 4 Overview of classical structure, modeling in FEM with quad elements
Node_n
Rib_n
Quads
elements
Rivet
Rivets
dir. 1 –
Longitudinal direction
dir. 3 -
Lateral direction Rib_i Node_i
dir. 2 –
Transversal direction Pitch of
riveting - p
Flange of
spar
Rib_2
Node_2 This symbol
indicates the
position of rivets Rib_1
Node_1
Node 1
POINT-ID ORIENT-ID
Node 2
25 Computing Method of Forces on Rivet
INCAS BULLETIN, Volume 6, Issue 1/ 2014
Fig. 5 Force diagrams based on endload forces, extracted from NASTRAN
Longitudinal direction – final
force diagram
Transversal direction –
final force diagram
Lateral direction
– final force
diagram
Ion DIMA 26
INCAS BULLETIN, Volume 6, Issue 1/ 2014
In the figure above for lateral direction, the negative force should be neglected, because
the negative force refers to the compression force due to contact between parts. Only the
positive force, T32, should be taken into account.
The following assumptions were made: in the area where the forces keep the same sign,
the highest amplitude of forces was considered in the final force diagram- – see figures above.
The formula for calculating the maximum flow of the force in longitudinal, transversal or
lateral direction is:
i
itot
L
Tnf
max,
max
*
where:
ntot,i is the total number of subintervals of interval i;
Li is the length of interval i;
Tmax is the maximum force from the final force diagrams – see Figure 5, in
longitudinal, transversal or lateral direction.
For a better understanding of the notations used in the above formula, see figure below:
Fig. 6 Positions of nodes and rivets along the longitudinal direction
Note: The interval is defined as a length where the forces keep the same sign.
The formula for calculating the maximum force on rivet in longitudinal, transversal or lateral
direction is:
maxmaxmax, * pfF rivet
where:
Fmax,rivet is the maximum force on rivet in longitudinal, transversal or lateral direction;
pmax is the maximum pitch of riveting on the interval i.
The general formula for the reserve factor of rivet is:rivet
allrivet
rivetF
FRF
max,
, , where Frivet,all is
the allowable force of rivet (tension/shear allowable force).
Therefore, for example:
for bearing check, the max. shear force has to be used:2
,max,
2
,max, TrivetLrivetsh FFF
according to HSB 21020-01, Issue D, 1988. Fmax,rivet,L and Fmax,rivet,T are the forces in
the longitudinal and transversal direction, which act in the shear plane of the rivet;
for inter rivet buckling it has to be used Fmax,rivet,L, according with HSB 45131-01, Issue
C, 2004;
Subinterval, j Tmax li
Rivet, i
pmax
Node 2 Node 3 Node 1 Node i
(critical node) Node n Node i+1
(critical node) Li
Interval, i
27 Computing Method of Forces on Rivet
INCAS BULLETIN, Volume 6, Issue 1/ 2014
for riveting check it has to be used: Fsh for shear of rivet and the maximum force on
rivet in lateral direction, Fmax,rivet,S for tension of rivet. The combined shear and tension
loading have to be applied, according with HSB 20210-01, Issue C, 1976 and HSB
24000-01, Issue D, 2006.
Remark:
Because in the finite element model the rivets are not modeled, the attachment between the
parts are made node on node, the Fmax,rivet, force is the total force per rivet, considering both
the skin and the flange – see figure below.
Fig. 7 Total force per rivet, with contribution both the skin and the flange
For this reason, the Fmax,rivet, force has to divide in two parts. The F1 force is force that acts
on the skin and F2 is force acting on the flange. The formulas for these forces calculation are
written below:
rivetFEtEt
EtF max,
2211
111 *
**
*
, rivetF
EtEt
EtF max,
2211
222 *
**
*
, 21max, FFF rivet
3. THE MACRO FOR CALCULATION FORCES ON RIVET
A macro was written in Visual BASIC with Excel interface, based on the method which was
described in chapter 2. This macro with Excel interface has a user guide sheet which explains
how to use it and a rivet forces calculation sheet, attached at this article.
Before launching this macro, the input data have to be prepared.
copy endload forces from NASTRAN f06 file (NASTRAN results) to the rivet forces
calculation sheet;
extract from the PATRAN bdf file (PATRAN input) the riveting nodes with their
coordinates X, Y and Z. The writing of riveting nodes has to be maintained in the same
order such as defined in FEM;
the pitch of riveting has to be defined;
run macro;
This macro is able to:
extract the endload forces from NASTRAN f06 file;
calculate the maximum force of each interval, i;
find the critical position of Node i and Node i+1, where the force is maximum on each
interval i;
find the maximum pitch pmax of each interval i;
calculate the length Li of each interval i;
count the total number of subintervals of each interval i;
calculate the total force Fmax, rivet per rivet of each interval i;
t1, E1 F1
CSK Rivet Skin
Fmax, rivet
F2 t2, E2
Flange
Ion DIMA 28
INCAS BULLETIN, Volume 6, Issue 1/ 2014
The results from macro are:
the macro writes the nodes of riveting, the length between them and the endload
values;
the macro writes the nodes of riveting and the maximum endload value of each
interval i;
the macro computes the total force per rivet, Fmax,rivet, for each interval i;
the macro writes nodes and their position where there is the maximum endload value
of each interval i;
the macro writes the total number of subintervals of each interval i;
the macro writes the total length of each interval i;
the macro writes the maximum pitch between the rivets of each interval i.
A software code of this macro which performs all commands for calculating the riveting
forces, is written below in VISUAL BASIC:
Option Base 1
Type Tab_F
G1 As Long
G2 As Long
F As Single
End Type
Type Tab_N
ID As Long
X As Single
Y As Single
Z As Single
p As Single
End Type
Type Tab_Max_F
G1 As Long
G2 As Long
F As Single
End Type
Type Tab_F_Sub
G1 As Long
G2 As Long
L_Sub As Single
F As Single
p As Single
X As Single
Y As Single
Z As Single
End Type
Dim F() As Tab_F
Dim N() As Tab_N
29 Computing Method of Forces on Rivet
INCAS BULLETIN, Volume 6, Issue 1/ 2014
Dim F_Sub() As Tab_F_Sub
Dim Max_F() As Tab_Max_F
Dim Nr_Endloads As Single
Dim Nr_Nodes As Single
Dim N1 As Long
Dim N2 As Long
Dim F_Max As Single
Dim F_Min As Single
Dim F_Z As Single
Dim L_Sub_P As Single
Dim L_Sub_N As Single
Dim L_Sub_Z As Single
Dim p_max As Single
Dim X_crit As Single
Dim Y_crit As Single
Dim Z_crit As Single
Dim N1_crit As Single
Dim N2_crit As Single
Sub Fast_Calc()
er1 = True: er2 = True: er3 = True: er4 = True: c_er1 = 0
ii = 1
While Cells(ii, 1) <> ""
ii = ii + 1
er1 = IsNumeric(Cells(ii, 1))
er2 = IsNumeric(Cells(ii, 2))
er3 = IsNumeric(Cells(ii, 3))
er4 = er1 And er2 And er3
If er4 = False Then
c_er1 = c_er1 + 1
End If
Wend
Nr_Endloads = ii - 2
If c_er1 <> 0 Then
MsgBox ("There are " & c_er1 & " error in Endload input data !!" &
& Chr(13) & "Only numerical values are allowed!!" &
& Chr(13) & "Please update the input data!!")
End If
er1 = True: er2 = True: er3 = True
er4 = True: er5 = True: er6 = True: c_er2 = 0
jj = 1
While Cells(jj, 4) <> ""
jj = jj + 1
er1 = IsNumeric(Cells(jj, 4))
er2 = IsNumeric(Cells(jj, 5))
er3 = IsNumeric(Cells(jj, 6))
Ion DIMA 30
INCAS BULLETIN, Volume 6, Issue 1/ 2014
er4 = IsNumeric(Cells(jj, 7))
er5 = IsNumeric(Cells(jj, 8))
er6 = er1 And er2 And er3 And er4 And er5
If er6 = False Then
c_er2 = c_er2 + 1
End If
Wend
Nr_Nodes = jj - 2
If c_er2 <> 0 Then
MsgBox ("There are " & c_er2 & " error in Nodes input data !!" &
& Chr(13) & "Only numerical values are allowed!!" &
& Chr(13) & "Please update input data!!"): Exit Sub
End If
If c_er1 <> 0 Then
Exit Sub
End If
Range("I2:X1048576").Select
Selection.Clear
ReDim F(1 To Nr_Endloads)
For i = 1 To Nr_Endloads
F(i).G1 = Cells(i + 1, 1).Value
F(i).G2 = Cells(i + 1, 2).Value
F(i).F = Cells(i + 1, 3).Value
Next i
ReDim N(1 To Nr_Nodes)
For i = 1 To Nr_Nodes
N(i).ID = Cells(i + 1, 4).Value
N(i).X = Cells(i + 1, 5).Value
N(i).Y = Cells(i + 1, 6).Value
N(i).Z = Cells(i + 1, 7).Value
N(i).p = Cells(i + 1, 8).Value
Next i
ReDim F_Sub(1 To Nr_Nodes - 1)
For i = 1 To Nr_Nodes - 1
N1 = N(i).ID: N2 = N(i + 1).ID
For j = 1 To Nr_Endloads
If F(j).G1 = N1 And F(j).G2 = N2 Then
F_Sub(i).G1 = N1: F_Sub(i).G2 = N2
F_Sub(i).L_Sub = Sqr((N(i + 1).X - N(i).X) ^ 2 +
+ (N(i + 1).Y - N(i).Y) ^ 2 + (N(i + 1).Z - N(i).Z) ^ 2)
F_Sub(i).F = F(j).F
F_Sub(i).p = N(i).p
F_Sub(i).X = N(i).X
F_Sub(i).Y = N(i).Y
F_Sub(i).Z = N(i).Z
31 Computing Method of Forces on Rivet
INCAS BULLETIN, Volume 6, Issue 1/ 2014
End If
Next j
Cells(i + 1, 9).Value = F_Sub(i).G1
Cells(i + 1, 10).Value = F_Sub(i).G2
Cells(i + 1, 11).Value = F_Sub(i).L_Sub
Cells(i + 1, 12).Value = F_Sub(i).F
Next i
cont = 1
While Cells(cont, 9) <> ""
cont = cont + 1
Wend
nr_row = cont - 2
cont = 0: F_Max = 0: F_Min = 0: F_Z = 0
L_Sub_P = 0: L_Sub_N = 0: L_Sub_Z = 0: p_max = 0
X_crit = 0: Y_crit = 0: Z_crit = 0
i_p = 0: i_n = 0: i_z = 0
Do
cont = cont + 1
If cont <> 1 Then
If F_Sub(cont - 1).F > 0 Then
If F_Sub(cont - 1).F > F_Max Then
F_Max = F_Sub(cont - 1).F
X_crit = F_Sub(cont - 1).X
Y_crit = F_Sub(cont - 1).Y
Z_crit = F_Sub(cont - 1).Z
N1_crit = F_Sub(cont - 1).G1: N2_crit = F_Sub(cont - 1).G2
End If
…
Cells(cont - i_p + i, 13).Value = Max_F(i).G1
Cells(cont - i_p + i, 14).Value = Max_F(i).G2
Cells(cont - i_p + i, 15).Value = Max_F(i).F
If F_Sub(cont - i_p - 1 + i).p > p_max Then
p_max = F_Sub(cont - i_p - 1 + i).p
End If
Next i
Cells(cont - i_p + 1, 16).Value = i_p * F_Max * p_max / L_Sub_P
Cells(cont - i_p + 1, 17).Value = N1_crit
Cells(cont - i_p + 1, 18).Value = N2_crit
Cells(cont - i_p + 1, 19).Value = X_crit
Cells(cont - i_p + 1, 20).Value = Y_crit
Cells(cont - i_p + 1, 21).Value = Z_crit
Cells(cont - i_p + 1, 22).Value = i_p
Cells(cont - i_p + 1, 23).Value = L_Sub_P
Cells(cont - i_p + 1, 24).Value = p_max
Range("S" & cont - i_p + 1 & ":U" & cont - i_p + 1).Select
Selection.NumberFormat = "0.0"
Ion DIMA 32
INCAS BULLETIN, Volume 6, Issue 1/ 2014
Range("W" & cont - i_p + 1 & ":X" & cont - i_p + 1).Select
Selection.NumberFormat = "0.0"
F_Max = 0: L_Sub_P = 0: i_p = 0: i_z = 0: p_max = 0
End If
Else
For i = 1 To i_p
ReDim Preserve Max_F(i)
Max_F(i).G1 = F_Sub(cont - i_p - 1 + i).G1
Max_F(i).G2 = F_Sub(cont - i_p - 1 + i).G2: Max_F(i).F = F_Max
Cells(cont - i_p + i, 13).Value = Max_F(i).G1
Cells(cont - i_p + i, 14).Value = Max_F(i).G2
Cells(cont - i_p + i, 15).Value = Max_F(i).F
If F_Sub(cont - i_p - 1 + i).p > p_max Then
p_max = F_Sub(cont - i_p - 1 + i).p
End If
Next i
Cells(cont - i_p + 1, 16).Value = i_p * F_Max * p_max / L_Sub_P
Cells(cont - i_p + 1, 17).Value = N1_crit
Cells(cont - i_p + 1, 18).Value = N2_crit
Cells(cont - i_p + 1, 19).Value = X_crit
Cells(cont - i_p + 1, 20).Value = Y_crit
Cells(cont - i_p + 1, 21).Value = Z_crit
Cells(cont - i_p + 1, 22).Value = i_p
Cells(cont - i_p + 1, 23).Value = L_Sub_P
Cells(cont - i_p + 1, 24).Value = p_max
Range("S" & cont - i_p + 1 & ":U" & cont - i_p + 1).Select
Selection.NumberFormat = "0.0"
Range("W" & cont - i_p + 1 & ":X" & cont - i_p + 1).Select
Selection.NumberFormat = "0.0"
F_Max = 0: L_Sub_P = 0: i_p = 0: i_z = 0: p_max = 0
End If
ElseIf F_Sub(cont - 1).F < 0 Then
If F_Sub(cont - 1).F < F_Min Then
F_Min = F_Sub(cont - 1).F
X_crit = F_Sub(cont - 1).X: Y_crit = F_Sub(cont - 1).Y
Z_crit = F_Sub(cont - 1).Z
N1_crit = F_Sub(cont - 1).G1: N2_crit = F_Sub(cont - 1).G2
End If
L_Sub_N = L_Sub_N + F_Sub(cont - 1).L_Sub
i_n = i_n + 1
If cont <= nr_row Then
If F_Sub(cont).F >= 0 Then
For i = 1 To i_n
ReDim Preserve Max_F(i)
Max_F(i).G1 = F_Sub(cont - i_n - 1 + i).G1
Max_F(i).G2 = F_Sub(cont - i_n - 1 + i).G2: Max_F(i).F = F_Min
Cells(cont - i_n + i, 13).Value = Max_F(i).G1
Cells(cont - i_n + i, 14).Value = Max_F(i).G2
33 Computing Method of Forces on Rivet
INCAS BULLETIN, Volume 6, Issue 1/ 2014
Cells(cont - i_n + i, 15).Value = Max_F(i).F
If F_Sub(cont - i_n - 1 + i).p > p_max Then
p_max = F_Sub(cont - i_n - 1 + i).p
End If
Next i
Cells(cont - i_n + 1, 16).Value = i_n * F_Min * p_max / L_Sub_N
Cells(cont - i_n + 1, 17).Value = N1_crit
Cells(cont - i_n + 1, 18).Value = N2_crit
Cells(cont - i_n + 1, 19).Value = X_crit
Cells(cont - i_n + 1, 20).Value = Y_crit
Cells(cont - i_n + 1, 21).Value = Z_crit
Cells(cont - i_n + 1, 22).Value = i_n
Cells(cont - i_n + 1, 23).Value = L_Sub_N
Cells(cont - i_n + 1, 24).Value = p_max
Range("S" & cont - i_n + 1 & ":U" & cont - i_n + 1).Select
Selection.NumberFormat = "0.0"
Range("W" & cont - i_n + 1 & ":X" & cont - i_n + 1).Select
Selection.NumberFormat = "0.0"
F_Min = 0: L_Sub_N = 0: i_n = 0: i_z = 0: p_max = 0
End If
Else
For i = 1 To i_n
ReDim Preserve Max_F(i)
Max_F(i).G1 = F_Sub(cont - i_n - 1 + i).G1
Max_F(i).G2 = F_Sub(cont - i_n - 1 + i).G2: Max_F(i).F = F_Min
Cells(cont - i_n + i, 13).Value = Max_F(i).G1
Cells(cont - i_n + i, 14).Value = Max_F(i).G2
Cells(cont - i_n + i, 15).Value = Max_F(i).F
If F_Sub(cont - i_n - 1 + i).p > p_max Then
p_max = F_Sub(cont - i_n - 1 + i).p
End If
Next i
Cells(cont - i_n + 1, 16).Value = i_n * F_Min * p_max / L_Sub_N
Cells(cont - i_n + 1, 17).Value = N1_crit
Cells(cont - i_n + 1, 18).Value = N2_crit
Cells(cont - i_n + 1, 19).Value = X_crit
Cells(cont - i_n + 1, 20).Value = Y_crit
Cells(cont - i_n + 1, 21).Value = Z_crit
Cells(cont - i_n + 1, 22).Value = i_n
Cells(cont - i_n + 1, 23).Value = L_Sub_N
Cells(cont - i_n + 1, 24).Value = p_max
Range("S" & cont - i_n + 1 & ":U" & cont - i_n + 1).Select
Selection.NumberFormat = "0.0"
Range("W" & cont - i_n + 1 & ":X" & cont - i_n + 1).Select
Selection.NumberFormat = "0.0"
F_Min = 0: L_Sub_N = 0: i_n = 0: i_z = 0: p_max = 0
End If
Else
Ion DIMA 34
INCAS BULLETIN, Volume 6, Issue 1/ 2014
If F_Sub(cont - 1).F = F_Z Then
F_Z = F_Sub(cont - 1).F
X_crit = F_Sub(cont - 1).X: Y_crit = F_Sub(cont - 1).Y
Z_crit = F_Sub(cont - 1).Z
N1_crit = F_Sub(cont - 1).G1: N2_crit = F_Sub(cont - 1).G2
Else
MsgBox ("There is an error in input data. &
& Please check input data (it should be only real numbers)!")
End If
L_Sub_Z = L_Sub_Z + F_Sub(cont - 1).L_Sub
i_z = i_z + 1
If cont <= nr_row Then
If F_Sub(cont).F > 0 Or F_Sub(cont).F < 0 Then
For i = 1 To i_z
ReDim Preserve Max_F(i)
Max_F(i).G1 = F_Sub(cont - i_z - 1 + i).G1
Max_F(i).G2 = F_Sub(cont - i_z - 1 + i).G2: Max_F(i).F = F_Z
Cells(cont - i_z + i, 13).Value = Max_F(i).G1
Cells(cont - i_z + i, 14).Value = Max_F(i).G2
Cells(cont - i_z + i, 15).Value = Max_F(i).F
If F_Sub(cont - i_z - 1 + i).p > p_max Then
p_max = F_Sub(cont - i_z - 1 + i).p
End If
Next i
If L_Sub_Z = 0 Then L_Sub_Z = 1
Cells(cont - i_z + 1, 16).Value = i_z * F_Z * p_max / L_Sub_Z
Cells(cont - i_z + 1, 17).Value = N1_crit
Cells(cont - i_z + 1, 18).Value = N2_crit
Cells(cont - i_z + 1, 19).Value = X_crit
Cells(cont - i_z + 1, 20).Value = Y_crit
Cells(cont - i_z + 1, 21).Value = Z_crit
Cells(cont - i_z + 1, 22).Value = i_z
Cells(cont - i_z + 1, 23).Value = L_Sub_Z
Cells(cont - i_z + 1, 24).Value = p_max
Range("S" & cont - i_z + 1 & ":U" & cont - i_z + 1).Select
Selection.NumberFormat = "0.0"
Range("W" & cont - i_z + 1 & ":X" & cont - i_z + 1).Select
Selection.NumberFormat = "0.0"
F_Z = 0: L_Sub_Z = 0: i_n = 0: i_p = 0: i_z = 0: p_max = 0
End If
Else
For i = 1 To i_z
ReDim Preserve Max_F(i)
Max_F(i).G1 = F_Sub(cont - i_z - 1 + i).G1
Max_F(i).G2 = F_Sub(cont - i_z - 1 + i).G2: Max_F(i).F = F_Z
Cells(cont - i_z + i, 13).Value = Max_F(i).G1
Cells(cont - i_z + i, 14).Value = Max_F(i).G2
Cells(cont - i_z + i, 15).Value = Max_F(i).F
35 Computing Method of Forces on Rivet
INCAS BULLETIN, Volume 6, Issue 1/ 2014
If F_Sub(cont - i_z - 1 + i).p > p_max Then
p_max = F_Sub(cont - i_z - 1 + i).p
End If
Next i
If L_Sub_Z = 0 Then L_Sub_Z = 1: MsgBox ("There are not endloads!!")
Cells(cont - i_z + 1, 16).Value = i_z * F_Z * p_max / L_Sub_Z
Cells(cont - i_z + 1, 17).Value = N1_crit
Cells(cont - i_z + 1, 18).Value = N2_crit
Cells(cont - i_z + 1, 19).Value = X_crit
Cells(cont - i_z + 1, 20).Value = Y_crit
Cells(cont - i_z + 1, 21).Value = Z_crit
Cells(cont - i_z + 1, 22).Value = i_z
Cells(cont - i_z + 1, 23).Value = L_Sub_Z
Cells(cont - i_z + 1, 24).Value = p_max
Range("S" & cont - i_z + 1 & ":U" & cont - i_z + 1).Select
Selection.NumberFormat = "0.0"
Range("W" & cont - i_z + 1 & ":X" & cont - i_z + 1).Select
Selection.NumberFormat = "0.0"
F_Z = 0: L_Sub_Z = 0: i_n = 0: i_p = 0: i_z = 0: p_max = 0
End If
End If
End If
Loop Until Cells(cont + 1, 9).Value = ""
Range("K2:L" & Nr_Nodes).Select
Selection.NumberFormat = "0.0"
Range("O2:P" & Nr_Nodes).Select
Selection.NumberFormat = "0.0"
End Sub
4. CONCLUSIONS
Using this methodology together with the macro, enables us to perform very quickly the
following:
extract the endload forces from NASTRAN f06 file;
calculate the maximum force of each interval, i;
find the critical position of Node i and Node i+1, where the force is maximum on each
interval i;
find the maximum pitch pmax of each interval i;
calculate the length Li of each interval i;
count the total number of subintervals of each interval i;
calculate the total force Fmax, rivet per rivet of each interval i;
The macro works with:
only numerical values, no other characters, no blank lines, no blank cells, no other
code for input data;
this issue of the macro works only load by load case (critical case);
Ion DIMA 36
INCAS BULLETIN, Volume 6, Issue 1/ 2014
at the beginning of the execution, the macro checks the input data. If the non -
numerical values are found, the macro stops the execution. After the input data have
been updated, the execution of macro can start.
This method is a useful tool to assess riveted assemblies when the finite elements model
is rough, the positions of the rivets are not respected and the attachment between the parts are
made node on node.
REFERENCES
[1] *** MSC NASTRAN Quick Reference Guide, 1999.
[2] *** MSC PATRAN Structural Analysis, Version 9, 1999.
[3] *** HSB 21020-01, Issue D, 1988.
[4] *** HSB 45131-01, Issue C, 2004.
[5] *** HSB 20210-01, Issue C, 1976.
[6] *** HSB 24000-01, Issue D, 2006.
[7] *** AIRBUS Static Stress Manual, Metallic Materials, MTS 004, Issue C, 1999.
[8] *** MIL – HDBK – 5J, January 2003.
[9] I. Dima, Additional Method WP 3.1.7 Part Stress Analysis, Fastener Check, INCAS Methodology, November
2013.
[10] I. Dima, Fastener Calculation Macro, Excel file, Issue 01, Internal Report INCAS, December 2013.