justacec wrote: ↑
Mon Sep 23, 2019 1:39 pm
Those solutions tend to say that one must place each part into its own separate file and then add that to the separate assembly file.
This is correct for A2plus Workbench
, but it isn't correct for Assembly3 and Assembly4.
While this sounds interesting, and great for tracking changes, I am not sure how to define a sketch for one part based on a different sketch from a different part which is in a different file.
It really depends on what type of references you need. Can you not copy a master sketch into every of your files?
Another question is, which assembly framework should I be using. I think this is a real problem for Freecad right now. It seems that creating an assembly is a pretty core thing to do for this type of program and every solution that I see out there (assembly2, a2+, assembly 3, and then even assembly 4) are considered a different add-on package and are not part of Freecad.
The reason is that assembling is not easy! If it were easy, it would have been done already, don't you think?
Assembling is tricky because you need a way to track different objects, their positions in space in their own coordinate systems, and in different coordinate systems. Eventually they should be in some sort of top level assembly coordinate system, right? Then you need constraints to define how to "tie" the parts to the others. These relationships aren't easy to solve. Why do you think a professional CAD package like Catia or SolidEdge costs thousands of dollars per license? They have hundreds of programmers to work on these things. FreeCAD has... a few.
There seem to be just too many options and it is not clear which is the correct one that new users should go with.
Assembly (one) was supposed to be the official assembly workbench, but it was never developed; the sources are in the FreeCAD source tree but that's it. Assembly2 was the first usable assembly workbench. It was used for a long time (5 years or so), but its creator decided to not continue working on it. Immediately after, A2plus Workbench
came to life as a fork of Assembly2, to keep the work done by the previous workbench. Nevertheless, A2plus and Assembly2 are not compatible, the former is maintained, while the latter is obsolete.
A2plus is the most mature and tested assembly solution, so it's the recommended workbench for starters.
Assembly3 is inspired by Assembly2 but uses the new "App::Link" object developed by its author. For two years, Assembly3 was a testing ground for new features that its author wants to merge into the main FreeCAD code. Part of those changes have been merged (App::Link and some things in the tree view, and selection code), but there are other things that could still be incorporated.
Assembly3 has many nice features, but currently you need to use a special version of FreeCAD to use it. It is experimental, so if you want to test it, you are on your own. Power users are encouraged it to try it, but new CAD users better stay away.
Assembly4 is based on the work of Assembly3. It's a new concept that doesn't use a constraint solver to define relationships between parts, but still uses an Expressions
system to do calculations on the positions of the objects.
See the sticky thread: Current Assembly Status
I do know that assembly 3 is based on App::Link objects but, after reading up on these, I am still confused about what they are, how to create one, and why they are needed.
It's hard to explain what a Link is. It's an internal object. Its usefulness will become apparent a bit later, once Assembly3 becomes an installable workbench, through the Addon Manager
, like other External workbenches
. Once this happens, the wider userbase will be able to test the power of Assembly3, and it will all make sense (tutorials and documentation will also be provided of course). Maybe then some features of Assembly3 are ported to A2plus, and the two workbenches combine to finally get the official Assembly workbench of FreeCAD. Or maybe not.
Assembly3 uses a solver that is GPL3 licensed, and unfortunately this means that it cannot be included in FreeCAD. Only LGPL 2 compatible code can be included by default in FreeCAD. So maybe and Assembly workbench will always be an external addon.
Which assembly framework should I be using (something that is going to last)
A2plus or Assembly3.
Are you pressured to meet a deadline? Or do you have plenty of time?
If you do have plenty of time, why don't you try creating the same assembly in both workbenches and see how it goes? Track your progress, make some notes, and then try to compare them. Write that up, and in the future you can publish your findings. It will be invaluable once Assembly3 is available to a wider audience.
Assembly4 is more like a proof of concept. So, although it works, most probably its parts can be incorporated into Assembly3 or A2plus.
* Should I split my project out such that there is one part per file (If yes, how do I handle making a dependency on a sketch based on a different part from a different file).
* Do people typically just generate 1 file with everything in it and then at the last minute split the parts out into separate files for use in an assembly file?
This depends entirely on the type of assembly that you want to create. What sort of references do you really need? Only flat distances? Can you not copy and paste the same master sketch in all of your files with parts?
You only need to split the parts into separate files if you plan on using A2plus. If you want to use Assembly3, or if you want to create everything in a single file, and arrange those manually without constrains, then you don't need to separate the pieces into different files.