I have been learning FreeCAD and Assembly4, in my spare time, over the last few months and I want to say that the Assembly4 workbench has been instrumental in my migration to FreeCAD. Many thanks for your efforts!
As a former (hobbyist) Fusion360 user, I used "Joint Origins" and "Joint"s for my assemblies. So, I was very happy to discover that Assembly4's use of LCS's and "Link to Part" were reminiscent of F360's "Joint Origins" and "Joint". Since then, I have successfully recreated a number of my assemblies in FreeCAD using Assembly4 and am having fun exploring new possiblities.
Of course, I had issues along the way. Many were the result of me initially making invalid assumptions about how FreeCAD and Assembly4 operate. Most were resolved by my searching and reading this, and other, forum thread(s) and the documentation. For the remainder, I found workarounds. Here is a summary of some of the issues and thoughts that I had during the first part of my learning curve with FreeCAD/Assembly4, for general comment.
1) UNDO acts unexpectedly. This initially slowed down my FreeCAD learning significantly. My brain was used to F360 where an "UNDO" operation reverses the immediately preceeding operation alone. Assembly4 (A4), however, appears to sometimes silently "batch" up multiple preceeding operations into a single "transaction" in the UNDO list. So, a single UNDO may do more than expected. Here is one simple example:
Noobie user's intended goal
create new body named "Base"
create new body named "Pole"
Noobie user's GUI actions
Click "Create a new Body" icon
Text (with typo) "Basee"
Right Click "Basse" Body in Tree, Rename(F2)
Text corrected to "Base"
Click "Create a new Part" icon (simulated user error, should have clicked "Create a new Body")
Ctrl-Z keys (UNDO)
Click Create New Body icon
new body "Basee"
new body "Pole"
Notice that the Rename was reversed as well as the "Create a new Part" operation. If you look at the UNDO list prior to keying Ctrl-Z, you will see only one UNDO list entry "Change Basse.Label". Somehow, the "Create a new Part" operation has been bundled in with the Rename operation. So, when you UNDO once, it will UNDO the last two operations. This isn't obvious and, for me, can lead to multiple "I thought I fixed that" moments during a work session. I'm dealing with this through careful inspection after each UNDO. But, it does slow me down.
At least that is the way it appears to be working. Am I just missing something here?
2) I was initially confused by conflicting information about what types of objects could by linked by A4. In https://github.com/Zolko-123/FreeCAD_As ... UCTIONS.md
Please Note: objects in the same document as the linked part but outside the App::Part container will not be inserted. The PartDesign workbench doesn't produce Parts, it produces Bodies. It is entirely possible to use Parts made with the Part workbench with Assembly4, but if you want to use Bodies made with the PartDesign WB you need first to create a Part and move the Body into that Part.
I, however, recently finished reading all (currently) 84 pages of this thread and realized that, indeed, linking Body objects is now fully supported. Very Cool! Although, it would be good to update https://github.com/Zolko-123/FreeCAD_As ... UCTIONS.md
to reflect the recent changes.
3) For many projects, I prefer to pre-define my actual or placeholder distances and angles into named variables before sketching and then adding or editing variables as needed. I initially used Spreadsheets for this, but have moved on to using A4 Variables instead. That has worked for me, but there is one thing:
a. When setting Variable values, I often need to use ExpressionEngine formulas to reference other Variables. I can't seem to do that directly now. So, instead, I create a dummy Float value, create the Variable and then edit it in the Properties box to enter the Value using the ExpressionEngine icon. Is there a way to enter a formula directly when initially creating a Variable?
4) The A4 measurement tool is my favorite measurement tool in FreeCAD! I did, however, have a couple of thoughts:
a. I haven't found a way to measure distances to, from, or between LCS's. Is there a way to do this?
b. Is there a way to reposition a measurement once it is displayed?
c. I wonder if it would be valuable to add default preferences or maybe auto-save/auto-restore of the last used settings, under "Controls", between invocations of the measurement tool. I sometimes find myself jumping in and out of Sketcher to measure distances and have to remember to click "Measure Distance" each time I enter the tool. I'm unsure about this one.
That's enough for now. Finally, I have years of C/C++ experience and in the future hope to look at the code and maybe contribute to the project with bugfixes, etc. Again, thanks to you and the other FreeCAD developers for all of your efforts!
Edit: FreeCAD Assembly 4 workbench, Current version 0.9.13, 2020-12-01
Edit: Oops, forgot to hit paste...
OS: openSUSE Leap 15.1 (KDE//usr/share/xsessions/plasma5)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.23323 (Git) AppImage
Build type: Release
Python version: 3.8.6
Qt version: 5.12.5
Coin version: 4.0.0
OCC version: 7.4.0
Locale: English/United States (en_US)