Assembly3 preview

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Mark Szlazak
Posts: 439
Joined: Tue Apr 04, 2017 6:06 pm
Location: SF Bay Area, California

Re: Assembly3 preview

Post by Mark Szlazak »

realthunder wrote: Fri May 03, 2019 11:38 pm In the future release, only the main assembly file tab is opened, but all other part documents are still opened in the background, and all their tree items will are still there.
Sorry in sounding so naive but when you say that part documents are in the background, does that mean they are not rendered in a separate window but just reside in RAM?
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Post by realthunder »

Mark Szlazak wrote: Sat May 04, 2019 5:05 am Sorry in sounding so naive but when you say that part documents are in the background, does that mean they are not rendered in a separate window but just reside in RAM?
Yes, that is true. The document view window is not just hidden. It is really closed, or not created at all when loading the document. And the document may not be fully loaded in RAM, which will have a grey document icon in tree view. Partial loaded document cannot be modified, and will trigger warning if you do. To reload it fully, just double click the document icon in tree view.
Try Assembly3 with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
HoWil
Veteran
Posts: 1279
Joined: Sun Jun 14, 2015 7:31 pm
Location: Austria

Re: Assembly3 preview

Post by HoWil »

realthunder wrote: Fri May 03, 2019 11:38 pm When you start a multi-file assembly, you will need to manually open all the part files first. And then create a new file and add an assembly. You need to save the assembly file at least once. Then, in the tree view, just drag your part tree item and drop into the assembly. Note that if you are using PartDesign body, you must drag the body, not any sub feature inside it. This creates a link inside the assembly file to your part file. After all done, save the assembly file. Next time you open it, all part files will be opened automatically. In the current release AppImage, all part file tabs will be opened, but you cannot close the tab, as it will close the corresponding document. In the future release, only the main assembly file tab is opened, but all other part documents are still opened in the background, and all their tree items will are still there. To bring back the tab view, simply select any feature belonging to that document in the tree view.

BTW, one major difference of asm3 and asm2 is that the part/sub-assembly hierarchy is integrated into the upper assembly. You can directly edit any feature inside the main assembly without explicitly switching to the part document tab view.
I see. Thank you for explaining everything so patiently 8-) .
So, with future releases one can't accidentally close a tab which 'clears' the part in the assembly (my original problem). If this is the case than everything is fine.
Thanks again,
HoWil
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Assembly3 preview

Post by triplus »

realthunder wrote: Fri May 03, 2019 12:15 am My recent commits has changed this behavior. Now when you close the tab of a linked document, the tab goes away, but the document remains open in the background. You can still force close the document using menu action.
Great. Some questions:

I assume the Link effort does all the heavy lifting in the background? Documents stay partially or fully loaded/opened in the background, on the external document tab close? How does "force closing" the external document affect the assembly document? What changes? Assembly document likely still keeps everything it needs (partially) loaded? If that is how it behaves, why not making the final step and to make that a default behavior?
You can add this part into an assembly, right click the assembly item in the tree view and select 'Freeze'. The assembly will copy the part shape without history. You can then link to this assembly in your main assembly file. Next time you open the main assembly file, the sub-assembly file will be partially loaded without the history.
Having "freeze" as the default behavior? But then again when reading this:
The document view window is not just hidden. It is really closed, or not created at all when loading the document. And the document may not be fully loaded in RAM, which will have a grey document icon in tree view. Partial loaded document cannot be modified, and will trigger warning if you do. To reload it fully, just double click the document icon in tree view.
This reads as if all of that is already the default behavior? Partially loaded document will still load linked feature history, but if "freeze" is used on the feature it gets loaded without history? Is "freeze" (core) Link effort related feature?
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Assembly3 preview

Post by triplus »

realthunder wrote: Fri May 03, 2019 11:38 pm BTW, one major difference of asm3 and asm2 is that the part/sub-assembly hierarchy is integrated into the upper assembly. You can directly edit any feature inside the main assembly without explicitly switching to the part document tab view.
Including editing a Sketch from such Part in Assembly document? If yes, being able to use Assembly geometry as an external geometry reference in such Sketch?
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Post by realthunder »

