In [1]:
from Frame2D import Frame2D
theframe = Frame2D('3203/2019/hw-6')
In [2]:
%%Table nodes
NODEID,X,Y,Z
a,0,5000
b,8000,5000
c,14000,5000
d,8000,0
In [3]:
%%Table supports
NODEID,C0,C1,C2
a,FX,FY,MZ
c,FX,FY,MZ
d,FX,FY,MZ
In [4]:
%%Table members
MEMBERID,NODEJ,NODEK
ab,a,b
bc,b,c
bd,b,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 [5]:
%%Table releases
MEMBERID,RELEASE
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.
Note: a value of $A=7000$ is reasonable for steel W shapes of the range of $I$ values we have given. If we give $A$ values 1000 times this, we get results that match the slope-deflection method very closely (that effectively causes axial effects to be ignored).
In [6]:
%%Table properties
MEMBERID,SIZE,IX,A
ab,,240E6,7000
bc,,160E6,
bd,,80E6
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 [7]:
%%Table node_loads
LOAD,NODEID,DIRN,F
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 [8]:
%%Table support_displacements
LOAD,NODEID,DIRN,DELTA
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 [9]:
%%Table member_loads
LOAD,MEMBERID,TYPE,W1,W2,A,B,C
live,ab,UDL,-24
live,bc,PL,-64000,,4000
In [10]:
%%Table load_combinations
CASE,LOAD,FACTOR
one,live,1.0
In [11]:
theframe.input_all()
theframe.print_input()
RS = theframe.solve('one')
theframe.print_results(rs=RS)
In [ ]: