New assembly concept, maybe without a workbench

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!
freedman
Posts: 868
Joined: Thu Mar 22, 2018 3:02 am
Location: Washington State, USA

New assembly concept, maybe without a workbench

Postby freedman » Wed Apr 10, 2019 5:18 pm

I feel like I need to bring this up now before Bodies become a container for multiple solids. I've been thinking about a new assembly concept. I'll try to convey this in a few words, the details can come later.

Assembly now
The user brings in a part and then has to dictate all the placement parameters to the program. All the assembly params are stored and the tree gets really complicated. The assembly concept is almost an after-thought to part creation.
Assembly new (using DatumDock)
The user brings in a part and the program automatically places the part using the DatumDock info. The assembly (docking) data was created and stored in the part file when the part was designed .

Basic concept
Put a datum feature in the file with the body/part. When asked to assemble, the program jams two of the datumdock planes together (opposing) using local coordinates. Properties can be used to add mating discretion.

Usage
Create a block with two tubing connections, after all the design stuff is finished click the new tool icon "DatumDock", this creates (in the tree) a special datum plane that holds docking info, center the two datumdocks on the center of the tubing ports, create a dock for each pipe port. If you now bring in a tube (with a datumdock on the center of the tube) they will be aligned and docked.

Maybe the Assembler is a macro, something like bring in two parts, highlight two parts and click "Dock" in the macro screen, the macro looks in both part files and finds the docking planes.

That's probably enough for now.
triplus
Posts: 8676
Joined: Mon Dec 12, 2011 4:45 pm

Re: New assembly concept, maybe without a workbench

Postby triplus » Wed Apr 10, 2019 9:50 pm

Hence adding a plane relation in between datum planes?

Yes, this will likely be supported at some point in the future. That is adding a classical relation in between two datum planes and/or in addition being able to use a coordinate system or a datum plane feature as an interface. Therefore being able to define some relations in between parts, before any geometry exists. We had such discussion regarding Assembly 4 effort and in general relating to assembly structure.

P.S. Currently prototypes are based on utilizing expression engine. Once things mature more, likely some sort of basic assembly solver will need to get coded, or one of the existing one could be used for this purposes.
galou_breizh
Posts: 259
Joined: Wed Sep 15, 2010 9:38 am

Re: New assembly concept, maybe without a workbench

Postby galou_breizh » Thu Apr 11, 2019 5:58 am

freedman wrote:
Wed Apr 10, 2019 5:18 pm
before Bodies become a container for multiple solids
This surprises me. Where did you read this?
freedman
Posts: 868
Joined: Thu Mar 22, 2018 3:02 am
Location: Washington State, USA

Re: New assembly concept, maybe without a workbench

Postby freedman » Thu Apr 11, 2019 6:51 am

There has been much talk about allowing more than one solid in a body. Apparently it isn't that difficult to do in the code but some of the designers are not sure which way to go. Personally I like it the way it is but other CAD programs are referenced that allow multiple solids.
User avatar
HarryGeier
Posts: 1144
Joined: Mon Jul 10, 2017 12:36 pm
Location: Hof Germany

Re: New assembly concept, maybe without a workbench

Postby HarryGeier » Thu Apr 11, 2019 7:55 am

I was also reading this, but i am not sure if such would add more confusion later than forcing the user to go for single solids .
I think your approach is interesting. I did quite a few multi body designs by relating bodies thru shapebinders and datum planes.
For rather static assemby, that was good enough for me up to now and your idea would add some standards to such approaches.
Kaum macht man´s richtig , gehts´s
My Video Tutorials on Youtube: https://www.youtube.com/channel/UCoe3B ... p8Q/videos
My FreeCAD Stuff on Hidrive: https://my.hidrive.com/share/qr3l1yddy6#$/
wandererfan
Posts: 2968
Joined: Tue Nov 06, 2012 5:42 pm

Re: New assembly concept, maybe without a workbench

Postby wandererfan » Thu Apr 11, 2019 2:14 pm

freedman wrote:
Thu Apr 11, 2019 6:51 am
There has been much talk about allowing more than one solid in a body. Apparently it isn't that difficult to do in the code but some of the designers are not sure which way to go. Personally I like it the way it is but other CAD programs are referenced that allow multiple solids.
It isn't so much the creation of multiple solids in a Body that is the problem. The current code will actually produce multiple solids under the appropriate conditions, but there is a result check that prevents the return of multiple results.

The problem comes in subsequent operations that are expecting a single solid and may not handle multiple solid input gracefully.
freedman
Posts: 868
Joined: Thu Mar 22, 2018 3:02 am
Location: Washington State, USA

Re: New assembly concept, maybe without a workbench

Postby freedman » Thu Apr 11, 2019 5:39 pm

My vision for the new assembly concept (I'll call it A10) is to make it a passive assembler, it works on rules only. It will scan thru the parts and look at data in the datum docks. I believe that local coordinates can be used to link two objects and then store the global coordinates (and orientation) in the datumdock properties. So every time a file is opened and A10 is started it will scan thru all the objects and put them in their place by coordinates. A copy of the coordinates is used to update locations if an object is moved. This will work something like OCC's approach to building a solid model, hopefully it works better. :)


The problem comes in subsequent operations that are expecting a single solid and may not handle multiple solid input gracefully.
I want the single solid concept so the rules that are used to manipulate them stay simple.
User avatar
DeepSOIC
Posts: 6954
Joined: Fri Aug 29, 2014 12:45 am
Location: Saint-Petersburg, Russia

Re: New assembly concept, maybe without a workbench

Postby DeepSOIC » Thu Apr 11, 2019 7:04 pm

freedman wrote:
Thu Apr 11, 2019 5:39 pm
My vision for the new assembly concept (I'll call it A10) is to make it a passive assembler, it works on rules only. It will scan thru the parts and look at data in the datum docks.
Sounds familiar, https://forum.freecadweb.org/viewtopic.php?t=32843
freedman
Posts: 868
Joined: Thu Mar 22, 2018 3:02 am
Location: Washington State, USA

Re: New assembly concept, maybe without a workbench

Postby freedman » Fri Apr 12, 2019 6:01 pm

DeepSOIC,
Thanks for the link.
I haven't been paying attention to the Assembly section all that much and I should have. I commend those working on Assembly 2,3,4.

I'm trying to visualize a macro based concept that is simple and easy to use with current design tools, something that I can integrated into Part Design or not, something that follows some basic rules, I would expect limitations.

If a few extra properties were added to the DatumPlane I believe there would be plenty of info to do a macro based Assembly tool. I wish I had the time to code it up, maybe next year. I will continue thinking about it.

Thanks