Assembly 4 workbench

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
emills2
Posts: 875
Joined: Tue Apr 28, 2015 11:23 pm

Re: Assembly 4 workbench

Post by emills2 »

i found a partial workaround that was somewhat hidden.

i can edit the variable and specify "in" after the numerical value. i get a warning that units will be dropped, which leads me to believe this plan won't work.

when i hit ok, the units disappear, but the inch value was properly converted to mm. this is at least technically correct, but doesn't look like my input.

if i click another object, and then go back to the variables object, i now see the mm value followed by my inch value in parentheses. this looks good as i can read my original intended input in the right units, and the sketch displays only the correct inch value.

it's a bit of a roller coaster though.
neunR
Posts: 4
Joined: Tue Feb 18, 2020 11:34 am

Re: Assembly 4 workbench

Post by neunR »

Hi,

first of all, thanks for creating this awesome workbench.

I am trying to animate a folding mechanism that requires a couple of rotating and sliding motions executed after one another but am struggling to build this with assembly4. Any help or hints would be appreciated.

I have created a simplified model to illustrate the motion.

Starting position:
0.png
0.png (14.75 KiB) Viewed 2218 times

Position after first rotation by 30° counter clockwise:
1.png
1.png (22.84 KiB) Viewed 2218 times

Position after sliding to the right in the elongated hole:
2.png
2.png (25.23 KiB) Viewed 2218 times

Final position after another rotate by 210° clockwise:
3.png
3.png (7.96 KiB) Viewed 2218 times


Freecad file of the assembly:
btest.FCStd
(58.75 KiB) Downloaded 80 times
m.cavallerin
Posts: 115
Joined: Wed May 30, 2018 6:59 pm

Re: Assembly 4 workbench

Post by m.cavallerin »

Hi,

maybe I have not fully understand how asm4 works, but is there a way to link two different LCS from a part to two different LCS of the assembly where it is inserted?
Looking at the enclosed picutre, you may see two highlighted axis (light green) I would like that the two holes from the rod are concentric to the pins.

Thx.

Michele
Screenshot from 2020-02-18 22-00-28.png
Screenshot from 2020-02-18 22-00-28.png (22.37 KiB) Viewed 2191 times
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 »

neunR wrote: Tue Feb 18, 2020 11:54 am I am trying to animate a folding mechanism that requires a couple of rotating and sliding motions executed after one another but am struggling to build this with assembly4. Any help or hints would be appreciated.
This can be done by manipulating the Attachment Offset of the arm's LCS with variables and conditional statements using Expressions as shown in the LCS_hole001 Property View below:

2_motion_lever2.gif
2_motion_lever2.gif (413.34 KiB) Viewed 2188 times
.

Two additional variables were defined: delta2 which is the length of the slot; and, angle_deg which is related to the rotational angle of the arm about the LCS Z-axis. Conditional statements were then used to move the arm in the X-direction of the LCS when angle_deg > 30 and to reverse the direction of rotation of the arm when angle_deg > 31. The X position is dependent upon angle_deg in a step wise manner defined by the conditional statement.

Model > Animate Assembly varies angle_deg from 0 to 151 to simulate the required motion.

Note that I removed the screws and reattached the arm LCS to the base LCS_hole2 because the screws and LCS's were swapping positions when attempting to animate them for some reason which I did not research. The modified file is attached.
btest2.FCStd
(46.8 KiB) Downloaded 80 times

OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.19510 (Git)
Build type: Release
Branch: master
Hash: c3eb6d9001c4d60ff7f7cae89f50bd3c965a9940
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..." ;)
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

neunR wrote: Tue Feb 18, 2020 11:54 am I am trying to animate a folding mechanism that requires a couple of rotating and sliding motions executed after one another but am struggling to build this with assembly4. Any help or hints would be appreciated.
hum, a tricky one. I think you'll need tests in the EpressionEngine, they go like this (https://www.freecadweb.org/wiki/Expressions) :

Code: Select all

invert == True ? 180° : 0°
condition ? resultTrue : resultFalse

At first thought I'd try to decompose the movement in 3 regions. Let's say that you have a variable called time which sweeps the entire movement from 0 to 100, thus this variable will have 3 domains: 0-30 for the opening rotation, 30-60 for the translation, and 60-100 for the remaining rotation. You'll have to use and abuse the Variables of the Asm4 Model.

Let's try this for the angular position of the lever. We'll need intermediate variables t1 and t2, angle represents the AttachmentOffset angle of the lever w.r.t. support. I'd do this with 3 variables, in addition to the variable time:

Code: Select all

t1:
time < 30 ? k1*time : 30°

t2:
time > 60 ? k2*time : 30°

angle:
time < 50 ? t1 : t2

When time is less than 30, then angle will be t1, thus k1*time, when time is between 30 and 60 then angle=30°, when time > 60 then angle is t2 thus k2*time. With k1 and k2 well chosen to make the correct angle when the variable time travels through its entire range.

What do you think, can this work ? Unfortunately I don't have the time to test, but I'd be happy to hear back from your experiments.
try the Assembly4 workbench for FreCAD — tutorials here and here
neunR
Posts: 4
Joined: Tue Feb 18, 2020 11:34 am

Re: Assembly 4 workbench

Post by neunR »

Thanks for the quick responses ppemawm and Zolko!

I was not aware I could use expressions that way, but this is what i was looking for. This opens up a whole new layer of possibilities. :)
dxp.dev
Posts: 280
Joined: Tue Dec 11, 2018 12:57 pm

Re: Assembly 4 workbench

Post by dxp.dev »

Hi, I just finished the second tutorial, and I have a very slow animation. Is it a limitation of my machine or is there a way to accelerate the animation ? (sleeps is already on 0)

Processor : 2,2 GHz Intel Core i7
RAM : 16 Go 1600 MHz DDR3
Graphic card : Intel Iris Pro 1536 Mo

OS: macOS Mojave (10.14)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.19609 (Git)
Build type: Release
Branch: master
Hash: a2eecf30596fdb9d9c16e18574279e67023c6c80
Python version: 3.8.1
Qt version: 5.12.5
Coin version: 4.0.0
OCC version: 7.4.0
Locale: C/Default (C)
Find your user.cfg and system.cfg files : Macro_findConfigFiles

Imperial system makes no sense, go metric ! ! !
racemaniac
Posts: 52
Joined: Sat Nov 30, 2019 7:45 am

Re: Assembly 4 workbench

Post by racemaniac »

I'm having a lot of fun with Assembly 4, something i'm currently wondering when using it: I've now assembled some items, and need to make make holes in models for the assembled parts to fit in. I'm not quite finding a good way of doing it.
For example, i've got an axle positioned via the LCS system, and i want to make something new that goes in the assembly, and has a hole in the right place. Do i make a new model where i kind of recreate part of the assembly just to get the hole at the right place, or is there some better way to do this?
I'm not so familiar with CAD programs, so not sure how the proper flow is to do something like this :).
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

racemaniac wrote: Wed Feb 19, 2020 8:36 pm I'm having a lot of fun with Assembly 4, something i'm currently wondering when using it: I've now assembled some items, and need to make make holes in models for the assembled parts to fit in. I'm not quite finding a good way of doing it.
For example, i've got an axle positioned via the LCS system, and i want to make something new that goes in the assembly, and has a hole in the right place. Do i make a new model where i kind of recreate part of the assembly just to get the hole at the right place, or is there some better way to do this?
I'm not so familiar with CAD programs, so not sure how the proper flow is to do something like this :).
master sketch. There are many posts on that subject, basically what you do is to create a "skeleton" of your assembly, this skeleton having all the relevant informations as to how parts fit together. Place Datum objects on these functional positions (points, axes, planes, coordinate systems). To be fully Asm4 compatible make that skeleton as a Part, and place all your objects (datums, sketches...) in the part.

Then, import (link) that skeleton part into the assembly and into the part, import (per Assembly4 import) the datum objects that you need, and then use these datum objects to make your parts and assemblies. If everything went according to plan, the parts and assembly all follow the same master and should fit together.

I think we need a helper document on that.
try the Assembly4 workbench for FreCAD — tutorials here and here
User avatar
dubstar-04
Posts: 698
Joined: Mon Mar 04, 2013 8:41 pm
Location: Chester, UK
Contact:

Re: Assembly 4 workbench

Post by dubstar-04 »

I've been trying to learn ASM4 to make some more tutorial videos. I recreated an old 3D Printer assembly in ASM4.

I'm really impressed with ASM4, at first I didn't like the workflow compared to traditional assembly methods but it is really simple and flexible.

Asm4Ani.gif
Asm4Ani.gif (258.42 KiB) Viewed 2013 times

Well done Zolko, really impressive work.

Thanks,

Dan
Post Reply