Civil engineering feature implementation (Transportation Engineering)

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Post by triplus »

As suggested earlier here you likely should look more into the Arch side of FreeCAD. There are for example window presets (you can insert in a wall). Commands like Arch Wall for sure could build sidewalks (based on some profile from library following some path). And in addition there is the BIM (bandwagon) over there.
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Post by Joel_graff »

triplus wrote: Thu Sep 20, 2018 11:37 pm As suggested earlier here you likely should look more into the Arch side of FreeCAD.
Right. I forgot about that - the Arch Wall is a really good tool, and it would solve some of the problems.I think it would provide enough flexibility to build simple models, but there are other considerations as well. For example, suppose my sidewalk is narrowed in one area because of limited space? I need to be able to taper one side between two widths - and it may not be a linear taper, either... In fact, that's really a key feature - being able to independently control points in a sketch along a different control line.

I know the curves workbench offers that to a certain degree by allowing multiple cross-sections to define a shape... Which reminds me, I need to revisit that. I tried it a few weeks ago and kept running into problems.
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
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Post by triplus »

Joel_graff wrote: Fri Sep 21, 2018 4:12 pm For example, suppose my sidewalk is narrowed in one area because of limited space?
One of the standard Boolean operations (Part workbench) should likely be able to remove that space from the sidewalk. That is you would create a wall (Arch Wall). And if it would intersect some object. I guess Part Cut should take care of that.
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Post by Joel_graff »

triplus wrote: Mon Sep 24, 2018 6:10 pm One of the standard Boolean operations (Part workbench) should likely be able to remove that space from the sidewalk. That is you would create a wall (Arch Wall). And if it would intersect some object. I guess Part Cut should take care of that.
Ok. I suppose I can see that working.. I presume the boolean operation is dynamic? I've not really played with it (obviously)
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
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Post by triplus »

Joel_graff wrote: Mon Sep 24, 2018 11:24 pm I presume the boolean operation is dynamic?
Fully parametric.

P.S. Likely dynamic too but i am not 100% sure on what you refer to as being dynamic. ;)
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Post by Joel_graff »

triplus wrote: Tue Sep 25, 2018 5:34 pm Fully parametric.

P.S. Likely dynamic too but i am not 100% sure on what you refer to as being dynamic.
I think that was just my thick-headed way of saying, "So if I resize something later.. it won't break.. right?"

You know.. cuz it's fully parametric. :)
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: Civil engineering feature implementation (Transportation Engineering)

Post by Joel_graff »

Ok, so I've been trying to figure out how to create a 3D model of a highway that allows me to build elements at specific positions along an alignment. Most of my effort...and microelly2's effort... (Well,mostly just his effort) to this point has been focused on design tools for the alignment itself...

The issue I need to address is straightforward:

The highway model is built off of an alignment, which describes the general path of the roadway (and is usually the centerline of the road).

Everything that is constructed is located along the alignment at a "station", which is simply a dead measurement along the alignment itself from it's start to end. Thus, if something is located at Station 100+00, it's located (in imperial units), 10,000 feet from the start of the alignment - a station representing 100 feet.

Anyway, I need to be able to sweep sketches along portions of an alignment to build out the model. That means building a sweep tool that allows me to specify a starting and ending station / position along a spline, essentially. I can accomplish this somewhat with the split curve tool (I've worked that out in this thread, here):

https://forum.freecadweb.org/viewtopic.php?f=3&t=31181

but the method depends on creating a line segment for each piece of the model I need to build.

That can prove cumbersome, so it seems a tool or approach is needed that allows sweeping along a path with arbitrary starting and ending points. Thus, if the path is physically changed, the model isn't broken as the sweeps are positioned at positions along the path, and not the physical path itself (which can get regenerated).

Not sure where to proceed from here, but it seems this is a challenge that needs to be addressed.
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: Civil engineering feature implementation (Transportation Engineering)

Post by Joel_graff »

So I've still been noodling around with ideas and I've had a little success prototyping a really critical element to highway design in FreeCAD.

Specifically, the ability to sweep a sketch along a path with arbitrary beginning and ending points. A video demonstrating it is on my youtube channel:

phpBB [video]


What's happening:

1. We start with an alignment from which the sweep path is built, and a template that is to be swept.

2. Using these elements, a CellPath FPO is created which allows the user to enter starting and ending "stations" (positions along the alignment) to describe where the sweep will be placed. If the ending station exceeds the length of the alignment, it just defaults to the end of the alignment.

3. Once a valid station range is entered (the ending station is greater than the beginning station), the CellPath FPO automatically generates a new sketch for the sweep path. It then builds a path from the original alignment that begins and ends at the locations entered by the user.

4. Once the sweep path for the cell is generated, the template is then swept along the new path using PartDessign::AdditivePipe

5. If the user goes in and changes the station properties in the CellPath FPO, the sweep is deleted as is the geometry in the sweep path sketch. New geometry is then created based on the changes in the CellPathFPO station properties, and the AdditivePipe sweep is performed again.


Things to note:

1. I am using a sketch to mange my alignment, which consists of arcs and line segments. In production, we'll have to use splines / bezier curves

2. The goal is to create a "cell" or 3D model by choosing an alignment and a 2D sketch template to sweep along it. The cell should update whenever it's alignment changes, which seems manageable.

3. The edges of a placed cell may also act as alignments for other cells, creating a hierarchy that has to be managed whenever a cell updates.

4. The tree structure of the objects that make up a cell might need improvement... not sure what to do about that atm.
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
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Post by triplus »

Nice progress.
Post Reply