Assembly 4 workbench

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Grawp
Posts: 45
Joined: Sat Mar 03, 2018 9:34 am

Re: Assembly 4 workbench

Post by Grawp »

ppemawm wrote: Wed Jul 15, 2020 2:42 pm Assembly4 facilitates the creation of numerous bodies using the PartDesign or Part workbench in the same or individual files then assemble and attach them in their proper location in 3D space. It also has the added benefit of simulating motion of an articulating or rotating assembly to check for proper operation during the design process.

If you have not seen these examples perhaps they will give you a better understanding:
https://forum.freecadweb.org/viewtopic.php?f=24&t=48473
Well but that is exactly what I now think it is meant to do unfortunately. Just attaching final parts to their places and doing some simulation etc...
I've look at the examples it is always just final assembly. Maybe hierarchical but not interleaved with solid modeling.

I was hoping that ASM4 would help me "maybe not assemble" but place some repeated features at specific places and then continue with doing solid modeling like booleans with the placed parts and then continue placing and otherwise using these superparts in supersuperparts etc.. each time for the sake of solid modeling but Lattice2 seems to be far superior for this use-case while ASM4 seems to be not meant for such thing at all?
User avatar
M4x
Veteran
Posts: 1486
Joined: Sat Mar 11, 2017 9:23 am
Location: Germany

Re: Assembly 4 workbench

Post by M4x »

Grawp wrote: Tue Jul 14, 2020 8:15 pm [...]
I have basically following use-cases:
  1. I place some thing in an enclosure to specific places and then I try modeling openings, mounting holes, and mounting brackets around them.
  2. I want to draw some features which are not only additive but also subtractive at specific places in parent model.
[...]
I think that it's going to be a lot easier when the Topological_naming_problem is resolved in the official FreeCAD branch and maybe Asm3 would be more suitable than because of the different way it works.
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: Assembly 4 workbench

Post by ppemawm »

Grawp wrote: Wed Jul 15, 2020 3:49 pm I've look at the examples it is always just final assembly.
Actually no.

Assembly4 is used in these examples to create all of the bodies in-context and their features in a single file as well as to assemble all of the bodies.

For repeated features I would use PartDesign patterns and Draft arrays for repeated bodies. Or, you can use Assembly4 to arbitrarily place or assemble multiple copies of the same body. Perhaps some of the confusion is whether we are mixing definitions of parts, bodies, and features.

I am not familiar with Lattice2 so probably do not fully understand what you are trying to do. I reviewed the Lattice2 tutorial link you provided and that creation of features can also be done with PartDesign without using Assembly4.

If you could attach a sample file of what you are modelling it would be most helpful.
"It is a poor workman who blames his tools..." ;)
Grawp
Posts: 45
Joined: Sat Mar 03, 2018 9:34 am

Re: Assembly 4 workbench

Post by Grawp »

ppemawm wrote: Wed Jul 15, 2020 7:09 pm Actually no.

Assembly4 is used in these examples to create all of the bodies in-context and their features in a single file as well as to assemble all of the bodies.

For repeated features I would use PartDesign patterns and Draft arrays for repeated bodies. Or, you can use Assembly4 to arbitrarily place or assemble multiple copies of the same body. Perhaps some of the confusion is whether we are mixing definitions of parts, bodies, and features.

I am not familiar with Lattice2 so probably do not fully understand what you are trying to do. I reviewed the Lattice2 tutorial link you provided and that creation of features can also be done with PartDesign without using Assembly4.

If you could attach a sample file of what you are modelling it would be most helpful.
In the tutorial you can see that LatticePattern is able to also create pockets in a target. Draft Array and PathArray can't AFAIK. They also can't have other reference placement in source body other than origin. Using pure PD to model same feature in many bodies and also projects is also not a way. Here is a very simple use case:

This is housing for dupont-like connectors
dupont_housing.jpg
dupont_housing.jpg (23.09 KiB) Viewed 3288 times
Here I have a mode of a holder for such housing
holder.png
holder.png (301.71 KiB) Viewed 3288 times
Yup is a pocket features galore in a ball.
Here it is used 4 times in an array in target body
TheThing.png
TheThing.png (159.55 KiB) Viewed 3288 times
Here is the real thing
TheRealThing.jpg
TheRealThing.jpg (821.5 KiB) Viewed 3288 times
I would very much like to have the "housing holder" maker in a separate file so I can use it it multiple projects. ASM4 natively supports having parts/bodies in other files right now, however I think it probably is not meant for my usecase.
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

Grawp wrote: Thu Jul 16, 2020 8:39 am I would very much like to have the "housing holder" maker in a separate file so I can use it it multiple projects. ASM4 natively supports having parts/bodies in other files right now, however I think it probably is not meant for my usecase.
Why not do both: use the Lattice WB to design your part, and an assembly WB to assemble it ?

ANY assembly WB is meant to assemble (position in space) parts that are designed with some other tools. But the assembled parts don't have to be finalised before being assembled, you can change their design as long as you don't alter the assembly constraints. In Asm4 the assembly constraints are LCS, which can't be altered topologically - they'll always be LCS even if misplaced - so you won't suffer (or suffer less) from FreeCAD's dreaded topological naming issue. That's all there is to it.
try the Assembly4 workbench for FreCAD — tutorials here and here
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: Assembly 4 workbench

Post by ppemawm »

Grawp wrote: Thu Jul 16, 2020 8:39 am Using pure PD to model same feature in many bodies and also projects is also not a way.
You can if you create the feature to be reused in a separate body and then use PartDesign (PD) > Boolean to either fuse (add) or cut (subtract). You can also clone the feature for multiple use, locate as desired, and add/subtract by the PD boolean tool to a body or multiple bodies. This is fully parametric since any change in the feature body will be reflected in the boolean.

