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
HakanSeven12
Veteran
Posts: 1481
Joined: Wed Feb 06, 2019 10:30 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Post by HakanSeven12 »

Hi Joel. Can you create groups for every horizontal alignment under Alignments group? Like this

Code: Select all

|--> Alignments
      |--> Yanyol 202
            |-->Yanyol 202 Horiz
      |-->Yanyol 1
            |-->Yanyol 1 Horiz
And I can put my guide lines, sections and other alignment related stuff in it.
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 »

HakanSeven12 wrote: Sun Jun 02, 2019 10:56 pm Hi Joel. Can you create groups for every horizontal alignment under Alignments group? Like this
Hmm.. I've changed my mind several times on how to manage alignments. I really don't know the best approach, but I'm starting to think a separate subgroup for each alignment is the right way to go.

That means in each alignments subgroup, you'd have the horizontal alignment object (which provides the model you use to build your section lines and other things), a vertical profile object (which I haven't really created yet), a composite (3D) alignment, and other objects related to the 3D model (like those you're creating).

So, yes, I'd say that's a good idea. The only issue I have is that the top-level Alignments group is a custom python group that manages reading / writing the LandXML data. I'm not sure that's the right way to go, though. It would be nice if the 'Alignments' group were just a group object and the XML parsing gets handled further down the tree.

I'll have to think on that. For the time being, however, definitely structure your data the way that makes sense to you. I think I can work with that easily enough.
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
HakanSeven12
Veteran
Posts: 1481
Joined: Wed Feb 06, 2019 10:30 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Post by HakanSeven12 »

Joel_graff wrote: Sun Jun 02, 2019 11:16 pm That means in each alignments subgroup, you'd have the horizontal alignment object (which provides the model you use to build your section lines and other things), a vertical profile object (which I haven't really created yet), a composite (3D) alignment, and other objects related to the 3D model (like those you're creating).
It's good to see we're thinking the same thing :)
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 been working on the horizontal alignment design tool. It's coming along nicely, though it's been no small amount of work.

To this point, I have added the ability to select and drag curves by picking the tangent points of intersection (PI's). The tool lets you select one PI or all pi's from the picked point forward, as well as drag and rotate. I also just added a feature that changes the line color to red if the alignment is changed in such a way that it creates invalid curves. It works surprisingly well, to be honest.
peekDUQZ2Z.gif
peekDUQZ2Z.gif (716.38 KiB) Viewed 1130 times
peek8USS2Z.gif
peek8USS2Z.gif (830.79 KiB) Viewed 1130 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
HakanSeven12
Veteran
Posts: 1481
Joined: Wed Feb 06, 2019 10:30 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Post by HakanSeven12 »

Joel_graff wrote: Mon Jun 03, 2019 10:15 pm So I've been working on the horizontal alignment design tool. It's coming along nicely, though it's been no small amount of work.

To this point, I have added the ability to select and drag curves by picking the tangent points of intersection (PI's). The tool lets you select one PI or all pi's from the picked point forward, as well as drag and rotate. I also just added a feature that changes the line color to red if the alignment is changed in such a way that it creates invalid curves. It works surprisingly well, to be honest.
Lots of work :) congratulations. What is the next step?
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 »

HakanSeven12 wrote: Tue Jun 04, 2019 3:57 am Lots of work :) congratulations. What is the next step?
Too many choices, lol. This just allows adjusting the alignment by the PI's. I still have to implement adjusting the individual curves. Then I need to be able to support changing the values numerically (select a curve, type in a tangent length or radius, etc). Then it needs to support adding / removing PI's curves... Then there's the need to support other curve types

If I can get that done, I'd consider the horizontal alignment tool to be 'beta' software.

In the meantime, I still want to take a shot at getting some basic spline support in place, too. Do you have an XML with a spline?
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
HakanSeven12
Veteran
Posts: 1481
Joined: Wed Feb 06, 2019 10:30 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Post by HakanSeven12 »

Joel_graff wrote: Tue Jun 04, 2019 8:08 am In the meantime, I still want to take a shot at getting some basic spline support in place, too. Do you have an XML with a spline?
Do you wanna say spiral? %90 of my alignments have spirals :) I'm not in my office but I added some alignments. If you need more I have lots of them.
Last edited by HakanSeven12 on Wed Jan 06, 2021 6:48 pm, edited 1 time in total.
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 »

HakanSeven12 wrote: Tue Jun 04, 2019 8:45 am Do you wanna say spiral? %90 of my alignments have spirals :) I'm not in my office but I added some alignments. If you need more I have lots of them.
:lol:

I just need one or two to test against. I can't promise anything right away, but I'll try to get something going soon.
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 »

HakanSeven12 wrote: Tue Jun 04, 2019 8:45 am Do you wanna say spiral? %90 of my alignments have spirals I'm not in my office but I added some alignments. If you need more I have lots of them.
Are bearings measured clockwise from north, or counterclockwise from east in your files?

Edit:

I'm missing something. Don't know what, but here's an excerpt from one of your older XML files:

Code: Select all

<Line dir="115.12693390259" length="6.99986873936">
    <Start>4275691.862443792634 508713.954892563634</Start>
    <End>4275698.199909976684 508710.982572807232</End>
</Line>
The line described above tells me this:

The northing difference is about +6.34 meters. The easting difference is about -3.0 meters. That means the line is sloping upwards to the left. In order for 115 degrees bearing to make sense, that means you're measuring the bearing counterclockwise from east, correct?
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
HakanSeven12
Veteran
Posts: 1481
Joined: Wed Feb 06, 2019 10:30 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Post by HakanSeven12 »

Joel_graff wrote: Tue Jun 04, 2019 1:15 pm Are bearings measured clockwise from north, or counterclockwise from east in your files?

Edit:

I'm missing something. Don't know what, but here's an excerpt from one of your older XML files:

Code: Select all

<Line dir="115.12693390259" length="6.99986873936">
    <Start>4275691.862443792634 508713.954892563634</Start>
    <End>4275698.199909976684 508710.982572807232</End>
</Line>
The line described above tells me this:

The northing difference is about +6.34 meters. The easting difference is about -3.0 meters. That means the line is sloping upwards to the left. In order for 115 degrees bearing to make sense, that means you're measuring the bearing counterclockwise from east, correct?
Yes my files bearing for line is ccw from east
Post Reply