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
alonso_jamm
Posts: 77
Joined: Mon Nov 11, 2019 11:32 pm

Re: Assembly 4 workbench

Post by alonso_jamm »

vocx wrote: Thu Nov 21, 2019 1:20 am
Yes, because the Draft Array tool currently is basically three tools in one (rectangular, polar, and circular), so I'm thinking about splitting them into separate tools.
I think splitting them would be a good idea since it would make everything more straight forward. Having three types of arrays with different settings for each type of array in the same place is kind of confusing. Thanks for mentioning that your are planning on making changes so I will keep an eye in the Draft workbench.

Also, I want to make a question about the PointArray function; do you have any plans on making so it can take App:Link objects like the Draft Array and Draft PathArray functions? I think path arrays and point arrays could be nice additions to Assembly4, but it seems that the PointArray function does not support App::Link objects.
vocx
Veteran
Posts: 5197
Joined: Thu Oct 18, 2018 9:18 pm

Re: Assembly 4 workbench

Post by vocx »

alonso_jamm wrote: Thu Nov 21, 2019 1:41 am ... do you have any plans on making so it can take App:Link objects like the Draft Array and Draft PathArray functions? ...
The Draft LinkArray and Draft PathLinkArray functions were added by realthunder when the LinkMerge happened. I'm not sure why he didn't add a Draft PointLinkArray command since it seemed like a natural extension. I could do it, but I've been doing some other things so I didn't think of it as a priority.
Always add the important information to your posts if you need help. Also see Tutorials and Video tutorials.
To support the documentation effort, and code development, your donation is appreciated: liberapay.com/FreeCAD.
User avatar
alonso_jamm
Posts: 77
Joined: Mon Nov 11, 2019 11:32 pm

Re: Assembly 4 workbench

Post by alonso_jamm »

vocx wrote: Thu Nov 21, 2019 1:53 am
[...] I could do it, but I've been doing some other things so I didn't think of it as a priority.
Now that I think about that, having a point array made out of links may not be that useful in Assembly4 since LCSs kind of do that job already.
vocx wrote: Thu Nov 21, 2019 1:30 am Each command having its own page is good to clearly document how it works.
I am planning on organizing the documentation in that way. I will look more into the Draft and TechDraw wikis so I can format the documentation for Assembly4 in a good way.
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

alonso_jamm wrote: Thu Nov 21, 2019 12:53 am Right now Assembly4 is only using the function makeArray from Draft, so I don't think the re-organization will be a big problem.
I slightly modified the Asm4_LinkArray you had made to integrate better with Assembly4. It can now make arrays of fasteners also, in which case the fasteners are linked, thus when modifying the original fastener all its links are modified too.

vocx wrote: Thu Nov 21, 2019 1:20 am Yes, because the Draft Array tool currently is basically three tools in one (rectangular, polar, and circular), so I'm thinking about splitting them into separate tools.
I agree that splitting makeArray in separate commands is a good idea. I must say that overall the properties are not easy to understand, some usability improvements are really welcome, because the fundamental LinkArray functionality is very useful, even mandatory with a good assembly.

But I have some questions:
  • what's a circular array ?
  • would it be possible for the polar array to use a datum axis as rotational reference ? (PartDesign::Line objects). This would allow to build such complex assemblies with screws, where the axes are not along X, Y or Z. This is where a polar array would be the most necessary.
Image Image
try the Assembly4 workbench for FreCAD — tutorials here and here
vocx
Veteran
Posts: 5197
Joined: Thu Oct 18, 2018 9:18 pm

Re: Assembly 4 workbench

Post by vocx »

Zolko wrote: Thu Nov 21, 2019 12:41 pm But I have some questions:
  • what's a circular array ?
  • would it be possible for the polar array to use a datum axis as rotational reference ? (PartDesign::Line objects). This would allow to build such complex assemblies with screws, where the axes are not along X, Y or Z. This is where a polar array would be the most necessary.
A circular array was developed about a month ago in the German forum. [Draft] circular array, pull request #2585.

The Draft._Array class defines an axis of rotation, so yes, it could use any arbitrary direction. But to be honest, to do those types of assemblies, I think I would create an initial array with the Z axis as axis of rotation, and then move the entire array to the desired position.
Always add the important information to your posts if you need help. Also see Tutorials and Video tutorials.
To support the documentation effort, and code development, your donation is appreciated: liberapay.com/FreeCAD.
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

