Rebar schedules for box culverts

A forum dedicated to the Draft, Arch and BIM workbenches development.
User avatar
Joel_graff
Posts: 1223
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Rebar schedules for box culverts

Postby Joel_graff » Wed Apr 04, 2018 12:34 pm

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
You can find the FreeCAD Trails workbench for transportation engineering on my github at:
https://www.github.com/joelgraff/freecad.trails
thschrader
Posts: 1393
Joined: Sat May 20, 2017 12:06 pm
Location: Germany

Re: Rebar schedules for box culverts

Postby thschrader » Wed Apr 04, 2018 1:38 pm

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 567 times
User avatar
yorik
Site Admin
Posts: 11044
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Rebar schedules for box culverts

Postby yorik » Wed Apr 04, 2018 1:45 pm

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

Re: Rebar schedules for box culverts

Postby Joel_graff » Wed Apr 04, 2018 2:08 pm

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.
You can find the FreeCAD Trails workbench for transportation engineering on my github at:
https://www.github.com/joelgraff/freecad.trails
User avatar
Joel_graff
Posts: 1223
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Rebar schedules for box culverts

Postby Joel_graff » Wed Apr 04, 2018 2:12 pm

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"
You can find the FreeCAD Trails workbench for transportation engineering on my github at:
https://www.github.com/joelgraff/freecad.trails
User avatar
chakkree
Posts: 280
Joined: Tue Jun 30, 2015 12:58 am
Location: Bangkok Thailand

Re: Rebar schedules for box culverts

Postby chakkree » Wed Apr 04, 2018 3:26 pm

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 14 times
TestCulvertPrototype.png
TestCulvertPrototype.png (478.02 KiB) Viewed 537 times
CulvertDim.PNG
CulvertDim.PNG (16.02 KiB) Viewed 537 times
Last edited by chakkree on Thu Apr 05, 2018 2:23 am, edited 1 time in total.
thschrader
Posts: 1393
Joined: Sat May 20, 2017 12:06 pm
Location: Germany

Re: Rebar schedules for box culverts

Postby thschrader » Wed Apr 04, 2018 4:22 pm

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 19 times
culvert_reinforcement.JPG
culvert_reinforcement.JPG (210.12 KiB) Viewed 522 times
User avatar
Joel_graff
Posts: 1223
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Rebar schedules for box culverts

Postby Joel_graff » Wed Apr 04, 2018 7:58 pm

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?
You can find the FreeCAD Trails workbench for transportation engineering on my github at:
https://www.github.com/joelgraff/freecad.trails
thschrader
Posts: 1393
Joined: Sat May 20, 2017 12:06 pm
Location: Germany

Re: Rebar schedules for box culverts

Postby thschrader » Thu Apr 05, 2018 12:42 pm

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 464 times
change_rebar2.JPG
change_rebar2.JPG (65.23 KiB) Viewed 464 times
User avatar
Joel_graff
Posts: 1223
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Rebar schedules for box culverts

Postby Joel_graff » Thu Apr 05, 2018 1:11 pm

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.
You can find the FreeCAD Trails workbench for transportation engineering on my github at:
https://www.github.com/joelgraff/freecad.trails