Status of Assembly branch

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
User avatar
jriegel
Founder
Posts: 3369
Joined: Sun Feb 15, 2009 5:29 pm
Location: Ulm, Germany
Contact:

Status of Assembly branch

Post by jriegel »

Here some insights on the status of my assembly development branch:
http://free-cad.git.sourceforge.net/git ... v-assembly

With this branch I develop some new concepts at the moment:

1.) Visual nesting. In the tree view the ViewProviders have the ability to claim children and nest it under the tree label. With the assembly branch it is now the possibility to do it for the Coin 3D scene graph ( ViewProvider::ClaimChildren3D() ). This solves a lot of problems (and introduce others). Hide/Show is now automatic right and the positioning is always relative to the father (moving sub-assemblies).

2.) Body object. The PartDesign was a bit cluttered, since the modeling history was done by hiding the ancestor. The Body object will assemble all the Features belonging to a modeling history. It also will switch the visibility of the belonging features dependent of the edit status. It holds the end-result of the modeling history and is there fore the single point of access for external linking, e.g. by assemblies. It can also hold some overall attributes, like Material or other special properties (face colors...). That removes the need for carrying such properties from modeling-step to modeling-step.

3.) Active objects and auto-switching. Each workbench can now have its own Active-object. For PartDesign this will be e.g. the Body object which is in work. Double click on a Body object will switch to the PartDesign workbench and set the Body object active (for PartDesign operations). This allows working effectively with more then one Body object. Also double click on an assembly object will switch to the Assembly workbench and set the regarding assembly object active. This object will then be the target of a insert operation and positioning will be relative to the active object. Sketch editing will also switch to Sketcher workbench. The Sketcher commands in PartDesign workbench will be removed.

ToDos:
1.) The most important ToDos are to switch the PartDesign workbench to use fully the Body object and the Active-object facility. I will descripe this ToDos in a own article on the PartDesign forum...

2.) First move tool for Assembly. A command and dialog is needed to move sub-assembly (or Bodies) in a active assembly object. This move-tools should have an component which use the pre-selection highlighting to determine e.g. edges and use this edge to move a sub-assemblies along. The dialog should mimic that movement and allow the user to enter the move distance numerically.

3.) wire the assembly constraint solver with the ConstraintGroup to adjust the positioning. Some tools to maintain constraints will also be necessary.

4.) Material module. The PropertyMap is already implemented. Whats left is the facility in App:: which deal with the internal and external material definitions.
Stop whining - start coding!
ickby
Veteran
Posts: 3116
Joined: Wed Oct 05, 2011 7:36 am

Re: Status of Assembly branch

Post by ickby »

3.) wire the assembly constraint solver with the ConstraintGroup to adjust the positioning. Some tools to maintain constraints will also be necessary.
I will look into that as I know the solvers interface and capabilities best (not supprising as I'm the only one knowing the code :) ) However, I cant start working on this earlier than the end of the next week. And I can't give a estimate on how long it will take.
User avatar
jriegel
Founder
Posts: 3369
Joined: Sun Feb 15, 2009 5:29 pm
Location: Ulm, Germany
Contact:

Re: Status of Assembly branch

Post by jriegel »

Hi ickby,
thats fine! Regarding how long the Assembly already took, some weeks won't matter :)
Stop whining - start coding!
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Status of Assembly branch

Post by triplus »

And you would probably like all ToDos to be finished before the work already done is merged in FreeCAD 0.14 dev?
User avatar
jriegel
Founder
Posts: 3369
Joined: Sun Feb 15, 2009 5:29 pm
Location: Ulm, Germany
Contact:

Re: Status of Assembly branch

Post by jriegel »

No, not at all. The main problem is the change in PartDesign, which is very disruptive. We need the Body object in PartDesign for the Assembly, but it changes the whole PartDesign work-flow. There fore the integration of the Body object have to be done before I can integrate the Assembly into master....
Jan already volunteered to help, see the postings on the PartDesign forum.
Stop whining - start coding!
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Status of Assembly branch

Post by triplus »

Great and thanks for the answer!
Post Reply