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
rmn_hr
Posts: 110
Joined: Sun Jun 26, 2022 7:54 pm

Re: Assembly 4 workbench

Post by rmn_hr »

leoheck wrote: Thu May 18, 2023 11:19 pm Ah I think it could be easy to implement this if we consider the Assembly in use the one that is Active or that was Activated exactly like what we have with Bodies. It could also work assuming the active is the one currently selected, or both methods.
My opinion to the idea of multiple assemblies in one file - don't do it !!
Zolko's approach to allow only one assembly per file is the only way the bring (and keep) structure to a design.

The multi-body approach in PartDesign is not a 'good' example.
When I first became aware of FreeCAD (back in 2018) I nearly rejected to go on with this software.
This multi-body-construction-approach in Partdesign as an alternative for a working assembly tool was not feasible for bigger mechanical constructions.

Luckily ASM3 by Realthunder was on the way and Zolko's ASM4 came to stage also.
ASM4 with it's single-assembly-per-file-rule and the easy usage with the LCS-concept became my favorite tool.

Following my own rule, to reject the multi-body-opportunity in PartDesign and stick to a single-body-approach saved lot's of my nerves.
(Compared to numerous new users running into confusion and huge top-naming issues with there more or less complex multi-body 'assemblies' gathered in one file)

My biggest design in ASM4:
- about 1.900 components assembled
- separated in about 370 subassemblies
- about 70 components designed in PartDesign - each in a separate file!!!
(maximum appearance of one component in the design is 96 - luckily just linking and not shapebinding)
- some components imported as STEP, placed in a Part-Container and built-in by LCS-linking
- all this stored in a common project directory (FreeCAD is really great and robust in file handling)


From my point of view it would be not a good idea to make multiple assemblies possible in ASM4.

Perhaps a better approach would be to adopt the single-assembly-rule to a single-body-rule in PartDesign and force a more structured design-approach for multi-component-designs by joining the components with an assembly tool like ASM4 or ASM3.
My workflow: create single components in PartDesign and arrange them with Zolko's Assembly4
(https://github.com/Zolko-123/FreeCAD_Assembly4 )

FreeCAD works pretty well and stable for me !! :)
Hymn of Praise valid again since FreeCAD 0.22.35449
leoheck
Veteran
Posts: 1223
Joined: Tue Mar 13, 2018 5:56 pm
Location: Coffee shop

Re: Assembly 4 workbench

Post by leoheck »

rmn_hr wrote: Sat May 20, 2023 8:10 am ASM4 with it's single-assembly-per-file-rule and the easy usage with the LCS-concept became my favorite tool.
Well, this is *your* policy, your rule your way of working. You should not force your own rules over the others as flat-earthers do, right?
You could keep using your policy the way you want, this feature would not disrupt your way of life.
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

rmn_hr wrote: Sat May 20, 2023 8:10 am ASM4 with it's single-assembly-per-file-rule and the easy usage with the LCS-concept became my favorite tool.
...
My biggest design in ASM4:
- about 1.900 components assembled
- separated in about 370 subassemblies
- about 70 components designed in PartDesign - each in a separate file!!!
(maximum appearance of one component in the design is 96 - luckily just linking and not shapebinding)
- some components imported as STEP, placed in a Part-Container and built-in by LCS-linking
- all this stored in a common project directory (FreeCAD is really great and robust in file handling)
Impressive !!! Do you think you could show a screenshot of your assembly ?
try the Assembly4 workbench for FreCAD — tutorials here and here
User avatar
rmn_hr
Posts: 110
Joined: Sun Jun 26, 2022 7:54 pm

Re: Assembly 4 workbench

Post by rmn_hr »

Zolko wrote: Mon May 22, 2023 6:30 am Impressive !!! Do you think you could show a screenshot of your assembly ?
a little screenshot doesn't present all the details :)
Please pay some attention to the 'serviceguy' on top of the 'building' ;)

rmn_hr_PRJ001ASM001.JPG
rmn_hr_PRJ001ASM001.JPG (14.26 KiB) Viewed 8027 times
My workflow: create single components in PartDesign and arrange them with Zolko's Assembly4
(https://github.com/Zolko-123/FreeCAD_Assembly4 )

FreeCAD works pretty well and stable for me !! :)
Hymn of Praise valid again since FreeCAD 0.22.35449
leoheck
Veteran
Posts: 1223
Joined: Tue Mar 13, 2018 5:56 pm
Location: Coffee shop

Re: Assembly 4 workbench

Post by leoheck »

Hey guys, how do I use the subshapebinder to make holes on a panel using features from another linked object?
The subshapebinder is being created on the Assembly, but I cannot move it to a Body or from a Body to Copy the External geometry.
damib
Posts: 6
Joined: Mon Dec 24, 2018 9:24 am

Re: Assembly 4 workbench

Post by damib »