triplus wrote: Wed May 08, 2019 7:06 pm I assume the Link effort does all the heavy lifting in the background? Documents stay partially or fully loaded/opened in the background, on the external document tab close? How does "force closing" the external document affect the assembly document? What changes? Assembly document likely still keeps everything it needs (partially) loaded? If that is how it behaves, why not making the final step and to make that a default behavior?
If you force close the document, the linked part geometry in the assembly will disappear, and you'll get exclamation marks on those broken links if you recompute the assembly document. The user can, say, rename the external file, and copy another one over, maybe from backup, and then manually open that new file. If the file has the same path and name, and contains objects with the same name, then the assembly will auto fix all the broken links. If not, then you can still manually fix those links by drag and drop the corresponding objects in the new file into the assembly.

This reads as if all of that is already the default behavior? Partially loaded document will still load linked feature history, but if "freeze" is used on the feature it gets loaded without history? Is "freeze" (core) Link effort related feature?
Partial loading is auto activated if there are independent objects in the external document, and the assembly only links to some of them. Say, you have a document with all kinds of screws, and the assembly just used a few, then those unused ones will not be loaded. This can be done automatically only if the objects have no dependency between them. Some objects, on the other hand, can function even when their dependents are not loaded. But this cannot be done automatically, because the object must implement its own logic to deal with partial loading situation, where its link properties are not fully restored. Normal object will surely report it as error. This is why 'Link' cannot provide default 'Freeze' feature, because it does not know how the linked object works, or in another words, what information to store in case the linked object is not loaded. My assembly container is one example that implements this 'Freeze' feature. The other one is the SubShapeBinder from PartDesign.

triplus wrote: Wed May 08, 2019 9:05 pm
realthunder wrote: Fri May 03, 2019 11:38 pm BTW, one major difference of asm3 and asm2 is that the part/sub-assembly hierarchy is integrated into the upper assembly. You can directly edit any feature inside the main assembly without explicitly switching to the part document tab view.
Including editing a Sketch from such Part in Assembly document? If yes, being able to use Assembly geometry as an external geometry reference in such Sketch?
Yes, you can edit the sketch at the linked placement, or in-place, so to speak. Right now, sketch cannot use external geometry from linked document. You cannot event use external geometry from a different body in the same document. You'll have to use things like shape binder to bring in the shape. The binder takes care of the complexity of cross coordinate system transformation. In the future, I may try to copy that logic into sketch object so it can be handled directly.
Try Assembly3 with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
Mark Szlazak
Posts: 439
Joined: Tue Apr 04, 2017 6:06 pm
Location: SF Bay Area, California

Re: Assembly3 preview

Post by Mark Szlazak »

realthunder wrote: Thu May 09, 2019 12:17 am
Hi Realthunder. Just wonder when your next release of Assembly 3 is expected and is there going to be a merge with 0.19 or is it staying as a fork at least for the near term? Thank you.
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Post by realthunder »

Mark Szlazak wrote: Mon May 20, 2019 7:47 pm
realthunder wrote: Thu May 09, 2019 12:17 am
Hi Realthunder. Just wonder when your next release of Assembly 3 is expected and is there going to be a merge with 0.19 or is it staying as a fork at least for the near term? Thank you.
I plan to release a version this month. And then I'll try splitting the Link part and make a PR.
Try Assembly3 with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
User avatar
fosselius
Posts: 381
Joined: Sat Apr 23, 2016 10:03 am
Contact:

Re: Assembly3 preview

Post by fosselius »

awesome!
Jee-Bee
Veteran
Posts: 2566
Joined: Tue Jun 16, 2015 10:32 am
Location: Netherlands

Re: Assembly3 preview

Post by Jee-Bee »

realthunder wrote: Mon May 20, 2019 10:18 pm I plan to release a version this month. And then I'll try splitting the Link part and make a PR.
great news! thanks
Post Reply