ConcreteBeam Usage ExampleΒΆ
How to create a beam:
In [1]: import fconcrete as fc
In [2]: n1 = fc.Node.SimpleSupport(x=0, length=20)
In [3]: n2 = fc.Node.SimpleSupport(x=400, length=20)
In [4]: f1 = fc.Load.UniformDistributedLoad(-0.6, x_begin=0, x_end=400)
In [5]: concrete_beam = fc.ConcreteBeam(
...: loads = [f1],
...: nodes = [n1, n2],
...: section = fc.Rectangle(30,80),
...: division = 200
...: )
...:
You can use all properties and methods of the ConcreteBeam Class including Beam Class such as plot shear diagram, momentum, etc. See examples in Beam usage example.
See general information:
In [6]: print("Cost of the concrete beam, in reais: ", concrete_beam.cost)
Cost of the concrete beam, in reais: 522.3346059575427
In [7]: print("Processing time of the concrete beam, in seconds: ", concrete_beam.processing_time)
Processing time of the concrete beam, in seconds: 0.1714627742767334
In [8]: print(concrete_beam.cost_table)
[['Material' 'Price' 'Quantity' 'Unit' 'Commentary' 'Is Subtotal']
['Concrete' '339.17' '0.96' 'm3' 'Between 0.0m and 0.0m' 'False']
['Concrete' '339.17' '0.96' 'm3' '' 'True']
['Longitudinal bar' '56.78' '459.98' 'm'
'Diameter 8.0mm. Between -56.68m and 456.68m' 'False']
['Longitudinal bar' '14.81' '359.8' 'm'
'Diameter 8.0mm. Between -6.59m and 406.59m' 'False']
['Longitudinal bar' '13.16' '319.92' 'm'
'Diameter 8.0mm. Between 13.35m and 386.65m' 'False']
['Longitudinal bar' '11.18' '271.68' 'm'
'Diameter 8.0mm. Between 37.47m and 362.53m' 'False']
['Longitudinal bar' '8.53' '207.36' 'm'
'Diameter 8.0mm. Between 69.64m and 330.36m' 'False']
['Longitudinal bar' '104.47' '1618.73' 'm' '' 'True']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 0.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 25.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 50.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 75.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 100.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 125.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 150.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 175.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 200.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 225.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 250.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 275.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 300.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 325.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 350.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 375.0m ' 'False']
['Transversal bar' '4.63' '225.0' 'm'
'22.0cm x 72.0cm. Diameter 8.0mm. Placed in 400.0m ' 'False']
['Transversal bar' '78.7' '3825.0' 'm' '' 'True']]
Plot longitudinal informations:
# Longitudinal steel
In [9]: concrete_beam.long_steel_bars.plot(prop='area_accumulated')
Out[9]:
(<matplotlib.axes._subplots.AxesSubplot at 0x7f5b519f35c0>,
<ezdxf.layouts.layout.Modelspace at 0x7f5b4f1864a8>)
# Transversal steel
In [10]: concrete_beam.transv_steel_bars.plotLong()
Out[10]:
(<matplotlib.axes._subplots.AxesSubplot at 0x7f5b519579b0>,
<ezdxf.layouts.layout.Modelspace at 0x7f5b4f14fc88>)
Plot transversal section:
In [11]: concrete_beam.plotTransversalInX(200)
Out[11]:
(<matplotlib.axes._subplots.AxesSubplot at 0x7f5b4f0ea668>,
<ezdxf.layouts.layout.Modelspace at 0x7f5b4f0817b8>)
Also you can explore many informations related to the solution steps. Some examples:
In [12]: concrete_beam.long_steel_bars_solution_info.plotDecalagedMomentumDesignDiagram()
Out[12]:
(<matplotlib.axes._subplots.AxesSubplot at 0x7f5b4f114710>,
<ezdxf.layouts.layout.Modelspace at 0x7f5b4f0dd780>)
You can also plot and save all the plots in a dxf file:
In [13]: concrete_beam.saveas(file_name="ConcreteBeam Ploted", transversal_plot_positions=[10, 200])
Out[13]:
(<matplotlib.axes._subplots.AxesSubplot at 0x7f5b4edb12e8>,
<ezdxf.layouts.layout.Modelspace at 0x7f5b4eff8748>)