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!
User avatar
Joel_graff
Posts: 1576
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Postby Joel_graff » Sat Apr 07, 2018 3:14 pm

microelly2 wrote:
Sat Apr 07, 2018 2:39 pm
Here a bezier and a nearly approximation with two (lightblue) circles and a liner segment, all with tangent connections.
That looks really close. The workflow would require laying out the back tangents, then fixing the curve to points along those tangents (the point of curvature (PC) and point of tangency (PT) ). So being able to explicitly control the positions of those points is critical. I would also think if three points are colinear, that would force the curve to a tangent (line segment)...

So this eliminates the complexity of managing many tangent constraints for individual arcs. But the back tangent structure still needs to be managed... and individual constrained points which force the curve to its shape...

All that assuming we can reliably get the curve to resolve to simple arcs... :)

Still.. I'm getting excited!
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
microelly2
Posts: 4445
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Postby microelly2 » Sat Apr 07, 2018 4:12 pm

It seems that jitsi and freecad together slow down my computer to much, so the demo offline.
here the demo how I will get the approximation of a bezier by two arcs and a line.
phpBB [video]
User avatar
microelly2
Posts: 4445
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Postby microelly2 » Sat Apr 07, 2018 7:11 pm

one idea more on our way:
Image
http://dlacko.org/blog/2016/10/19/appro ... by-biarcs/
The code is in c# but translate it back to python should not be more complex than understand it.
User avatar
Joel_graff
Posts: 1576
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Postby Joel_graff » Sat Apr 07, 2018 7:36 pm

microelly2 wrote:
Sat Apr 07, 2018 7:11 pm
The code is in c# but translate it back to python should not be more complex than understand it.
That looks exactly like the sort of thing I was hoping to find. The only question is how to handle the c1 c2 control points above the curve. I think we can know two things: they create a line tangent to point G and they lie on the outer two tangents. I suspect a middle ordinate might be required - a line orthogonal to the c1-c2 tangent which terminates at V. Controlling the length of this line would provide control for that tangent... but I haven't read the code yet. I'm probably over thinking 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
User avatar
Joel_graff
Posts: 1576
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Postby Joel_graff » Sun Apr 08, 2018 12:32 am

Following @kunda1's suggestion, I've added a few milestones detailing the features we'd like to see incorporated into the Transportation Workbench.

https://github.com/joelgraff/freecad-tr ... milestones

It's by no means complete, but hopefully kunda, microelly, and griffmic can assist in filling in the details, starting issues, and ultimately, developing a release roadmap. :)

I have to admit, doing all of that kinda made me feel like this could get to be something. :lol:
microelly2 wrote: ping
griffmic88 wrote: ping
kunda1 wrote: ping
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
microelly2
Posts: 4445
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Postby microelly2 » Mon Apr 09, 2018 5:44 pm

Today I wrote a method to combine two sketches to a 3D curve. I use the curve length of the top veiw of the street as parameter for stationing.
This is useful for me when I create paper models:
I print the elevation curve profil onto paper cut it and clue it vertically onto the planar map of the street
markers for given distances can be computed, to add some labels some more open inventor scripting is needed, this can come later (it is possible).
phpBB [video]
Jee-Bee
Posts: 1966
Joined: Tue Jun 16, 2015 10:32 am
Location: Netherlands

Re: Civil engineering feature implementation (Transportation Engineering)

Postby Jee-Bee » Mon Apr 09, 2018 8:53 pm

microelly2 wrote:
Mon Apr 09, 2018 5:44 pm
Today I wrote a method to combine two sketches to a 3D curve.
Nice feature for the Partdesign WB maybe some day...
User avatar
Joel_graff
Posts: 1576
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Postby Joel_graff » Mon Apr 09, 2018 9:04 pm

microelly2 wrote:
Mon Apr 09, 2018 5:44 pm
Today I wrote a method to combine two sketches to a 3D curve. I use the curve length of the top veiw of the street as parameter for stationing.
That really looks perfect.

Now to just deal with bezier curves and the reduction to arcs and lines...

Plus we need to get everything in order in the new workbench structure... Maybe a little planning is in order.
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
Posts: 1576
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Postby Joel_graff » Mon Apr 09, 2018 10:55 pm

microelly2 wrote:
Sat Apr 07, 2018 4:12 pm
It seems that jitsi and freecad together slow down my computer to much, so the demo offline.
here the demo how I will get the approximation of a bezier by two arcs and a line.
Just messing around - the setup depicted below forces a b-spline to fit a simple arc exactly. The draw back is it requires 17 constraints. :)

screenshot_3.png
screenshot_3.png (19.8 KiB) Viewed 313 times
b_spline_exact.fcstd
(4.63 KiB) Downloaded 14 times
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
microelly2
Posts: 4445
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Postby microelly2 » Tue Apr 10, 2018 7:24 am

it looks interesting. Do you have some theory behind or is it an experimentical result?