Rebar schedules for box culverts

A forum dedicated to the Draft, Arch and BIM workbenches development.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Rebar schedules for box culverts

Post by Joel_graff »

Not that I mean to make more work for us around here, but...

I was just thinking the other day about how the rebar tool and the arch workbench are really well-suited for reinforced concrete design. More specifically, in my line of work, we often do custom rebar layouts for bridge decks and cast in place drainage structures (box culverts that pass underneath roads, manholes, and other junction-type structures).

Below is a link to a PDF of a standard box culvert design we use at the Illinois Department of Transportation (IDOT). It's a nice example of an industry-standard design document that FreeCAD is, in my opinion, capable of with a little extra effort... maybe. :)

http://www.idot.illinois.gov/Assets/upl ... tails.pdf

In any case, I don't know that it's worth pursuing at the moment - I'm trying to sort out how one could use these tools to do custom structure design in the transportation engineering sector. Still, I don't see much in the PDF plan sheets that FreeCAD couldn't reasonably produce if someone put their mind to generating the python code for it. The question is, how useful would it be to others outside my use case?

If there's any low-hanging fruit in this, it might be the ability to generate a rebar schedule (I don't see evidence this functionality exists yet). Essentially, it calls out each bar's name (usually designated by one or two characters like "h", "s1", "v", etc.), the number of bars that occur in the design, the bar size, the bar length, and a depiction of it's shape. There's also a tally of the structure's volume, the total weight of the rebar steel, the number of splicers required to join the rebar, and the square footage of permanent sheet piling (steel barriers used to retain earth while the hole is dug and the culvert is constructed). Some of that is determined by formulas or quantities that are a part of the design.

Anyway, see page 4 of the PDF link for details on the schedule of quantities.

Apart from that, I was wondering, has there been thought given to using FEM to analyze reinforced concrete structures?

Just for the sake of completeness, this ties into the Civil Engineering Workbench / Transportation Engineering discussions:

Civil Engineering Workbewnch wiki:
https://www.freecadweb.org/wiki/Civil_E ... rkbench/en

Transportation Engineering topic:
https://forum.freecadweb.org/viewtopic. ... &start=330

General Civil Engineering topic:
https://forum.freecadweb.org/viewtopic. ... &start=170
FreeCAD Trails workbench for transportation engineering: https://www.github.com/joelgraff/freecad.trails

pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers
thschrader
Veteran
Posts: 3129
Joined: Sat May 20, 2017 12:06 pm
Location: Germany

Re: Rebar schedules for box culverts

Post by thschrader »

Joel_graff wrote: Wed Apr 04, 2018 12:34 pm Apart from that, I was wondering, has there been thought given to using FEM to analyze reinforced concrete structures?
No, because it is difficult.
In concrete engineering the structure (lets say a beam) is calculated at the limit state.
In the tension zone the concrete is cracked, you will need special programms to simulate
the cracks with FEM.
epsilon-c: compression-zone with elastic/plastic material behaviour (blue curve)
epsilon-s: tension zone, cracked, only the rebars can take tension loading (red).
The height of the cracked zone depends on the loading and the epsilon strain, wich must be
calculated iterative.
pic1.JPG
pic1.JPG (56.72 KiB) Viewed 7853 times
User avatar
yorik
Founder
Posts: 13640
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Rebar schedules for box culverts

Post by yorik »

cannot access the pdf link... can you check?
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Rebar schedules for box culverts

Post by Joel_graff »

thschrader wrote: Wed Apr 04, 2018 1:38 pm No, because it is difficult.
In concrete engineering the structure (lets say a beam) is calculated at the limit state.
In the tension zone the concrete is cracked, you will need special programms to simulate
the cracks with FEM.
That's what I suspected. It's been 20 years since I sat through a structural design class - your diagram brings back a lot of memories, lol. Anyway, I didn't expect there would be an FEM solution, but I thought it was worth asking.
FreeCAD Trails workbench for transportation engineering: https://www.github.com/joelgraff/freecad.trails

pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Rebar schedules for box culverts

Post by Joel_graff »

yorik wrote: Wed Apr 04, 2018 1:45 pm cannot access the pdf link... can you check?
Downloads the pdf to my phone without an issue.

You can go to www.idot.illinois.gov, click on "Resources" at the top, then "Manuals and Guides" and scroll down until you see "Culvert End Section Details.pdf"
FreeCAD Trails workbench for transportation engineering: https://www.github.com/joelgraff/freecad.trails

pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers
User avatar
chakkree
Posts: 327
Joined: Tue Jun 30, 2015 12:58 am
Location: Bangkok Thailand

Re: Rebar schedules for box culverts

Post by chakkree »

Test create culvert object.

Code: Select all

#-*- coding=utf8 -*-
"""
   4 Apr 2018
"""
import ArchComponent
import Part

from FreeCAD import Vector

data = [
{'S':1200 , 'R':1200 , 'Ts':125, 'Tt':190 , 'Tb':150 , 'L':1000}
]


