Assembly3 Tutorials

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
ceremcem
Posts: 226
Joined: Sun Jan 07, 2018 11:10 am

Assembly3 Tutorials

Post by ceremcem »

I've been preparing a cheatsheet-like mini tutorials/HOWTO's primarily for myself and my future colleagues: ceremcem/freecad-notes

Now I think I can assist some people while getting up and running with Assembly3 WB. My aim by this collaboration is both completing the HOWTO more efficiently and learning Asm3 much deeper by teaching.

Preferred way of discussions and requests is the "issues" section of the repo. Rest of this thread may serve as a chatroom.

Tutorials will be text and image based as much as possible. If they are not enough, short videos will be prepared. Feel free to make requests and/or contribute to the repo.
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: Assembly3 Tutorials

Post by Kunda1 »

Thank you for providing your time and effort to do this!
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
freecad-heini-1
Veteran
Posts: 7790
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Assembly3 Tutorials

Post by freecad-heini-1 »

ceremcem wrote: Wed Aug 14, 2019 10:53 pm I've been preparing a cheatsheet-like mini tutorials/HOWTO's primarily for myself and my future colleagues: ceremcem/freecad-notes

Now I think I can assist some people while getting up and running with Assembly3 WB. My aim by this collaboration is both completing the HOWTO more efficiently and learning Asm3 much deeper by teaching.

Preferred way of discussions and requests is the "issues" section of the repo. Rest of this thread may serve as a chatroom.

Tutorials will be text and image based as much as possible. If they are not enough, short videos will be prepared. Feel free to make requests and/or contribute to the repo.
Hello, Ceremcem,
This morning I started to do the first exercises for the Assembly 3 Workbench after the breakfast break. I use the following Appimage:

Code: Select all

OS: Ubuntu 18.04.3 LTS (XFCE/xubuntu)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.16830 +1496 (Git) AppImage
Build type: release
Branch: LinkStage3
Hash: 1b29767b545440b7ab93f1a5f2b742d622f1b547
Python version: 3.7.3
Qt version: 5.9.7
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: German/Germany (en_DE)
Basis are your tutorials or exercise instructions:
https://github.com/ceremcem/freecad-notes
https://www.dropbox.com/s/k40drc9rlkflr ... n.pdf?dl=0
https://github.com/realthunder/FreeCAD_ ... ry-element

Would you be so kind as to upload your Freecad exercise parts somewhere, or is they already there somewhere and I just missed them?

A short question about inserting parts into an assembly.
So far, I've handled this as follows.
I create the parts as single parts and save them in a directory.
In the same directory I create an assembly, save it and then use the command Merge project. The parts end up in the model tree, from there I move them into the parts. Is that right, or which way would be the right one?

Many thanks and many greetings
Wilfried

Translated with www.DeepL.com/Translator
User avatar
ceremcem
Posts: 226
Joined: Sun Jan 07, 2018 11:10 am

Re: Assembly3 Tutorials

Post by ceremcem »

freecad-heini-1 wrote: Fri Aug 30, 2019 9:35 am
Would you be so kind as to upload your Freecad exercise parts somewhere, or is they already there somewhere and I just missed them?
Currently there is no simple "Hello world" tutorials available. I created a "Building a Car" example just now: https://youtu.be/lPZi3tVbBew
A short question about inserting parts into an assembly.
So far, I've handled this as follows.
I create the parts as single parts and save them in a directory.
Correct. However, you need to encapsulate your parts into their own "Assembly Container"s. Then you can drag and drop your parts into your assembly which effectively creates links to your sub-parts.
freecad-heini-1
Veteran
Posts: 7790
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Assembly3 Tutorials

Post by freecad-heini-1 »

ceremcem wrote: Fri Aug 30, 2019 10:46 am Correct. However, you need to encapsulate your parts into their own "Assembly Container"s. Then you can drag and drop your parts into your assembly which effectively creates links to your sub-parts.
Hi ceremcem,
please describe how this works.

I'm still at exercise 1, have assembled 2 different sized cubes from part, using PlaneAlignment.
The same thing I repeated with PartDesign blocks, but I used datum planes for assembling. After saving, exiting and recalling all constraints have disappeared. Probably because the assembly container you mentioned did not exist.
I think these are initial difficulties, but once they are overcome, hopefully things will go better.
Best regards
Wilfried

Supplement:
Please do not reply. I understand.
In your video I can see all this:
https://youtu.be/lPZi3tVbBew
Also how to create a "parametric copy" of a part, a "make link". Also the thing with the assembly container is shown. Very good, thank you very much. Then I will begin the next exercises

