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>)
../_images/long_steel_bars.png
# Transversal steel
In [10]: concrete_beam.transv_steel_bars.plotLong()
Out[10]: 
(<matplotlib.axes._subplots.AxesSubplot at 0x7f5b519579b0>,
 <ezdxf.layouts.layout.Modelspace at 0x7f5b4f14fc88>)
../_images/transv_steel_bars_plotLong.png

Plot transversal section:

In [11]: concrete_beam.plotTransversalInX(200)
Out[11]: 
(<matplotlib.axes._subplots.AxesSubplot at 0x7f5b4f0ea668>,
 <ezdxf.layouts.layout.Modelspace at 0x7f5b4f0817b8>)
../_images/plotTransversalInX.png

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>)
../_images/plotDecalagedMomentumDesignDiagram.png

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>)