Assembly 4 workbench

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
FreeCutter
Posts: 93
Joined: Mon Aug 26, 2019 5:52 pm
Location: Germany
Contact:

Re: Assembly 4 workbench

Post by FreeCutter »

totalcad wrote: Thu Sep 30, 2021 7:36 pm
Thanks for your further explanations - you are confirming my thoughts about how to use the "Part" container here!
FreeCutter
Visit my GitHub profile

Be nice to others! Respect the FreeCAD code of conduct!
User avatar
FreeCutter
Posts: 93
Joined: Mon Aug 26, 2019 5:52 pm
Location: Germany
Contact:

Re: Assembly 4 workbench

Post by FreeCutter »

Hello @Zolko,

regarding 'Import Datum Object' please let me suggest the following:
Importing a LCS from one to another assembly and e.g. deleting the preset Label I do not see to which orginal LCS this import refers to.
Could that "Contected to" info be shown for instance in the Property-View in line 'Attached to' as the originally nominated name/label of the LCS is still available?
Or even more convenient a button like "Edit Imported Datum Object" is added which opens a Task dialog similar to 'Edit Placement of a Part' ?

Furthermore, maybe the handling of imported LCS is changed more generally to "linked" ones right from the start:
1. Assuming there is a button "Insert Link to Datum Object", similar to 'Insert Link to a Part'.
2. Click on that button opens extra window 'Insert a Datum Object' with list of all available datum objects in linked assemblies.
3. Selecting datum object (e.g. a LCS) suggests a 'Name for the link' which could be adjusted (once) here. Suggested name is generated as currently in 'Import Datum' dialog.
4. Changes to this linked datum object (in the tree view the sign ">" is added to the LCS icon) are done by click on 'Edit Imported Datum Object' (as indicated above).
FreeCutter
Visit my GitHub profile

Be nice to others! Respect the FreeCAD code of conduct!
User avatar
totalcad
Posts: 70
Joined: Sun Oct 20, 2019 9:09 pm

Re: Assembly 4 workbench

Post by totalcad »

totalcad wrote: Wed Sep 29, 2021 7:52 pm Hello, @Zolko!
Again about naming...
Zolko, thanks for implementation pre-defined offered name of a new part - in v.0.11.1 - works as I've expected!! I just select desired part in the list and press Enter - an assembly gets the part with the name of "Part" without redundant "file" name etc.
Thank you!
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

Hello,

there is a new version out: v0.11.2

it has improved BOM and PartInfo features (thanx FarmingSoul and totalcad), multiple datum imports (thanx abetis), added "Open File" when inserting a link (copied from A2+ thanx kbwbe),

and variantLinks ! Also see here and here . This is still experimantal, please use with caution. Usage is:

Image

and that's it. Only App::Parts (Std_Part) that have a "Variables" property container can be used as source object. These variables are duplicated in the variant, and can be set independently IN the variant. If you insert 5 variants of the same source object, you can set 5 different values to its variables. These values are persistent, meaning that they are restored when the document is restored. This variant link can be placed as any normal link, but, since it's constructed at run-time, it's not possible to link something TO it. In other words, it's necessarily a leaf in the assembly tree. There still is a problem when restoring an assembly with variant links, you can ignore this (I will have to find a way to intercept this error)

Code: Select all

Exception opening file: /tmp/FreeCAD_Doc_df2f292d-8f22-4df3-b630-063d76f713be_da39a3_3516 [File '/tmp/FreeCAD_Doc_df2f292d-8f22-4df3-b630-063d76f713be_da39a3_3516' does not exist!]
Exception opening file: /tmp/FreeCAD_Doc_2ea51969-ff6e-43d5-afb6-506afe634f7f_da39a3_3516 [File '/tmp/FreeCAD_Doc_2ea51969-ff6e-43d5-afb6-506afe634f7f_da39a3_3516' does not exist!]
Please update, test and report any (other) errors you may encounter.
try the Assembly4 workbench for FreCAD — tutorials here and here
User avatar
FreeCutter
Posts: 93
Joined: Mon Aug 26, 2019 5:52 pm
Location: Germany
Contact:

Re: Assembly 4 workbench

Post by FreeCutter »

Working with v0.11.3 and FreeCAD version as below I have the following question:

Why is the "Variables" elemenent no longer set by default once a 'New Assembly' is introduced?

Currently I have the following issue in my workflow:
  • A variable is is introduced in an Assembly and "Animate Assembly" gets available and could be used without any issue.
  • This assembly is inserted to another Main-Assembly.
  • In the main-assembly the "animate assembly" is deactivated.
  • As soon as a variable is introduced to the main-assembly (or 'Add Variable' is clicked and without setting a 'Name' the OK is clicked) the function "animate assembly" is getting available as well as the variable from sub-assembly could be reached and used for the animation.
I would expect that "animate assembly" is active as soon as variables also in linked assemblies are in an assembly.
In older versions I remember that once a new assembly had been introduced the "Variables" element had been introduced by default.
In other words missing of "Variables" by default seems to be the bug?