Many greetings
Wilfried
freecad-heini-1
Veteran
Posts: 7790
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Assembly3 Tutorials

Post by freecad-heini-1 »

ceremcem wrote: Ping
Hi Ceremcem,
unfortunately I still have an understanding problem concerning the fully parametric changeability between single part and assembly.

Suppose I created part 1, a cuboid, and part 2, a cylinder in the PartDesign Workbench.
I save both files in one directory.

Now I create a new ASM3 assembly and integrate the cuboid and save it in the same directory.
I do the same procedure with the cylinder.

I leave all documents open and now create new ASM3 files, with assembly and save it. For the cuboid and the cylinder.

Now comes the first question.
I can merge both parts, or drag and drop the respective bodies into the parts of the assembly.
What's the right way?

Next, I save. I get a message if external dependencies should be saved. Sorry because of different words, English to German.

Question 2, if I now call up the cuboid as PartDesign part, change the dimensions of a sketch and change a height, how does the assembly find out about the change, or vice versa?
How exactly does this work with bidirectional associativity?

Which switches are there to synchronize / update everything with each other?

What do you have to avoid in any case - and what do you have to pay special attention to?

Sorry - but I experiment with exactly these things, sometimes it succeeds and then unfortunately again no more.

I uninstalled Part-o-magic. With that it seems to work better.

What is the exact procedure when adding a feature, for example a chamfer or a radius?
Or you delete a hole, a groove, or a pocket in the part. How does the assembly know?

I would like to hear from you and thank you for your efforts.

Many thanks and many greetings
Wilfried
User avatar
ceremcem
Posts: 226
Joined: Sun Jan 07, 2018 11:10 am

Re: Assembly3 Tutorials

Post by ceremcem »

I can merge both parts, or drag and drop the respective bodies into the parts of the assembly.
What's the right way?
You shouldn't merge the projects (File -> Merge project), it's out of our context and I'd never used it. Correct way is dragging and dropping respective Assembly Containers into your main assembly.
Next, I save. I get a message if external dependencies should be saved.
Answer as "yes" :) This means that you have some more changes to be saved which relates to your current assembly.

Question 2, if I now call up the cuboid as PartDesign part, change the dimensions of a sketch and change a height, how does the assembly find out about the change, or vice versa?
How exactly does this work with bidirectional associativity?
I'm unable to understand the problem here. Please explain it with a few screenshots.
Which switches are there to synchronize / update everything with each other?
update.png
update.png (71.43 KiB) Viewed 3973 times
You need to turn on the button 3 and 4. Those are sufficient to recompute the constraints on change. If you want to calculate them manually, you can use button 2 or button 1 (button 2 is a relatively new feature and is doing the same job faster: https://github.com/realthunder/FreeCAD_ ... -422368807).
What do you have to avoid in any case - and what do you have to pay special attention to?
We'll eventually see them in real-life examples. One thing I could remember is that you shouldn't use App::Part containers (Part WB -> yellow block)
app-part.png
app-part.png (6.04 KiB) Viewed 3973 times

Use "Assembly Container"s instead.

What is the exact procedure when adding a feature, for example a chamfer or a radius?
Or you delete a hole, a groove, or a pocket in the part. How does the assembly know?
Just apply any features as usual. One thing you'll eventually notice is that despite the improvements on the topological naming approach, it's always better to create constraints between "earlier stages of features". For example, if you have a part created with PartDesign WB that is a cube with hole, you should better create a constraint by using "the cube" before the "hole feature" stage.

I think it's better to understand those with trial and error. Create something that introduces an unexpected result to you, then we can better discuss.
User avatar
ceremcem
Posts: 226
Joined: Sun Jan 07, 2018 11:10 am

Re: Assembly3 Tutorials

Post by ceremcem »

Kunda1 wrote: Thu Aug 15, 2019 2:44 pm Thank you for providing your time and effort to do this!
It's my pleasure, btw.
freecad-heini-1
Veteran
Posts: 7790
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Assembly3 Tutorials

Post by freecad-heini-1 »

ceremcem wrote: A short question
How can two cube surfaces be counter-aligned or aligned?
User avatar
ceremcem
Posts: 226
Joined: Sun Jan 07, 2018 11:10 am

Re: Assembly3 Tutorials

Post by ceremcem »

freecad-heini-1 wrote: Mon Sep 02, 2019 2:05 pm
ceremcem wrote: A short question
How can two cube surfaces be counter-aligned or aligned?
The document is very outdated, but still helpful on this topic: https://www.dropbox.com/s/k40drc9rlkflr ... n.pdf?dl=0

You can select both surfaces and add a "PlaneAlignment Constraint".
Post Reply