Assembly 4 workbench

Discussion about the development of the Assembly workbench.
User avatar
Zolko
Posts: 843
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Postby Zolko » Fri Jan 17, 2020 4:17 pm

catman wrote:
Fri Jan 17, 2020 4:07 pm
Do you have a specific use case in mind where the "Relase" toggle would be useful?
yes, this one:

A very powerful usecase of this feature would be in architecture. Suppose you have constructed a house and want to put in furniture from a libray. You only would need one LCS per room in your model.
you put your furniture in the LCS of the room, release the placement of the furniture, and then move the furniture around using the Transform tool, only using X and Y translations and Z rotation.
try the Assembly4 workbench for FreCAD v0.19
install with Tools > Addon Manager > Assembly4 — tutorials here and here
OficineRobotica
Posts: 140
Joined: Thu Feb 21, 2019 8:17 am

Re: Assembly 4 workbench

Postby OficineRobotica » Fri Jan 17, 2020 5:04 pm

Zolko wrote:
Fri Jan 17, 2020 11:50 am

What about a button called "Release" that would insert the LCS into the assembly but without any mapping or attachment, and still retain the latest position where the LCS was ?
I would call it "Release from geometry" only because it's more self explanatory. Because english is not my first language and explaining these concepts can become tricky for me: Here we go:
>design in one file
>create a part1 and then a body from A4 workbench(get's placed in the Parts folder of the tree)
>model geometry of that body
>atach a second LCS to some geometry of the body using the "release from geometry" function
>we still have't imported nothing into the Model

If the second LCS is released, with no mapping it becomes only a point in space. I need the mapping relative to LCS0 of my first part because it is the point from where i build up further movement in my assembly/animation. I need the position and orientation because LCS2 is inserted with the intent of driving position and orientation of another component still to be designed. This will also prevent a chain reaction when modifying geometry in the first body. It's basically a shortcut, instead of inserting manually a position and orientation relative to LCS0 of part1.

Productivity wise it's faster to match geometry the way A2+ does it , but that results in static assemblies and instead we all love animated/simulated ones. I personally think that a great part of A4 success is due to the animation module. Implementing this pseudo way of mapping to geometry and then releasing the geometry would shorten the gap in productivity.
I'm thinking about the same function for links:
Does that mean that would be released only the positioning or also the ability to save modifications to the external files?


a) a new workbench icon for a "Release" command. A selected LCS would be "released" of its current attachment, e.g. it would be set to the Model origin + AttachmentOffset
That would make things even faster.

P.S. - I'm giving a shot at modelling the F16 landing gear.
Last edited by OficineRobotica on Fri Jan 17, 2020 6:23 pm, edited 1 time in total.
OficineRobotica
Posts: 140
Joined: Thu Feb 21, 2019 8:17 am

Re: Assembly 4 workbench

Postby OficineRobotica » Fri Jan 17, 2020 5:24 pm

ppemawm wrote:
Thu Jan 16, 2020 5:53 pm

Taking a cue from @OficineRobotica ingenious adjustable clamp https://forum.freecadweb.org/viewtopic. ... 90#p356671, this is a similar although much simpler example of using Assembly4 for top-down design and animation. The drawings for this adjustable clamp engineered by J. Galba (2012) can be found at http://www.inventorwizard.nl/blueprints/index.html.

An assembly master sketch is used to define design intent, controlling dimensions, and constraints among the various parts. All parts were created in the same file at their proper location for an arbitrary clamp opening specified by the Assembly4> Variables.
Oh thank you for your kind words but I'm nowhere near your engineering expertise.
Talking about the clamp mechanism I also had difficulties with topo naming although I did my best to constrain the geometry. Take a look at the LCS on how it jumps around lol. It was enough to eliminate the vertical line between the 2 clamps and use a symmetry constraint instead. That alone prevented the topo naming problem. Go figure.
topoNaming.gif
topoNaming.gif (402.27 KiB) Viewed 679 times