class Culvert(ArchComponent.Component):
    def __init__(self, obj):
        ArchComponent.Component.__init__(self,obj)
        obj.addProperty("App::PropertyLength","Length","Culvert","Length of the box culvert").Length=1000
        obj.addProperty("App::PropertyLength","S","Culvert","").S=1200
        obj.addProperty("App::PropertyLength","R","Culvert","").R=1200
        obj.addProperty("App::PropertyLength","Ts","Culvert","").Ts=125
        obj.addProperty("App::PropertyLength","Tt","Culvert","").Tt=190
        obj.addProperty("App::PropertyLength","Tb","Culvert","").Tb=150        
        obj.Proxy = self
        
    def execute(self, fp):
        L = fp.Length
        S = fp.S
        R = fp.R
        Ts = fp.Ts
        Tb = fp.Tb
        Tt = fp.Tt
        B = S+2*Ts
        H = R +Tb + Tt
        Box = Part.makeBox(fp.Length , B , H ) 
        
        
        points = [
          Vector(0, 2*Ts , Tb),
          Vector(0, S , Tb),
          Vector(0, S+Ts , Tb+Ts),
          Vector(0, S+Ts , R),
          Vector(0, S , R+Tb),
          Vector(0, Ts+Ts , R+Tb),
          Vector(0, Ts , R),
          Vector(0, Ts , Tb+Ts),
        ]
        L1 = Part.LineSegment(points[0] , points[1] )
        L2 = Part.LineSegment(points[1] , points[2] )
        L3 = Part.LineSegment(points[2] , points[3] )
        L4 = Part.LineSegment(points[3] , points[4] )
        L5 = Part.LineSegment(points[4] , points[5] )
        L6 = Part.LineSegment(points[5] , points[6] )
        L7 = Part.LineSegment(points[6] , points[7] )
        L8 = Part.LineSegment(points[7] , points[0] )
        line = Part.Shape([L1,L2,L3,L4,L5,L6,L7,L8]) 
        Wire = Part.Wire(line.Edges)
        face = Part.Face(Wire)
        void = face.extrude(Vector(L,0,0)) 
        concrete = Box.cut(void)
        fp.Shape = concrete

def makeCulvert( CulvertData , name='Culvert' ):
    S = CulvertData['S']
    Ts = CulvertData['Ts']
    R = CulvertData['R']
    Tb = CulvertData['Tb']
    Tt = CulvertData['Tt']
    L = CulvertData['L']    
    
    B = S+2*Ts
    H = R +2*Tb
    obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython",name)
    Culvert(obj)
    obj.Length = L
    obj.S = S
    obj.R = R
    obj.Tt = Tt
    obj.Tb = Tb
    obj.Ts = Ts 
    obj.ViewObject.Proxy=0

if __name__=='__main__':
    makeCulvert(data[0])
    FreeCAD.ActiveDocument.recompute()
    
    Msg('Done!\n\n')
Culvert_04Apr2018.py
(2.65 KiB) Downloaded 58 times
TestCulvertPrototype.png
TestCulvertPrototype.png (478.02 KiB) Viewed 7823 times
CulvertDim.PNG
CulvertDim.PNG (16.02 KiB) Viewed 7823 times
Last edited by chakkree on Thu Apr 05, 2018 2:23 am, edited 1 time in total.
thschrader
Veteran
Posts: 3129
Joined: Sat May 20, 2017 12:06 pm
Location: Germany

Re: Rebar schedules for box culverts

Post by thschrader »

Joel_graff wrote: Wed Apr 04, 2018 12:34 pm I was just thinking the other day about how the rebar tool and the arch workbench are really well-suited for reinforced concrete design.
my 2 cents. Should be possible...
culvert_rebar_test.FCStd
(83.97 KiB) Downloaded 58 times
culvert_reinforcement.JPG
culvert_reinforcement.JPG (210.12 KiB) Viewed 7808 times
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Rebar schedules for box culverts

Post by Joel_graff »

thschrader wrote: Wed Apr 04, 2018 4:22 pm my 2 cents. Should be possible...
Definitely looks good. I've been kicking around the best approach - some of the designs are strctures that have angles and holes in them - which would suggest a CSG approach might be best. Also, is there a way to constrain the rebar positions with respect to the structure, such that if the structure resizes, the rebar adjusts with it?
FreeCAD Trails workbench for transportation engineering: https://www.github.com/joelgraff/freecad.trails

pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers
thschrader
Veteran
Posts: 3129
Joined: Sat May 20, 2017 12:06 pm
Location: Germany

Re: Rebar schedules for box culverts

Post by thschrader »

Joel_graff wrote: Wed Apr 04, 2018 7:58 pm Also, is there a way to constrain the rebar positions with respect to the structure, such that if the structure resizes, the rebar adjusts with it?
Yes, the rebars are based on sketches.
Tons of rebar stuff:
https://forum.freecadweb.org/viewtopic.php?f=8&t=22760
change_rebar.JPG
change_rebar.JPG (120.73 KiB) Viewed 7750 times
change_rebar2.JPG
change_rebar2.JPG (65.23 KiB) Viewed 7750 times
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Rebar schedules for box culverts

Post by Joel_graff »

thschrader wrote: Thu Apr 05, 2018 12:42 pm Yes, the rebars are based on sketches.
Ok, thanks. That gives me enough to get started.
FreeCAD Trails workbench for transportation engineering: https://www.github.com/joelgraff/freecad.trails

pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers
Post Reply