You can also use Draft > Array to your heart's content, drop it in a separate body as a base feature, and add/subtract using the PD boolean tool.

The body feature can also be saved in a separate file and merged when needed but there is no link. AFAIK there is no way to add a linked body to another body using the PD boolean tool, but I rarely use links so not too familiar with how they function.
multi_features_from_clones.FCStd
(232.55 KiB) Downloaded 67 times
Capture.JPG
Capture.JPG (72.81 KiB) Viewed 3194 times

OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21769 (Git)
Build type: Release
Branch: master
Hash: 801bfe4ba5f0910e9b2885917c521ab7fd8e9020
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0

Locale: English/United States (en_US)
"It is a poor workman who blames his tools..." ;)
tonilupi
Posts: 16
Joined: Fri May 08, 2020 11:14 pm

Re: Assembly 4 workbench

Post by tonilupi »

UFODivebomb wrote: Thu May 14, 2020 2:30 am
adrianinsaval wrote: Thu May 14, 2020 1:11 am Well, actually the scale is a vector, its just hidden, right click in property view and check the view all option to see the vector. The scaling visually moves the LCS but internally it's placement is not modified so the rest of FreeCAD is not aware of the movement, as has been said, the current workaround would be to add the LCS after applying the scale.
Ahhh. Interesting! That did work to mirror on the YZ axis. Thanks!

I ended up getting the desired effect by:

1. creating a Part in the model
2. creating a link to the left keyboard side
3. setting the scale of this link to (-1, 1,1)
3. placing this link within the new Part
4. adding a LCS to the new part
5. attaching this part to the assembly
6. setting the scale of the attached part to (-1, -1, 1)

Not really sure why the second scale was required. But, uh, worked well enough.

https://www.instagram.com/p/CAJsPzYFVGh/
Are you working with a single or multiple files?
I'm working with multiple files and trying your sequence but don't work for me, can you show your tree?
User avatar
alonso_jamm
Posts: 77
Joined: Mon Nov 11, 2019 11:32 pm

Re: Assembly 4 workbench

Post by alonso_jamm »

Zolko wrote: Fri Jun 26, 2020 12:55 pm
uwestoehr wrote: Fri Jun 26, 2020 12:31 pm
ppemawm wrote: Thu Jun 25, 2020 11:16 pm Place one LCS at first location for first body or fastener. You can then use an Array from the Draft workbench as shown in this example:
as result the array is created outside the model. maybe this is a bug in Assembly 4?
no, it's because Draft doesn't put the resulting array into the Part container where the original object was. There used to be an Asm4_makeArray, that was a wrapper around Draft_makeArray and that did put the array back into the Part container, but it stopped working at some point, and I had to remove it. I will have a look to try to put it back.
I have checked and it seems that vocx already solved this problem. I tried the changes and was able to make arrays.
Grawp
Posts: 45
Joined: Sat Mar 03, 2018 9:34 am

Re: Assembly 4 workbench

Post by Grawp »

I'm finally getting the ASM4 and how to assemble, then continue with solid modeling, then again assemble and so on.
I need to fuse the assembled parts manually if they are supposed to be a single continuous solid. 🤦‍♂️
And the Make sub-link is just the right tool when one is outside of PartDesign (and its SubShape binder).

Right now I'm modelling a box/case.
Here I have a model of hinges:
Screenshot_20200725_204058.png
Screenshot_20200725_204058.png (66.86 KiB) Viewed 2762 times
Here I place them next to the upper part of the box... i.e. the Hinges0 Link.
Screenshot_20200725_203917.png
Screenshot_20200725_203917.png (75.25 KiB) Viewed 2762 times
And here is just the lower part fused to the rest of the box via Hinge0 SubLink.
Screenshot_20200725_204012.png
Screenshot_20200725_204012.png (70.25 KiB) Viewed 2762 times
I'm so happy right now.
iman
Posts: 2
Joined: Sat Jul 04, 2020 9:58 pm

Re: Assembly 4 workbench

Post by iman »

WayofWood wrote: Sat Jul 11, 2020 7:46 am Hi Zolko,

thanks for the reply. It might also be that I am using the Assembly 4 workbench the wrong way. Therefore let me first describe what I would like to achieve and then go step-by-step through the challenges with a simpler example.

This is a a simple Item Cross-Brace that I have put together from an Item profile and two connectors as an assembly. I would now like to place this assembly at several places in a bigger one:

XBrace.png

For this I thought the logical approach would be to define a LCS within the assembly of the Crossbrace so that I can attach this LCS to elements in the overall assembly.

Here are the steps for reproducing my problem:

1. Working with FreeCA 0.19 and a recent (1 week old?) version of A4:

Code: Select all

OS: Ubuntu 20.04 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.21718 (Git) AppImage
Build type: Release
Branch: master
Hash: 002e25b5617f2c79f65968f1f82f7267899965c3
Python version: 3.8.2
Qt version: 5.12.5
Coin version: 4.0.0
OCC version: 7.4.0
Locale: German/Germany (de_DE)
2. Creating a New Part, Body, Sketch, Padding it to a cube and adding an arbitrary LCS (see file cube)

3. Creating a New Model in a separate file, adding the cube part twice and attaching one cube to another (see file 2cubes)

4. Now I would like to add a LCS "LCS_in_Model" to the model that I could then use to place the subassembly of the two cubes (or my crossbrace in reality) into a bigger assembly. After adding the LCS, I edit it but I can't select a reference (neither a plane, vertice, edge, nor a LCS from one of the parts:

NoSelection.png

Would be great if you could let me know what I would have to do differently. Thanks a lot in advance!

Best
Oliver
This is exactly I want to do, It will be very nice and natural if we can just add new LCS on the Assembly it self just like we add LCS on part
Post Reply