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
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
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 ?
An example few level hierarchy (I follow the real-world welding process steps: 1)weld side frames -> 2)weld whole frame -> 3)assemble main (whole)frame+boards+bolts ):
bench_asm_levels.png
bench_asm_levels.png (501.88 KiB) Viewed 8307 times
User avatar
totalcad
Posts: 70
Joined: Sun Oct 20, 2019 9:09 pm

Re: Assembly 4 workbench

Post by totalcad »

An example of more than 10 parts (I don't give up hope to find a comfortable workflow to count electric equipment&cables one day. In this example I assemble an electric box with breakers as particular asm (every breaker has an "out" for cable, which I'm going to construct in-context of Asm4). After I can put this (sub)assembled box into the main assembly of a kitchen, connect the cables with "outs" and use BOM (to count the total length of cables, quantity of equipment etc...):
electric_box.png
electric_box.png (400.26 KiB) Viewed 8305 times
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
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.
"RELIABILITY was a key target"
- strong encourage!! Thank you for the detailed explanation!
Just I thought to be on the safe side to ask the reason. May be you didn't look at this from such side... and this feature could be not so difficult to implement. When I started to use sub-assemblies the first time I tried to pick the desired LCS not thinking about hierarchy at all - 'just select"... And after I had known about the "Import" function. I had thought such workflow has some reason and asked.
But one useful thing about "Import" approach I've found: we have a separate bunch of LCS(s) in the root of sub-assembly and there's no reason to find them inside the sub-assembly's structure.
Anyway I'm very grateful for your work as it is now! Really good tool! Good luck and mode, Zolko! Thank you very much!
P/s: also the main reason I was interested in Asm4 the first time - the reliability and avoiding the "topological" issues in FC.))
User avatar
totalcad
Posts: 70
Joined: Sun Oct 20, 2019 9:09 pm

Re: Assembly 4 workbench

Post by totalcad »

I think I realized the difference between mechanical engineering and design engineering.

I'm fond of design in different areas: building, interior, exterior, some exclusive decorative arrays and stuff... And of coarse, one of my needs - quantity parameters besides the design visualizations. Even in some cases I don't need any "parametric connections" between parts.

As I understood (only now) the Asm4's aim is a mechanical approach and all stuff that interior and exterior design can get from Asm4 - just some kind of "side effect". I didn't realize it right away. Sorry:)) If you have more interesting thinks to do, just ignore my past posts...

Thanks for a wide range of responsiveness , Zolko! 8-)
Alex76
Posts: 15
Joined: Tue Dec 12, 2017 8:32 am

Re: Assembly 4 workbench

Post by Alex76 »

Zolko wrote: Fri Oct 08, 2021 9:41 am 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.
Hello,
there's a BUG in the "Variant Link" objects, I'll try to explain.

I've new saved Assembly4 Freecad project ready to assemble with my child objects, and my these objects are made of one Freecad design that contain a Tslot profile (with only variable ProfileLenght made by myself).

Trying to insert the first "Variant Part" works correctly because I "must" attach its LCS1 to the main "LCS_main" of Freecad assembly; the issue shows when I try to insert the second "Variant Part" and attach its "LCS2" with the child "LCS1" because the import panel only shows in the "Attach To" selection "Parent Assembly"... there's no other childs object to attach to.

No errors or issues when I use the standard button "Insert Link to a Part", but in this way I cannot define the customized length of each different profile in my design, I would like to make a configurable chassis for my 3D printer (length, width, and depth mainly).

Freecad version: Freecad Link Daily 2012.10.15

Is there any way to correct these bug please?
Attachments
imagetslot.jpg
imagetslot.jpg (100.46 KiB) Viewed 7982 times
imageError.jpg
imageError.jpg (173.51 KiB) Viewed 7982 times
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

Alex76 wrote: Mon Oct 25, 2021 9:11 am there's a BUG in the "Variant Link" objects, I'll try to explain.
...
the issue shows when I try to insert the second "Variant Part" and attach its "LCS2" with the child "LCS1" because the import panel only shows in the "Attach To" selection "Parent Assembly"... there's no other childs object to attach to.
Thank-you for testing and reporting. This is not a bug, it's documented in the message that you quoted:

Zolko wrote: Fri Oct 08, 2021 9:41 am 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.
What you should do is to work with master sketches and variables: set the length (and other parameters) of your frame as variables, draw the sketches based on those variables, set the attachment LCS of all variant links on those sketches, and insert the variant profiles attaching them to the LCSs, and set the length of the profiles as per those variables.

meaning in your case that you must set the LCS_main2 in the assembly, with parameters derived from your variables. As you do with the length of profile 1 I guess.

Does that make sense ?
try the Assembly4 workbench for FreCAD — tutorials here and here
Alex76
Posts: 15
Joined: Tue Dec 12, 2017 8:32 am

Re: Assembly 4 workbench

Post by Alex76 »

