Big update: I kinda succeeded in making a full assembly without solver, only using standard App::Part things, with the App::Link stuff.

- asm_Bitoniau.png (248.86 KiB) Viewed 732 times
- I first took my previous part, but this time wrapped up in an App::Part (it was only a Body before). Called it Bitoniau
- Then, in a new file, I created a Part, inside the Part a Body, and inside the Body an LCS (you can notice that there is an icon in the screenshots for this now ! If you don't have it you need to do it by hand). I made a sketch, and fixed 2 LCS on 2 points from the sketch. I inserted 2 Links to the previous part. Called this one asm_level1.
- And again: new file → Part → Body → LCS, Sketch → LCS. Linked 2 times the previous asm_level1 and once the part Bitoniau (up-side down, for the fun). Called this one asm_level2
- And again: new file → Part → Body → Sketch → LCS. Linked 3 times asm_level2 and once asm_level1. And made a sketch and an extrusion, just to show that it's possible. Called it asm_level3
To place the parts in the assembly, I used
realthunders magic:
realthunder wrote: ↑Sat Jan 05, 2019 10:32 am
No, attach engine does not support App::Part and App::Link directly. What you did is exactly the missing piece. If you'd like to explore more about my branch, you can try the enhanced expression engine. Select Part_1 in the assembly, right click in the property view, and select "Show all". Then, right click in Placement field, and select "Expression...". Finally, enter the following expression,
Code: Select all
LCS_1.Placement.multiply(.<<LCS_1.>>.Placement.inverse())
except that <<LCS_1.>> needs to be replaced by <<Body.LCS.>> because we have wrapped the Body in a Part, remember ? And of course, you have to choose the correct LCS names. The placement of the LCS to the desired position and orientation is sometimes a bit tricky though, but you can get it right after some attempts.
So what we have here is a way to assemble many layers of App::Part into assemblies and sub-assemblies, with full control over the placements of the parts, fully parametric and dynamic, every-things does what you think it should do. And no special workbench or container, only standard FreeCAD + LinkStage3 things. The sizes of the assembly files are ridiculously small, therefore I don't know what's the maximum size of an assembly we could achieve with this (unfortunately I don't have the time to try to assemble an entire Airbus). You can test the assembly with the FreeCAD-Assembly3.AppImage, see attached files.