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

### Re: Civil engineering feature implementation (Transportation Engineering)

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!

pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers
microelly2
Posts: 4445
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

### Re: Civil engineering feature implementation (Transportation Engineering)

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]
microelly2
Posts: 4445
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

### Re: Civil engineering feature implementation (Transportation Engineering)

one idea more on our way:

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

### Re: Civil engineering feature implementation (Transportation Engineering)

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.

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

### Re: Civil engineering feature implementation (Transportation Engineering)

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

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.
microelly2 wrote: ping
griffmic88 wrote: ping
kunda1 wrote: ping

pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers
microelly2
Posts: 4445
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

### Re: Civil engineering feature implementation (Transportation Engineering)

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)

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

### Re: Civil engineering feature implementation (Transportation Engineering)

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.

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

### Re: Civil engineering feature implementation (Transportation Engineering)

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 (19.8 KiB) Viewed 313 times
b_spline_exact.fcstd