Civil engineering feature implementation (Transportation Engineering)
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Be nice to others! Read the FreeCAD code of conduct!
Re: Civil engineering feature implementation (Transportation Engineering)
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.
- Joel_graff
- Veteran
- Posts: 1949
- Joined: Fri Apr 28, 2017 4:23 pm
- Contact:
Re: Civil engineering feature implementation (Transportation Engineering)
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
pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers
Re: Civil engineering feature implementation (Transportation Engineering)
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.Joel_graff wrote: ↑Fri Sep 21, 2018 4:12 pm For example, suppose my sidewalk is narrowed in one area because of limited space?
- Joel_graff
- Veteran
- Posts: 1949
- Joined: Fri Apr 28, 2017 4:23 pm
- Contact:
Re: Civil engineering feature implementation (Transportation Engineering)
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
pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers
Re: Civil engineering feature implementation (Transportation Engineering)
Fully parametric.
P.S. Likely dynamic too but i am not 100% sure on what you refer to as being dynamic.
- Joel_graff
- Veteran
- Posts: 1949
- Joined: Fri Apr 28, 2017 4:23 pm
- Contact:
Re: Civil engineering feature implementation (Transportation Engineering)
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
pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers
- Joel_graff
- Veteran
- Posts: 1949
- Joined: Fri Apr 28, 2017 4:23 pm
- Contact:
Re: Civil engineering feature implementation (Transportation Engineering)
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.
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
pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers
- Joel_graff
- Veteran
- Posts: 1949
- Joined: Fri Apr 28, 2017 4:23 pm
- Contact:
Re: Civil engineering feature implementation (Transportation Engineering)
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:
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.
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:
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
pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers