In this example, all input data is given directly in the notebook cells below. The data is given
in CSV form precisely as would be given in data files. For each table started by the cell
magic %%Table
, the table name follows immediately. If the data was instead provided in a data file
the file name would be the table name + .csv
.
This example is statically determinate for ease of checking -- the rightmost figure shows the reactions corresponding to factored values of the loads shown in the left figure. Units are $N$ and $mm$.
In [1]:
from IPython import display
display.SVG('data/frame-6b.d/frame-6b.svg')
Out[1]:
In [2]:
from Frame2D import Frame2D
f6b = Frame2D('frame-6b')
In [3]:
%%Table nodes
NODEID,X,Y,Z
A,0.,0.,5000.
B,0,4000,5000
C,8000,4000,5000
D,8000,0,5000
In [4]:
%%Table supports
NODEID,C0,C1,C2
A,FX,FY,MZ
D,FX,FY
In [5]:
%%Table members
MEMBERID,NODEJ,NODEK
AB,A,B
BC,B,C
CD,C,D
Table releases
(file releases.csv
) is optional and specifies internal force releases in some members.
Currently only moment releases at the 'j-' end ('MZJ
') and 'k-' end ('MZK
') are supported. These specify
that the internal bending moment at those locations are zero. You can only specify one release per line,
but you can have more than one line for a member.
In [6]:
%%Table releases
MEMBERID,RELEASE
AB,MZK
CD,MZJ
Table properties
(file properties.csv
) specifies the member properties for each member.
If the 'SST
' library is available, you may specify the size of the member by using the
designation of a shape in the CISC Structural Section Tables. If either IX
or A
is missing,
it is retreived using the sst
library. If the values on any line are missing, they
are copied from the line above.
In [7]:
%%Table properties
MEMBERID,SIZE,IX,A
BC,W460x106,,
AB,W310x97,,
CD,,
Table node_loads
(file node_loads.csv
) specifies the forces applied directly to the nodes.
DIRN
(direction) may be one of 'FX,FY,MZ'
. 'LOAD' is an identifier of the kind of load
being applied and F
is the value of the load, normally given as a service or specified load.
A later input table will specify load combinations and factors.
In [8]:
%%Table node_loads
LOAD,NODEID,DIRN,F
Wind,B,FX,-200000.
Table support_displacements
(file support_displacements.csv
) is optional and specifies imposed displacements
of the supports. DIRN
(direction) is one of 'DX, DY, RZ'
. LOAD
is as for Node Loads, above.
Of course, in this example the frame is statically determinate and so the support displacement will have no effect on the reactions or member end forces.
In [9]:
%%Table support_displacements
LOAD,NODEID,DIRN,DELTA
Other,A,DY,-10
Table member_loads
(file member_loads.csv
) specifies loads acting on members. Current
types are PL
(concentrated transverse, ie point load), CM
(concentrated moment), UDL
(uniformly
distributed load over entire span), LVL
(linearly varying load over a portion of the span) and PLA
(point load applied parallel to member coincident with centroidal axis). Values W1
and W2
are loads or
load intensities and A
, B
, and C
are dimensions appropriate to the kind of load.
In [10]:
%%Table member_loads
LOAD,MEMBERID,TYPE,W1,W2,A,B,C
Live,BC,UDL,-50,,,,
Live,BC,PL,-200000,,5000
In [11]:
%%Table load_combinations
CASE,LOAD,FACTOR
One,Live,1.5
One,Wind,1.75
One,Other,2.0
In [12]:
f6b.input_all()
f6b.print_input()
RS = f6b.solve('one')
f6b.print_results(rs=RS)
In [ ]: