Which Assembly workbench to use

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
nuclear213
Posts: 2
Joined: Sat Sep 05, 2020 4:08 pm

Which Assembly workbench to use

Post by nuclear213 »

Hello everyone,

as I moved to Ubuntu a few weeks ago my previous CAD Program, Autodesk Fusion 360, does not work anymore so I tried switching to FreeCAD. The design of individual parts is a bit different, but works without any problems after getting used to the shortcuts.
So first of all thanks for your great work and this great piece of software.

My problem now is that, as I understand, there is no official workbench for assemblies yet. The tread about assemblies list 3 different current workbenches, that are currently under development, so I am wondering which to chose. From the videos it looks like assembly 2 plus and assembly 3 are closer to the way I am used to working with the fusion 360 joints.

So my question is now: Which one to chose? Which one is more stable, is getting more development, etc? Any major issues that I would have to be aware of in any of them?

As information:
I am using FreeCAD the most up to date nightly build of FreeCAD 0.19 with Ubuntu 20.04 on a laptop running a core I-7 9750h.
vocx
Veteran
Posts: 5197
Joined: Thu Oct 18, 2018 9:18 pm

Re: Which Assembly workbench to use

Post by vocx »

nuclear213 wrote: Sat Sep 05, 2020 4:26 pm ...
So my question is now: Which one to chose? ...
It's pointless to ask this question because the answer is mostly a personal preference. If you already read the thread on the assembly workbenches (Current Assembly Status), then you just need to try them out.

Watch more videos, follow the tutorials, and try them out.

* A2plus is an older workbench that has been around for a while.
* Assembly3 is relatively advanced but also quite powerful.
* Assembly4 is relatively simple because you don't need external constraint solvers, you use the expressions engine that is native to FreeCAD.

See the users showcase subforum; you can find examples of big assemblies created with each of the workbenches.
Always add the important information to your posts if you need help. Also see Tutorials and Video tutorials.
To support the documentation effort, and code development, your donation is appreciated: liberapay.com/FreeCAD.
User avatar
openfablab
Posts: 62
Joined: Wed Nov 02, 2016 4:42 pm
Contact:

Re: Which Assembly workbench to use

Post by openfablab »

vocx wrote: Sat Sep 05, 2020 8:11 pm
* A2plus is an older workbench that has been around for a while.
* Assembly3 is relatively advanced but also quite powerful.
* Assembly4 is relatively simple because you don't need external constraint solvers, you use the expressions engine that is native to FreeCAD.
As far as I can understand, current assembly implementations fall into two categories:

A) We conveniently edit and save parts of assembly, but standalone, not in context of parent assembly. (A2plus)

This workflow assumes we have all parts designed separately. Mostly this is wrong assumption, e.g. when we try to design interlocking lasercut boxes, or almost every complex thing which should fit into some pre-defined parent supersystem. This makes this approach unusable for industrial design.

B) We can edit parts in context of parent assembly but all sub-parts files are opened and need to be closed manually. (Assembly3, Assembly4)

This workflow allows to work with interrelated parts well, but even with 10 parts manual closing of all sub-part files makes this annoying. And it looks impossible to open and close 1000-part assemblies in this way.

Thus we need assembly approach allowing editing parts in context without need to open all subassemblies and related parts files.
Assembly branch which would be compatible with it, is the branch of future. Probably, A2+ is closer to this, because it does not too mush rely on opening of children files. All we want from it is to show assembly context (around edited part) and allow (at least) "independent copying" geometry from it.

Usual recommendation today is to abandon all assemblies and use Part/Body containers in single file. It works well with context, but have two another drawbacks:

* Not only one product, but all products of the project have to be modeled in single file if one wants e.g. changes to button height be inherited automatically by all products using this button.
* Even if we work with one product per file, we have serious parts placement issue:

A) If we create new parts from Sketch geometry placed at XYZ=0, i.e. start of coordinate space, we have convenient use of basic axes and planes, but we have to move/rotate Body or Part container to desired location manually (not too fascinatingly). And when we want to use geometry of this part as a reference for other part, this reference is generated... at start of coordinate space, ignoring all placement transformations made with Part/Body. And this reference object is fixed, so we can not move it to desired place.

B) If we create new parts intentionally placing Sketch geometry to some coordinates away from zero (where should final part be situated in product), we do not use convenient axis/plane references and have to alter Sketch Attachment parameters (especially inconvenient for parts placed under non-right angles) . Thus we get part with need for manual sketch redraw after any position change, with crazy placement of its link copies and without use of any sense of Part hierarchical assembly.

Since 0.18 one can set Trace Support property for Shapebinder object what solves Part/Body problem well for Bodies, Parts, DraftClones, but... not for AppLink objects. While AppLink objects are the core of nice assembly-like workflows around Part/Body...

Thus we need ShapeBinder Trace Support to work with AppLink to effectively use Part/Body "assembly" workflow while keeping all product-related objects in single file. I do not know, may be this approach is not too bad but I am afraid of loading thousands of parts from all products jut to (e.g.) adjust some screws. But if we introduce AppLink there, we would face all problems of Assembly3/4 with multiple files opening.

Conclusion: Part/Body workflow is near excellent about context-aware modelling, A2+ offers best workflow decomposition, A3 and A4 are somewhere in the middle. For today no solution is perfect.
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Which Assembly workbench to use

Post by Zolko »

openfablab wrote: Mon Sep 21, 2020 8:41 am
vocx wrote: Sat Sep 05, 2020 8:11 pm * A2plus is an older workbench that has been around for a while.
* Assembly3 is relatively advanced but also quite powerful.
* Assembly4 is relatively simple because you don't need external constraint solvers, you use the expressions engine that is native to FreeCAD.
As far as I can understand, current assembly implementations fall into two categories:
  • those that use the new App::Link interface (Assembly3 and Assembly4)
  • all others (A2+ and Part containers)
try the Assembly4 workbench for FreCAD — tutorials here and here
User avatar
openfablab
Posts: 62
Joined: Wed Nov 02, 2016 4:42 pm
Contact:

Re: Which Assembly workbench to use

Post by openfablab »

Zolko wrote: Mon Sep 21, 2020 10:45 am
openfablab wrote: Mon Sep 21, 2020 8:41 am
vocx wrote: Sat Sep 05, 2020 8:11 pm * A2plus is an older workbench that has been around for a while.
* Assembly3 is relatively advanced but also quite powerful.
* Assembly4 is relatively simple because you don't need external constraint solvers, you use the expressions engine that is native to FreeCAD.
As far as I can understand, current assembly implementations fall into two categories:
  • those that use the new App::Link interface (Assembly3 and Assembly4)
  • all others (A2+ and Part containers)
I do not know much about how A2+ works, but even Part containers are very poor thing without App::Link (to deal with multiple instances of the same object in context-aware manner). Thus we have two basic problems with App::Link to make it cool: non-compatibilty with ShapeBinder and multiple files opening.

Before issuing a Feature request we need to understand the main question: should we look for solution in file-centric or database-centric system? Database offer many benefits but file solution can be easier to implement in short term due to legacy. Are there serious obstacles to keeping objects in database and retrieving them on demand? Is there any understanding how App:Link can work with single database instead of plenty of files?
nuclear213
Posts: 2
Joined: Sat Sep 05, 2020 4:08 pm

Re: Which Assembly workbench to use

Post by nuclear213 »

So first of all thank you for your replies. Somehow the notifications for the replys landed in my spam folder, so I did not see that someone replied.

What I understand now is that there is no well working workbench as of now. At least not something that is close to the way how it works in fusion 360. Openfab is basically saying exactly what I was used to do with fusion. You have the option of easily taking the geometry of other parts inside the assembly as references for your current design. You can just start designing a new part inside the assembly to expand on it.

The problem I have with just using the parts is the huge computation time if you change something at the beginning. I designed something and just wanted to change the wall thickness afterwards and the recompute took over 2 min. And that on a 8 core machine with 64GB of RAM.
That is why I would normally use sub assemblies and just recompute the parts necessary.

Sadly I do not understand the program nearly well enough in order to help with the decisions. Thanks again for your replies.
HelloWorldXD
Posts: 33
Joined: Wed Jun 12, 2019 10:41 am

Re: Which Assembly workbench to use

Post by HelloWorldXD »

Hello,

i have also a question about this topic.

Whats the benefit of using Assembly 3 or 4.
As2+ works quite well with the new "use experimental topological name" option i think. And it also support BOM.
For my personal use case it is closer to Catia,SolidEdge and co then the other two workbenches.

Is AS4/3 more stable or have it special features that i dont know?

Is there a BOM Feature for those two workbenches.

Sorry for the stupid questions but i dont get it.

thanks
fcaduser
Posts: 448
Joined: Wed Feb 19, 2014 6:53 pm
Location: Near Paris, France

Re: Which Assembly workbench to use

Post by fcaduser »

About A2+ workflow ...
This workflow assumes we have all parts designed separately. Mostly this is wrong assumption, e.g. when we try to design interlocking lasercut boxes, or almost every complex thing which should fit into some pre-defined parent supersystem. This makes this approach unusable for industrial design.
I strongly disagree with this assertion. Very large scale projects can perfectly be managed this way. And I believe it's a very desirable thing to have a clear and neat separation between solids ("parts") and the relations linking them ("assemblies"), i.e. to have separated files.

I don't see insurmountable hurdle in your example.
HelloWorldXD
Posts: 33
Joined: Wed Jun 12, 2019 10:41 am

Re: Which Assembly workbench to use

Post by HelloWorldXD »

i musst also strongly disagree. In the mechanical industrie this workflow is standard.
And its good for working in teams together with this workflow.

for example in our company we use Solidedge and refrenz every single part on planes not on other parts.
With assemblys 500+ parts this is very important because otherwise the hole assembly fall apart an weeks of work are gone.
Takas
Posts: 1
Joined: Sat Dec 05, 2020 4:50 am

Re: Which Assembly workbench to use

Post by Takas »

Suggestion for:
HelloWorldXD wrote: Thu Oct 15, 2020 12:41 pm i musst also strongly disagree. In the mechanical industrie this workflow is standard.
And its good for working in teams together with this workflow.

for example in our company we use Solidedge and refrenz every single part on planes not on other parts.
With assemblys 500+ parts this is very important because otherwise the hole assembly fall apart an weeks of work are gone.
One option is to create dummy parts with the planes you need for referencing in the sub-assemblies, on the top assemblies the same dummy parts can be used.
One drawback is that the planes on the subassemblies are impossible the be hidden, since a2plus does not currently allow to hide single parts from subassemblies while keeping it referenced. This can be worked around by making small planes not to clutter your top assembly visibility.
This functionality of hiding parts from subassemblies would be very helpful.

The context editing in he top assembly would certainly improve usability, but with bigger assemblies when the simplified representation is needed in the comercial softwares, some times it is more fluid to work on the sub assembly and keep switching.

Overall I think that the a2plus workflow is excellent and I found it to be the most intuitive. The BOM functionality is also almost there, I usually need BOM with masses, with a little scripting it is already possible. A small incovenience is the dialog that pops up every time you update de parts list. Also for large assemblies and for documentation the treat subassemblies as parts in the BOM is needed. Also a parrallel extension to Techdraw for assemblies is required.
Post Reply