Civil Engineering Design functions

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

Re: Civil Engineering Design functions

Post by microelly2 »

Interesting tasks.
I will check what we already have and what a possible schedule can be.
there is still a project in my focus
https://forum.freecadweb.org/viewtopic. ... 60#p112787
I have collected data for some years and it would be nice to have this railway implemented in freecad.
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil Engineering Design functions

Post by Joel_graff »

The railway bridge would definitely be a good test case - it's short and definitely non-trivial

From my vantage point, I'm really interested in just using FreeCAD's core functionality to do a better job building 3D highway models than what Microstation or Civil3D does.

The Sketcher workbench certainly is going to be critical in all of this. I see that there will be a lot of custom tools to add to it, but it seems to otherwise have most (if not all) of the parametric capabilities that I've seen demonstrated in Microstation.

My chief concern at the moment is determining just how much data FreeCAD can easily handle at once. For example, I'm currently building a 3D model of a highway reconstruction at work. The survey LiDar data for it represents about ten miles (~16 km). We cannot model with the survey data visible - Microstation slows to a crawl that can be measured in epochs. Even a small terrain overwhelms it. By contrast, I can load a substantial chunk into Blender and it seems to have no problem with it. So, being able to model with the existing terrain data visible would certainly be a good thing.

Below is a link to a YouTube video I did at work. Fair warning - it's 16 minutes long. It's a demo I did of building a concrete driveway in Microstation (it's a 3D Civil Cell) and then placing it in the actual 3D model. I'm demonstrating a technique I've been developing to help make Civil Cells faster and easier to work with, but I won't claim I've been greatly successful.

Anyway, I'm posting it here if only because it gives a (small) idea of the work I'm mostly focused on.

https://youtu.be/NUPik7dE7JA
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
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Civil Engineering Design functions

Post by microelly2 »

In my tests I loaded point clouds with millions of points. If you can restrict yourself to display most of them as mesh grids and only a small area under your focus as bspline surfaces with higher degrees then real time operations are possible.
https://www.youtube.com/watch?v=ivrpvEqTq48
sketcher has functionality to work with bsplines
and in our shoe project we are at the moment on the step to project from 2D sketches to 3D surfaces
https://forum.freecadweb.org/viewtopic.php?f=3&t=20525
paint on 3D
https://www.youtube.com/watch?v=smKidBfJFZ8
and project these painting backward to 2d
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil Engineering Design functions

Post by Joel_graff »

I need to take time to digest the shoe project, but it looks interesting. I don't know how useful it would be in the sort of workflows I've been exposed to, but FreeCAD's about as similar to Microstation as a bird is to a fish. Given that, I'm curious to see how we could produce an equivalent product (a fully constructible 3D transportation model) using the paradigms and workflows that are common to FreeCAD.

Since we're open source, we're not in direct competition for the market share that Bentley and Autodesk compete for, so that gives us freedom to take an unconventional approach to solving these problems.

The only real constraint that concerns me (and will really demand the most customization effort) is providing the ability for engineers to express their traditional engineering paradigms in a fully digital 3D context.

It seems impossible, really. I strongly suspect that's why I want to try. :)
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
yorik
Founder
Posts: 13665
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Civil Engineering Design functions

Post by yorik »

FreeCAD can easily handle very huge amounts of data. Everything depends on what you do with it and how, ex:

- the viewport can easily display several millions of polygons, or several millions of points
- internally (without displaying them), the OCC-based shape engine can cope with very large amounts (thousands) of shapes
- processing large amount of data (calculations) is also no big problem, and can even be done in separate threads
- mesh objects are very cheap in rendering time
- shape objects are costly in rendering time (shape-to-mesh conversion)
- many objects in the document is very costly in rendering time (lots of signal/slots to process)

So most of the time what is needed is to devise strategies, for ex. group several shapes into fewer objects, don't display all the shapes, etc
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil Engineering Design functions

Post by Joel_graff »

Yeah, I think graphic performance is probably not so big of an issue. I suspect Microstation's fail has more to do with database issues than it does sheer graphics performance. Even if it's written in managed code, it should run faster than it does. Nevertheless, being able to incorporate visuals of the existing terrain without significantly impacting real-time performance would be a great value-add.

In any case, at this point, I think coming up with a roadmap that will quickly demonstrate FreeCAD's capabilities in this area is key. I think that even the more esoteric stuff I mentioned can probably be incorporated into FreeCAD as unofficial modules and/or workbenches. I've discovered that modular systems like this and Blender are surprisingly extensible.
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
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Civil Engineering Design functions

Post by microelly2 »

yorik wrote: So most of the time what is needed is to devise strategies, for ex. group several shapes into fewer objects, don't display all the shapes, etc
Working on LOD strategies will help to handle large data sets with known substructures. geodata is a good area to develop and test such methods.
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Civil Engineering Design functions

Post by microelly2 »

Joel_graff wrote:Yeah, I think graphic performance is probably not so big of an issue. I suspect Microstation's fail has more to do with database issues than it does sheer graphics performance.
Working with databases is another interesting issue: Storing and fast processing of large data amounts
(for example image processing) may require the connection to a fast bigdata database system.
I see how google examizes the world. drive with your camera and build the 3D model.
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil Engineering Design functions

Post by Joel_graff »

DB stuff is definitely not my forte. But there's not much point in premature optimization. Until we have a barebones framework in place and some large (10-20 mi / km) data sets to work with, it's a bit difficult to theorize with certainty.

One key idea to managing that data load is to establish "corridors" early on which describe the limits of relevant existing data. In the case of highway design, you're talking about existing terrain that encompasses the immediate roadway, the existing right-of-way (property lines) along the road, and enough additional terrain to accommodate construction limits that exceed the existing right-of-way.

Corridors, of course, are irregularly shaped (as opposed to the simple box you used to selectively control LOD in your YouTube video), but I don't imagine that will pose much of a difficulty to implement. Really, we just need a way to roughly select the relevant terrain to build against.
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
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: Civil Engineering Design functions

Post by Kunda1 »

Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Post Reply