What I love about your model is the fact that you simulate the rotation/travel distance for the clamp axle ...I would love to integrate that into the robotic clamp. Could you please give a step by step explanation on how you implemented that?

It looks to me that A4 is becoming a gold mine as a showcase of freecad capabilities. We could flood the call for screenshots thread with beautiful assemblies . :lol:
catman
Posts: 168
Joined: Fri Jan 11, 2019 10:42 pm

Re: Assembly 4 workbench

Postby catman » Fri Jan 17, 2020 6:54 pm

Zolko wrote:
Fri Jan 17, 2020 4:17 pm
A very powerful usecase of this feature would be in architecture. Suppose you have constructed a house and want to put in furniture from a libray. You only would need one LCS per room in your model.
you put your furniture in the LCS of the room, release the placement of the furniture, and then move the furniture around using the Transform tool, only using X and Y translations and Z rotation.
Well I was wondering how you still get to the right room/floor by attaching to the rooms LCS. Are you thinking of this as a two step approach as follows?
- Link a funiture item and attach to a room LCS
- Release the link with "Release button". Then the item must stay where it is.
- Now use the transform tool to move on XY and about Z.

This would work if the Transform tool takes whatever values are in the Placement property and adds to them, which I guess it would.
But there is not way to recover the found position when pressing "Release" again, it there? I would expect that Placement is overwritten with the LCS but the added values are lost.

Or are you thinking of subtracting on "Re-Release" the LCS from whatever is in Placement? That would allow a Toggle between LCS fix and Transform tool.
User avatar
Zolko
Posts: 843
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Postby Zolko » Fri Jan 17, 2020 8:02 pm

catman wrote:
Fri Jan 17, 2020 6:54 pm
Are you thinking of this as a two step approach as follows?
- Link a funiture item and attach to a room LCS
- Release the link with "Release button". Then the item must stay where it is.
- Now use the transform tool to move on XY and about Z.
yes
try the Assembly4 workbench for FreCAD v0.19
install with Tools > Addon Manager > Assembly4 — tutorials here and here
catman
Posts: 168
Joined: Fri Jan 11, 2019 10:42 pm

Re: Assembly 4 workbench

Postby catman » Sat Jan 18, 2020 10:19 am

Zolko wrote:
Fri Jan 17, 2020 8:02 pm
catman wrote:
Fri Jan 17, 2020 6:54 pm
Are you thinking of this as a two step approach as follows?
- Link a funiture item and attach to a room LCS
- Release the link with "Release button". Then the item must stay where it is.
- Now use the transform tool to move on XY and about Z.
yes
Cool. 8-)
User avatar
ppemawm
Posts: 645
Joined: Fri May 17, 2013 3:54 pm
Location: Manhattan New York

Re: Assembly 4 workbench

Postby ppemawm » Sat Jan 18, 2020 5:02 pm

OficineRobotica wrote:
Fri Jan 17, 2020 5:24 pm
you simulate the rotation/travel distance for the clamp axle ... Could you please give a step by step explanation on how you implemented that?
The idea is to create an LCS in Model that you can rotate and then attach the Part LCS to it. This is only one way to do this but may not be the best, still experimenting:

1. Using Assembly4 > Add variable named "distance" with a minimum default value. When creating the master sketch make sure you have an edge that defines a direction and length along the threaded rod as shown in Picture1 of my earlier post. Use Expressions to constrain this edge length with Variables.distance.
2. After creating the threaded rod Part, create an LCS attached to the end of the threaded rod with concentric mode. This will align the LCS Z-axis with the rod centerline. Using the LCS > Attachment Offset, offset it in the Z-direction the proper amount to locate it at the junction between the rod and lever.
3. Do the same for the lever.
4. In Model, create an LCS and attach it with concentric mode to align it with the rod centerline. In this case, I used a circular edge where the rod threads into the tee. Offset it to its proper location in the Z-direction along the rod centerline.
5. Add a variable named "threaded_distance" which defines the change in threaded length from a reference point on the rod to the nut as shown in video_clamp4.gif in my earlier post. Add a variable "rod_angle" that defines the amount of rotation for a change in "threaded_distance". In this example I arbitrarily used one rotation for 10 mm (thread pitch) as shown in the same video.
5. Expand the Attachment Offset in the property panel of the LCS created in 4. and add Variables.rod_angle to the Angle expression. The Axis property should be (0,0,1), the Z-axis of the LCS.
6. Link the Part LCS's to the Model LCS using Assembly4 > Insert a link... to assemble these parts.
7. Check by changing the Model > Variables > distance or use the Animator.

