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!
triplus
Posts: 9475
Joined: Mon Dec 12, 2011 4:45 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Postby triplus » Sun Aug 19, 2018 2:28 pm

Joel_graff wrote:
Sun Aug 19, 2018 1:43 pm
I'm trying to develop a way to create a 3D model that can exist in a library-type file and added to another model, linking it automatically to pre-existing geometry.
Like creating an assembly? Maybe you could test out some existing options (Assembly2/A2Plus/Assembly3). As developing solution where you can add relations between parts (creating assemblies) for sure isn't something one can achieve in a short period of time.
User avatar
Joel_graff
Posts: 1884
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Postby Joel_graff » Mon Aug 20, 2018 1:01 pm

triplus wrote:
Sun Aug 19, 2018 2:28 pm
Like creating an assembly? Maybe you could test out some existing options (Assembly2/A2Plus/Assembly3). As developing solution where you can add relations between parts (creating assemblies) for sure isn't something one can achieve in a short period of time.
I'm only vaguely familiar with the Assembly bench, but what I'm thinking probably isn't far removed.

Specifically, though, a 3D sub-model (maybe a 3D version of a 2D CAD cell?) would be linked to the main model using pre-defined references. The Sketcher really provides the mechanism that makes the most sense to me - external references.

So the idea was to extrude the model from a series of sketches that are built entirely on external references. Then, those references are chosen in the main model (as edges of existing solids), and are used to replace the external references originally defined in the cell library... if that makes sense.

I'm really taking the Sketcher in directions it wasn't intended, I think, and I suspect my approach is a bit untenable.
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
triplus
Posts: 9475
Joined: Mon Dec 12, 2011 4:45 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Postby triplus » Mon Aug 20, 2018 7:29 pm

Joel_graff wrote:
Mon Aug 20, 2018 1:01 pm
Then, those references are chosen in the main model (as edges of existing solids), and are used to replace the external references originally defined in the cell library... if that makes sense.
For positioning purposes of for geometry defining purposes? That is after you would use such referencing the geometry of the 3D model from the library would change? Or the added relation would only define the 3D model position?
User avatar
Joel_graff
Posts: 1884
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Postby Joel_graff » Tue Aug 21, 2018 3:04 am

triplus wrote:
Mon Aug 20, 2018 7:29 pm
For positioning purposes of for geometry defining purposes? That is after you would use such referencing the geometry of the 3D model from the library would change? Or the added relation would only define the 3D model position?
It would have to define the shape of the geometry. I wish I could limit it to it's position, but suppose I wish to place a model of a retaining wall in a highway model. While the wall model may be built upon a straight edge as it's default external reference, the reference in the final model may be (and most likely would be) curved. It might be that some models could be defined strictly by position, but not many. Usually, the model itself must also conform to vertical curvature (rises and falls) in the final model which cannot be anticipated outside of that.

Sorry if the explanation is hard to understand. I could look for a good video which demonstrates how Microstation does it that would clarify the point..
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
triplus
Posts: 9475
Joined: Mon Dec 12, 2011 4:45 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Postby triplus » Tue Aug 21, 2018 11:42 am

I see. It should define geometry too. For that unfortunately assembly based solution won't do.

P.S. As for creating the highway wall based on a line or a curve. I guess there is Arch Wall.
User avatar
Kunda1
Posts: 9236
Joined: Thu Jan 05, 2017 9:03 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Postby Kunda1 » Mon Sep 17, 2018 2:33 pm

So this is the roadblock right now?
Alone you go faster. Together we go farther
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
User avatar
Joel_graff
Posts: 1884
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Postby Joel_graff » Mon Sep 17, 2018 7:48 pm

Kunda1 wrote:
Mon Sep 17, 2018 2:33 pm
So this is the roadblock right now?
There's a lot of roadblocks, but it may just be me trying to force FreeCAD to work in a way it wasn't meant to. All of the elements to do it are here - it seems within reach, but I think the approach (which, admittedly, mirrors what the commerical CAD guys do) is just not how FreeCAD works.

Clearing this roadblock will undoubtedly introduce several others. And it may be that the Assembly workbench is really what I ought to be using, here. I don't really know.

Anyway, I did have a thought to try to work on the swept path analysis tool. It seems like that might be low-hanging fruit that we could go after. Otherwise, I think more thought needs to be given about how we would manage generating highway models to maybe identify what is and really isn't feasible with FreeCAD as it currently is.
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
Posts: 9236
Joined: Thu Jan 05, 2017 9:03 pm

Re: Civil engineering feature implementation (Transportation Engineering)

Postby Kunda1 » Wed Sep 19, 2018 5:20 pm

@realthunder care to opine on this? See the past few posts of taking this WB in the direction of using Assemblies. Thanks!
Alone you go faster. Together we go farther
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
realthunder
Posts: 1855
Joined: Tue Jan 03, 2017 10:55 am

Re: Civil engineering feature implementation (Transportation Engineering)

Postby realthunder » Wed Sep 19, 2018 11:02 pm

Joel_graff wrote:
Mon Aug 20, 2018 1:01 pm
I'm only vaguely familiar with the Assembly bench, but what I'm thinking probably isn't far removed.

Specifically, though, a 3D sub-model (maybe a 3D version of a 2D CAD cell?) would be linked to the main model using pre-defined references. The Sketcher really provides the mechanism that makes the most sense to me - external references.

So the idea was to extrude the model from a series of sketches that are built entirely on external references. Then, those references are chosen in the main model (as edges of existing solids), and are used to replace the external references originally defined in the cell library... if that makes sense.

I'm really taking the Sketcher in directions it wasn't intended, I think, and I suspect my approach is a bit untenable.
Sketch external geometry isn't meant to be used that way. I recommend you try my branch. There are a few possible ways to achieve what you want. For example, with a separate file defining library type objects, and use external link and labels to reference them in the main file. Checkout this tutorial to see how label external reference is used to dynamically replace a part.

There is another new feature that I haven't released yet. I have greatly enhanced the capability of Expression Engine. You can now directly calls into Python API exposed by any document object. See here for an example. The spreadsheet cells in my branch can hold any type of Python object. You can literally build a custom shape using spreadsheet alone. Imaging the possibilities when using it in companion with something like cadquery. It can function like a macro (with reduced functionality for security reason) that stores with your document.
Try Assembly3 (latest version 0.11) along with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
User avatar
Joel_graff
Posts: 1884
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Civil engineering feature implementation (Transportation Engineering)

Postby Joel_graff » Thu Sep 20, 2018 3:53 pm

realthunder wrote:
Wed Sep 19, 2018 11:02 pm
For example, with a separate file defining library type objects, and use external link and labels to reference them in the main file. Checkout this tutorial to see how label external reference is used to dynamically replace a part.
Yeah, they assembly workbench really makes the most sense, I have to admit. I looked at your links - the element / link tutorial was enlightening. So long as the referencing is used to control the position of the model, it seems like a good solution. But I'm envisioning the need for referencing which will affect the shape / scaling of the model as well, and not necessarily as a whole...

For example, suppose I need to attach a model of a sidewalk to an existing edge. Assembly can do that, but if the sidewalk model is straight and the edge I want to link it to is curved, the sidewalk will need to be regenerated to fit the curved edge.. if that makes sense.
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