Hi
Zolko wrote: Sat Sep 17, 2022 8:20 pm ... Therefore, for stability reasons, and also because I didn't know how good/useful this is going to be....
Example: I have two linear motion guides, each one with its own carriage, I create an assembly for guide+carriage with a variable to control the position of the carriage on its guide. Then I link this assembly from a general one where I attach something else on each carriage, in order to independently control the carriages positions I would need a variantLink, but then I wouldn't be able to attach anything on the variantLink copy af the guide+carriage.

This make the assembly+carriage assembly not general and reusable as is in other projects.
damib
Posts: 6
Joined: Mon Dec 24, 2018 9:24 am

Re: Assembly 4 workbench

Post by damib »

damib wrote: Thu May 25, 2023 5:56 pm Hi
Zolko wrote: Sat Sep 17, 2022 8:20 pm ... Therefore, for stability reasons, and also because I didn't know how good/useful this is going to be....
Example: I have two linear motion guides, each one with its own carriage, I create an assembly for guide+carriage with a variable to control the position of the carriage on its guide. Then I link this assembly from a general one where I attach something else on each carriage, in order to independently control the carriages positions I would need a variantLink, but then I wouldn't be able to attach anything on the variantLink copy af the guide+carriage.

This make the assembly+carriage assembly not general and reusable as is in other projects.
I'm trying to hierarchical assembly a complex system using reusable sub assemblies... connecting the variables from a sub assembly to the other on the container assembly but everything is very VERY slow and seems to be very unstable. Instead if I do everyhting from the top assembly without any hierarchy everything seems to be fine.
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

damib wrote: Thu May 25, 2023 5:56 pm Example: I have two linear motion guides, each one with its own carriage, I create an assembly for guide+carriage
why on earth would you do that ??? The logical construction would be to make a static assembly (rails + support) and a moving assembly (carriages + chariot), both rigid. What you're trying is possible but very unpractical and variant links have not been designed for that, it's going to be a PITA
try the Assembly4 workbench for FreCAD — tutorials here and here
damib
Posts: 6
Joined: Mon Dec 24, 2018 9:24 am

Re: Assembly 4 workbench

Post by damib »

Hi thanks for the answer.
Zolko wrote: Thu May 25, 2023 7:49 pm
damib wrote: Thu May 25, 2023 5:56 pm Example: I have two linear motion guides, each one with its own carriage, I create an assembly for guide+carriage
why on earth would you do that ??? The logical construction would be to make a static assembly (rails + support) and a moving assembly (carriages + chariot), both rigid. What you're trying is possible but very unpractical and variant links have not been designed for that, it's going to be a PITA
I didn't think to this possibility, for me it was the more natural because it is how I physically assemble the thing: I connect the rails+carriage to the support and then the chariot to the carriage, anyway I'll try your solution.

Thanks again. ;)
turoj
Posts: 33
Joined: Wed Mar 22, 2023 6:57 pm

Re: Assembly 4 workbench

Post by turoj »

There seems to be an issue with Asm4_cloneFastenersToAxes when using datum axes from using Asm4_importDatum. I'm still playing around with it sometimes I get nothing and somtimes I get this error message:

Code: Select all

Running the Python command 'Asm4_cloneFastenersToAxes' failed:
Traceback (most recent call last):
  File "/home/zoomer/.local/share/FreeCAD/Mod/Assembly4/./FastenersLib.py", line 315, in Activated
    axis = obj.getObject(axisData[3])

<no object bound to built-in method getObject>Running the Python command 'Asm4_cloneFastenersToAxes' failed:
Traceback (most recent call last):
  File "/home/zoomer/.local/share/FreeCAD/Mod/Assembly4/./FastenersLib.py", line 315, in Activated
    axis = obj.getObject(axisData[3])

<no object bound to built-in method getObject>

Code: Select all

OS: Arch Linux
Word size of FreeCAD: 64-bit
Version: 0.21.0.33110 (Git)
Build type: None
Branch: master
Hash: 18e40941ceb36c52701a7c74ea26043ef3385701
Python 3.11.3, Qt 5.15.9, Coin 4.0.1, Vtk 9.2.6, OCC 7.6.3
Locale: English/United States (en_US)
Installed mods:
  * fasteners 0.4.56
  * fcgear 1.0.0
  * DynamicData 2.46.0
  * Curves 0.6.9
  * Assembly4 0.50.2
Also, how hard would it be to add support for multiple fasteners when running Asm4_cloneFastenersToAxes or Asm4_mirrorArray or maybe a macro would be easier? At the moment I find it easier using a separate dedicated part for my fat stacks of fasteners and not using Asm4_cloneFastenersToAxes.

One more thing, "If another fastener is selected a new fastener of the same type is created.." feature of the Asm4_Fasteners command is interesting. When using the gui to create fasteners consecutively, I have to deselect them each time before I create another one.
Post Reply