ppemawm wrote: ↑Sun Oct 20, 2019 8:05 pm
I then used Assembly4 to create a linked assembly with all parts in the same file. In order to do this, each body of the subassembly had to be wrapped with its own Part container as can be seen in the Model Tree in the first image.
yes, this is a choice I've made quite early, and the reason are that App::Part and App::Link combine very well, and that the App::Part container can be used to assemble PartDesign Bodies, but also solids from the Part workbench, and also solids imported from STEP files. So while it does create some overhead for designs using solely PartDesign, it allows a unified interface for assembly using any workbench to create solids. I use a lot of parts coming from STEP files.
Now that you have proven that it is possible to use this interface (App::Part <=> App::Link) to also do assemblies in a single document and in-context design — even though this workflow was not fore-seen — I think that it strengthens the original choice.
However, it is apparently important to consider the order or sequence that the LCS's are created or linked. In this example, the barrel LCS was created before the lever LCS and the lever was linked to the barrel.
...
Is this the intended behaviour?
If you have attached the lever to the barrel, then yes, it's logical.
Annother demonstration of the power of Assembly4 is shown in the next image. The length of the carburator body pad is lengthened 10 mm. (The length of the barrel pad is linked by an Expression to the carburator body so that it also lengthens the same amount.) Note how all of the linked parts relocate to their proper location in the Assembly4 Model. Powerful indeed!
thank-you for your appreciation
In conclusion, it seems that the Assembly4 workbench interfaces quite nicely with the process I am using for in-context modelling with all bodies in the same file. The only change I have to make is to add each body to a Part container as I model. Thank you for such a simple way to gain the assembly constraints I was missing in my previous models!
I was thinking about your workflow: I have been playing around with your files, and it seems somewhat burdensome to create in the same document an App::Part, and then App::Link this App::Part into the App::Part 'Model' assembly included in this file. I think it should be possible to directly include the App::Part as a child of the App::Part 'Model' that is the root assembly, and still use the LCS and master-sketch and ExpressionEngine and constraints, but directly on the App::Part and not on it's App::Link.
In other words: do you think the following workflow would make sense :
- new Document
- new Model
- new Part
- create LCS in Part
- create master Sketch in Model
- attach LCS to master Sketch
- move Part → Model (in the document tree)
- place Part in the Model by attaching its LCS to the LCS in the Model (thus allowing kinematics based on the master Sketch)
This would be exactly like today, except that the Part is directly attached to the correct Placement and not its Link. Mostly all of the current Assembly4 commands would be identical, only the ExpressionEngine need to be adapted to deal with an App::Part and not an App::Link. Of course, this would only make sense for parts that are unique in the assembly, if you have multiple instances of the same Part then you'd have to use several Links to create as many instances.