Thanks for fixing in case it's actually a bug.

Cheers,
FreeCutter

Code: Select all

OS: Windows 10 Version 2009
Word size of FreeCAD: 64-bit
Version: 0.20.25645 (Git)
Build type: Release
Branch: master
Hash: 37d9757399b4c2ec30318eb88d7cd7c508246345
Python version: 3.8.6+
Qt version: 5.15.2
Coin version: 4.0.1
OCC version: 7.5.0
Locale: German/Germany (de_DE)
FreeCutter
Visit my GitHub profile

Be nice to others! Respect the FreeCAD code of conduct!
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

FreeCutter wrote: Sat Oct 16, 2021 12:38 pm Why is the "Variables" elemenent no longer set by default once a 'New Assembly' is introduced?
a new version v0.11.4 is out, and this reverts to the previous behavior. Please update and test, and report if the problem persists
try the Assembly4 workbench for FreCAD — tutorials here and here
User avatar
FreeCutter
Posts: 93
Joined: Mon Aug 26, 2019 5:52 pm
Location: Germany
Contact:

Re: Assembly 4 workbench

Post by FreeCutter »

Zolko wrote: Mon Oct 18, 2021 9:58 am
FreeCutter wrote: Sat Oct 16, 2021 12:38 pm Why is the "Variables" elemenent no longer set by default once a 'New Assembly' is introduced?
a new version v0.11.4 is out, and this reverts to the previous behavior. Please update and test, and report if the problem persists
Thanks a lot!
Tested and it is just working fine!

Cheers!
FreeCutter
FreeCutter
Visit my GitHub profile

Be nice to others! Respect the FreeCAD code of conduct!
User avatar
totalcad
Posts: 70
Joined: Sun Oct 20, 2019 9:09 pm

Re: Assembly 4 workbench

Post by totalcad »

@Zolko, hello!
A question about LCS hierarchy///
As I know: to use LCS(s) which are belong to sub-assembly's Part - we need to use "Import" function - that makes a duplicated LCS(s) in the root of sub-assembly. Very often I make some sub-assemblies with more than 10 Parts containing LCS(s) that I use in the main assembly. And every time I add a new Part to sub-assembly - I need to make a new Imported copy in the root. Also if we want to make some cascade of sub-assemblies (one inside another) - we always need to make a next LCS's hierarchy level (also the names of LSC complicate with a new level).

Did you think about the "through" model of LCS's access hierarchy?

Is it a deliberate decision to "lock" the Part's LCS(s) inside the sub-assembly or it's a technical difficulty?

Good day &Thanks!
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

totalcad wrote: Thu Oct 21, 2021 9:52 am Very often I make some sub-assemblies with more than 10 Parts containing LCS(s) that I use in the main assembly.
I fail to see your workflow. I tend to make logical and hierarchical sub-assemblies that are as much as possible self-contained, and thus need little information from other sub-assemblies. Do you have a real-world example where you would need to import 10s of LCS from parts into the sub-assembly to be used in the main assembly ?

Did you think about the "through" model of LCS's access hierarchy?
it exists now for the import of LCSs (and datums in general): you can "jump" several levels at once, and import an LCS from a part in a sub-sub-sub-assembly into the top-level assembly in 1 go. Simply select a datum in a child part somewhere in the tree (including links) and an identical datum will be created in the root assembly. It's actually possible to do it in 1 step for many LCSs, see https://github.com/Zolko-123/FreeCAD_Assembly4/pull/249 . If it doesn't work it's a bug and please report.

Is it a deliberate decision to "lock" the Part's LCS(s) inside the sub-assembly or it's a technical difficulty?
both: it is doable as a such, but leads to complications in the code that must be able to deal with any possible combination (how many levels would be allowed ? 2 ? 3 ? infinity ?). Also, my point was to be simple and reliable, and still cover 99% of real-world use-cases. I'm a mechanical engineer initially, I didn't intend to make a workbench at the beginning, it just happened. RELIABILITY was a key target, at the sacrifice of functionality and/or comfort.
try the Assembly4 workbench for FreCAD — tutorials here and here
User avatar
totalcad
Posts: 70
Joined: Sun Oct 20, 2019 9:09 pm

Re: Assembly 4 workbench

Post by totalcad »

Zolko wrote: Thu Oct 21, 2021 10:43 am
Did you think about the "through" model of LCS's access hierarchy?
it exists now for the import of LCSs (and datums in general): you can "jump" several levels at once, and import an LCS from a part in a sub-sub-sub-assembly into the top-level assembly in 1 go. Simply select a datum in a child part somewhere in the tree (including links) and an identical datum will be created in the root assembly. It's actually possible to do it in 1 step for many LCSs, see https://github.com/Zolko-123/FreeCAD_Assembly4/pull/249 . If it doesn't work it's a bug and please report.
Ow!! Cool! I didn't know. Need to try! Great thanks, Zolko!
Post Reply