Zolko wrote: Mon Oct 25, 2021 9:31 am
Alex76 wrote: Mon Oct 25, 2021 9:11 am there's a BUG in the "Variant Link" objects, I'll try to explain.
...
the issue shows when I try to insert the second "Variant Part" and attach its "LCS2" with the child "LCS1" because the import panel only shows in the "Attach To" selection "Parent Assembly"... there's no other childs object to attach to.
Thank-you for testing and reporting. This is not a bug, it's documented in the message that you quoted:

Zolko wrote: Fri Oct 08, 2021 9:41 am 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.
What you should do is to work with master sketches and variables: set the length (and other parameters) of your frame as variables, draw the sketches based on those variables, set the attachment LCS of all variant links on those sketches, and insert the variant profiles attaching them to the LCSs, and set the length of the profiles as per those variables.

meaning in your case that you must set the LCS_main2 in the assembly, with parameters derived from your variables. As you do with the length of profile 1 I guess.

Does that make sense ?
I unsderstand your answer in the first part, I miss to read some info about the new "Variant part" (sorry for that....)

I don't understand the second answer to my question, my goal is to assembly a chassis like a one in the attached picture. I want to have only one FC design of a single TSLOT profile, and have the main freecad desing with the previous part "repeated" for each axis in the length I required... in this way I can specify the MAIN length/witdh/depth (with 3 variables i.e. for the main assembly) of the chassis leaving to freecad the recompute work to adapt the sizes of the chassis. Like a parametric design if you understand....

Now the only way to to this, is to save a freecad file for each profile in the picture, and then assembly in a Freecad main project (I think...)
Attachments
Vslot_2040_Profile.FCStd
(142.52 KiB) Downloaded 69 times
chassis.jpg
chassis.jpg (86.37 KiB) Viewed 7955 times
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

Alex76 wrote: Mon Oct 25, 2021 9:53 am my goal is to assembly a chassis like a one in the attached picture. I want to have only one FC design of a single TSLOT profile, and have the main freecad desing with the previous part "repeated" for each axis in the length I required
yes, that's what variant links are for, exactly.

The basic step for this – please remember that this feature is still marked experimental – is to draw the frame of your machine as sketches in the main assembly (something that we call "master sketches"), set LCS on the intersections as necessary, and insert as many variant links of the one and same FCStd file as you have segments, setting the length as needed.

What I was saying is that you can adjust the length of each segment manually, or, if you build your model in a more sophisticated way, you can calculate the length of each segment automagically and set only the variables length and width in the main assembly. Depending on how proficient you are with FreeCAD, it might be safer to choose the first option: set the length of each segment manually (EDIT: you can adjust this length for each segment later as you need). But they will all link to a single source profile, and they will all attach to LCSs in the main assembly.

You're the first to make use of this feature (apart from me), so you might run into unexpected territory: please report any problems that you encounter.
try the Assembly4 workbench for FreCAD — tutorials here and here
Alex76
Posts: 15
Joined: Tue Dec 12, 2017 8:32 am

Re: Assembly 4 workbench

Post by Alex76 »

Zolko wrote: Mon Oct 25, 2021 10:25 am
Alex76 wrote: Mon Oct 25, 2021 9:53 am my goal is to assembly a chassis like a one in the attached picture. I want to have only one FC design of a single TSLOT profile, and have the main freecad desing with the previous part "repeated" for each axis in the length I required
yes, that's what variant links are for, exactly.

The basic step for this – please remember that this feature is still marked experimental – is to draw the frame of your machine as sketches in the main assembly (something that we call "master sketches"), set LCS on the intersections as necessary, and insert as many variant links of the one and same FCStd file as you have segments, setting the length as needed.

What I was saying is that you can adjust the length of each segment manually, or, if you build your model in a more sophisticated way, you can calculate the length of each segment automagically and set only the variables length and width in the main assembly. Depending on how proficient you are with FreeCAD, it might be safer to choose the first option: set the length of each segment manually (EDIT: you can adjust this length for each segment later as you need). But they will all link to a single source profile, and they will all attach to LCSs in the main assembly.

You're the first to make use of this feature (apart from me), so you might run into unexpected territory: please report any problems that you encounter.
I'm not sure I understand, can you please attach me an example with my file modified?
Attachments
Vslot_2040_Profile.FCStd
(142.52 KiB) Downloaded 71 times
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

Alex76 wrote: Mon Oct 25, 2021 12:08 pm I'm not sure I understand, can you please attach me an example with my file modified?
The assembly and part must be in separate files. Put them in the same directory and open the assembly.

Structure.png
Structure.png (317.06 KiB) Viewed 7875 times
Attachments
Beam_30x30.FCStd
(76.25 KiB) Downloaded 87 times
Asm_Structure.FCStd
(20.99 KiB) Downloaded 82 times
try the Assembly4 workbench for FreCAD — tutorials here and here
Post Reply