See also https://forum.freecadweb.org/viewtopic. ... 80#p354139 for the basics.

I stripped out all but the rod, lever, and tee from the assembly and have attached it for your educational purposes only. One caveat: note that I have attached LCS's to part edges for convenience (being lazy) but would usually recommend attachment only to the master sketch when possible.
Clamp_Rod-Lever.FCStd
(220.31 KiB) Downloaded 14 times
"It is a poor workman who blames his tools..." ;)
User avatar
Zolko
Posts: 843
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Postby Zolko » Sun Jan 19, 2020 1:19 pm

catman wrote:
Sat Jan 18, 2020 10:19 am
Zolko wrote:
Fri Jan 17, 2020 8:02 pm
catman wrote:
Fri Jan 17, 2020 6:54 pm
Are you thinking of this as a two step approach as follows?
- Link a funiture item and attach to a room LCS
- Release the link with "Release button". Then the item must stay where it is.
- Now use the transform tool to move on XY and about Z.
yes
Cool.
Done.

v0.7.8 is out, it has this Release Attachment command, ans also an Open Document command, where you can right-click on a link in the tree and it will open the corresponding document (in a new window): this is a life-saver.
try the Assembly4 workbench for FreCAD v0.19
install with Tools > Addon Manager > Assembly4 — tutorials here and here
OficineRobotica
Posts: 140
Joined: Thu Feb 21, 2019 8:17 am

Re: Assembly 4 workbench

Postby OficineRobotica » Sun Jan 19, 2020 5:00 pm

Zolko wrote:
Sun Jan 19, 2020 1:19 pm
Done.

v0.7.8 is out, it has this Release Attachment command, ans also an Open Document command, where you can right-click on a link in the tree and it will open the corresponding document (in a new window): this is a life-saver.
Thank you Zolko. And thank you for the tweaks on the hexaAssembly in the user showcase forum. Wow ....the possibilities are endless.

This got me thinking and believe me ....i'vd put allot of thought into this. It was heavily inspired by the Kdenlive animation panel because there are allot of analogies between the 2 workflows. They have video strips that corresponds to our parts and a indefinite number of effects to be applied to those video strips, the same way we have an indefinite number of variables to be aplied to our parts. These have to be animated together , in kdenlive over time, in freecad over steps.

This system could also permit to train industrial robots . Model the master sketch with main dofs >attach LCS>insert keyframes for desired positions>export the animation in gCode. So easy on paper :lol:
animateAssembly.png
animateAssembly.png (413.5 KiB) Viewed 444 times
What do you think? I really hope it is not essentially flawed because I put allot of hopes in this mokup.
One of the main developers at Kdenlive is called j-b-m and we could easelly contact him on telegram for hints of where the qt code for the animation panel is located so one can draw inspiration. Another advantage of using the same toolkit.

This is a screenshot of kdenlive's animation panel.
kdenliveAnimation.jpeg
kdenliveAnimation.jpeg (262 KiB) Viewed 444 times


Thumbs up and again thank you for the new release.
Attachments
animationMockup.svg
(165.71 KiB) Downloaded 11 times
User avatar
Zolko
Posts: 843
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Postby Zolko » Sun Jan 19, 2020 10:53 pm

OficineRobotica wrote:
Sun Jan 19, 2020 5:00 pm
What do you think?
Looks great, yes. How did you do it ? QtDesigner ?
try the Assembly4 workbench for FreCAD v0.19
install with Tools > Addon Manager > Assembly4 — tutorials here and here