Zolko wrote: Thu Nov 21, 2019 12:41 pm would it be possible for the polar array to use a datum axis as rotational reference ? (PartDesign::Line objects). This would allow to build such complex assemblies with screws, where the axes are not along X, Y or Z. This is where a polar array would be the most necessary.
vocx wrote: Thu Nov 21, 2019 4:47 pm The Draft._Array class defines an axis of rotation, so yes, it could use any arbitrary direction. But to be honest, to do those types of assemblies, I think I would create an initial array with the Z axis as axis of rotation, and then move the entire array to the desired position.
that wouldn't work because: you'd loose parametrisation (when changing the hole's radial distance the screws wouldn't follow) and you'd not know what is the clocking of the first element.

But selecting an object and an axis would allow to make regular polar arrays of elements. You could also set a translation distance (only along the same axis) which would make it a helical polar array (for helical stairways).
try the Assembly4 workbench for FreCAD — tutorials here and here
User avatar
alonso_jamm
Posts: 77
Joined: Mon Nov 11, 2019 11:32 pm

Re: Assembly 4 workbench

Post by alonso_jamm »

Zolko wrote: Thu Nov 21, 2019 12:41 pm I slightly modified the Asm4_LinkArray you had made to integrate better with Assembly4. It can now make arrays of fasteners also, in which case the fasteners are linked, thus when modifying the original fastener all its links are modified too.
That sounds amazing, thanks for improving Asm4_LinkArray!

Zolko wrote: Thu Nov 21, 2019 12:41 pm would it be possible for the polar array to use a datum axis as rotational reference ? (PartDesign::Line objects). This would allow to build such complex assemblies with screws, where the axes are not along X, Y or Z. This is where a polar array would be the most necessary.
I did a small test and found out that it is kind of complex to get a polar array around an arbitrary datum axis. I also think that being able to use a datum axis as a center to a polar array would be useful.

A way to achieve a similar functionality with the current Assembly4 is to make a sub-assembly that only includes the polar array around a central LCS. Then we could attach that sub-assembly (the polar array) around any point. This is similar to what vocx said.
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly 4 workbench

Post by realthunder »

joe.belladonna wrote: Sat Nov 16, 2019 2:29 pm When I close and then reopen "AssemblyOfBoxes_WithCopy", most parts in my linked parts are hidden, as you can see in a picture. Here you see Left_Body is hidden, but when the file was saved it was visible.
picture.png
Every time I reopen this document, I have to manually unhide all parts.
This is a bug, and I have fixed it already. The PR will be ready soon.
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
vocx
Veteran
Posts: 5197
Joined: Thu Oct 18, 2018 9:18 pm

Re: Assembly 4 workbench

Post by vocx »

Zolko wrote: Thu Nov 21, 2019 8:02 pm ...

that wouldn't work because: you'd loose parametrisation ...
I'm not sure what you mean that it wouldn't work. It seems to work as I describe it. Create an object, create a Draft Array, or Draft LinkArray, use "polar" type, and use Z as the axis of rotation, and then move the entire array in space. It's parametric, and the array can be moved in any position in space.
Draft_Array_orientations.png
Draft_Array_orientations.png (94.68 KiB) Viewed 2212 times
Always add the important information to your posts if you need help. Also see Tutorials and Video tutorials.
To support the documentation effort, and code development, your donation is appreciated: liberapay.com/FreeCAD.
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

vocx wrote: Fri Nov 22, 2019 6:38 am I'm not sure what you mean that it wouldn't work.
see the attached example: when you modify the variables Clocking and Radius, the screws I placed (manually) follow the holes (a manual update of the assembly might be necessary). Now, try to do the same with your method by making an array on the upper holes with the hexagonal head M6x20 screw. If the screws don't follow the holes, the assembly is not parametric.
test_LinkArray.png
test_LinkArray.png (339.17 KiB) Viewed 2186 times
Attachments
test_LinkArray.FCStd
(156.15 KiB) Downloaded 104 times
try the Assembly4 workbench for FreCAD — tutorials here and here
Post Reply