Assembly3 preview

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Post by realthunder »

FreeCutter wrote: Fri May 14, 2021 7:32 pm Just a little issue which confuses me: why is the same icon used for different constraints?
Oops. Forgot to create an icon for them. The one you saw is the default constraint icon. I guess they are not very popular constraints, so nobody really notice that for so long...
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
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Post by realthunder »

HoWil wrote: Wed May 19, 2021 2:07 pm I noticed the above mentioned functionality in your branch but could not figure out how to use it when external references are broken. Is there any tutorial on that? Could not find anything related.
You can access 'Fix element' and 'Detach' actions in the tree view context menu. Just right click the element item in the tree.
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
skopjanecot
Posts: 17
Joined: Wed Jan 20, 2021 6:58 pm

Re: Assembly3 preview

Post by skopjanecot »

realthunder wrote: Fri May 07, 2021 3:44 am
skopjanecot wrote: Thu May 06, 2021 1:05 pm My FreeCAD LinkBranch crashes when I try to open the Mesh Design WB.
Someone else has reported same problem. Can you please try download my MacOS Conda release and see if it will crash too?
Unfortunatelly it seems like Big Sur cannot open the Conda release (sorry for the late update on this).
Cyclonit
Posts: 57
Joined: Sat Sep 26, 2020 11:19 am
Location: Germany

Re: Assembly3 preview

Post by Cyclonit »

Hi,

i have create a model with a spreadsheet containing all important variables. Next I want to use different configurations of this model in an assembly from a different document. I know of this thread https://forum.freecadweb.org/viewtopic.php?f=17&t=42183, but struggle with implementing it. For now the only dynamic property I need is the length of my model. Is this at all possible?
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Post by realthunder »

Cyclonit wrote: Wed Jun 02, 2021 8:56 am Hi,

i have create a model with a spreadsheet containing all important variables. Next I want to use different configurations of this model in an assembly from a different document. I know of this thread https://forum.freecadweb.org/viewtopic.php?f=17&t=42183, but struggle with implementing it. For now the only dynamic property I need is the length of my model. Is this at all possible?
Yes, it is possible. Expression has built-in support for referencing external object with syntax DocumentName#ObjectName.ProertyName, or if you want to reference by label (i.e. the user assigned names), then use the (kind of) strange double quote syntax, <<Document Label>>#<<Object Label>>.PropertyName. So you can use it anywhere to direct reference an external spreadsheet cell.

However, for easy management, you may want to create a normal Link to the external spreadsheet in your modeling document first. And then refer to the cell through this link instead, with syntax ObjectName.PropertyName. The 'ObjectName' will be the link's object name. This way you can easily see which external spreadsheets are used, and can later on change the link to point to another one without having to modify all affected expressions.
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
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly3 preview

Post by Zolko »

realthunder wrote: Sat Jun 05, 2021 4:11 am ping
I'm testing your -asm3 build, and here are some of my findings:

  • When I load an existing model, the -asm3 branch asks me to migrate. I can imagine that it's for the toponaming stuff, but we're slowly coming to some incompatibilities between yours and the main branch.
  • you seem to have dropped FreeCAD's original copyright claims: I have no opinion about that, just mentioning
  • the load-time is much longer than with stock FreeCAD (seems stuck on "loading freecad.pip")
  • with the same conditions and model, your branch has somewhat better performance (20 -vs- 30 fps). I have an Nvidia card that I run with the Nvidia Prime offload:

    Code: Select all

    __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia ./FreeCAD-asm3_20210615.AppImage
    
  • I LOVE the small icons in the tree to show the state of objects, it's much better than the tiny overlays.
  • I LOVE that at start-up, the combo-view remembers my view setting (hide the tree panel because I have another tree panel already)
  • when I create a sketch and then cancel the attachment, I get an error:

    Code: Select all

    15:40:03  TempoVis.restore: failed to restore detail ('SDPickability', 'Unnamed', 'Sketch_Part_3'): 'NoneType' object has no attribute 'ViewObject'
    
  • concerning the topological naming, I tried with a sketch and a datum LCS attached to it. I created a square and attached the LCS to a corner and aligned on 2 edges. When I then set one of the other edges to "construction" I can see that the names of the edges has changed, but the attachment of the LCS has been adapted accordingly and thus doesn't fail. What I conclude is that the topological naming has changed BUT that FreeCAD follows that change and adapts the existing references to this change
  • when I delete a line completely (not only setting it to construction) and add other lines to the sketch, then the same happens: the names of the edges change, but the references from the LCS are adapted.

Concerning the topological naming, I'll post on the relevant thread


OS: Debian GNU/Linux 10 (buster) (KDE//usr/share/xsessions/plasma)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 2021.615.24301 +3584 (Git) AppImage
Build type: Release
Branch: LinkStage3
Hash: d1e4d1c5abdedda669e54d1a41b5c08077f7e561
Python version: 3.9.4
Qt version: 5.12.9
Coin version: 4.0.1
OCC version: 7.5.2
Locale: English/United Kingdom (en_GB)
try the Assembly4 workbench for FreCAD — tutorials here and here
HoWil
Veteran
Posts: 1279
Joined: Sun Jun 14, 2015 7:31 pm
Location: Austria

Re: Assembly3 preview

Post by HoWil »

realthunder wrote: Thu May 20, 2021 2:36 am
HoWil wrote: Wed May 19, 2021 2:07 pm I noticed the above mentioned functionality in your branch but could not figure out how to use it when external references are broken. Is there any tutorial on that? Could not find anything related.
You can access 'Fix element' and 'Detach' actions in the tree view context menu. Just right click the element item in the tree.
What exactly is detach for? Is it some kind of 'disable'?
When should I use fix when detach?

So much functionality and I can not use it :D :?
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Post by realthunder »

HoWil wrote: Mon Jul 05, 2021 4:16 pm What exactly is detach for? Is it some kind of 'disable'?
When should I use fix when detach?
Detach means to remove link to the source object, but the element shape is still retained, so the element can recompute fine and your assembly should just work the same. Use 'Detach' if your model has been changed so much that there is no corresponding geometry element to the old model. Because the element may be used by some upper assembly, to avoid potential solver failure, you can just choose to keep using the old element shape. Just keep in mind that a detached element will no longer follow any subsequent changes in your model.

'Fix' means to try to guess new geometry reference using topo naming, which may or may not work. The link to the object is kept.
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
User avatar
M4x
Veteran
Posts: 1472
Joined: Sat Mar 11, 2017 9:23 am
Location: Germany

Re: Assembly3 preview

Post by M4x »

nice, thank you! That could be useful for me too :D
User avatar
M4x
Veteran
Posts: 1472
Joined: Sat Mar 11, 2017 9:23 am
Location: Germany

Re: Assembly3 preview

Post by M4x »

We currently have a thread in the German subforum where someone tried to make an assembly where some screws should be aligned with holes in a cylinder. I made an example using Assembly 3.

result
result
Snip macro screenshot-ad3490.png (32.58 KiB) Viewed 10159 times

My main issue was that I'm not able to use the hole itself together with the PlaneCoincidence constraint (or AxialAlignment constraint) because the shape of the hole is not planar. realthunder showed a workaround here:
realthunder wrote: Sun Feb 11, 2018 11:02 pm [...]
the reason why you can't simply use the circular hole in the rod is because the shape is not planar. You can use the sketch instead. And since it is a public geometry of the sketch, you don't need to use the edit mode, simply make the sketch visible, and select it. If you want the pin to be movable, use AxialAlignment constraint. Otherwise, you can use PlaneCoincidence.
[...]

Image
I was able to adapt this workaround for one screw. But since I've used PartDesign_PolarPattern, I didn't have a sketch for the other two holes already. Therefore I've added datum planes, used the holes to align the planes and created sketches to use them within Assembly 3 to align the two other screws:

datum planes for helper sketches
datum planes for helper sketches
Snip macro screenshot-3c432a.png (26.81 KiB) Viewed 10159 times

This is how the object tree for the parts and the assembly looks like:

object tree - parts with datum planes and helper sketches
object tree - parts with datum planes and helper sketches
Snip macro screenshot-193b9a.png (23.19 KiB) Viewed 10159 times
object tree - assembly
object tree - assembly
Snip macro screenshot-048709.png (14.61 KiB) Viewed 10159 times

Is this the "best" way to do it or should I've done something differently?

edit: added link to thread in the German subforum
Attachments
cylinder_align_screws_holes_Asm3_M4x.FCStd
(167.21 KiB) Downloaded 89 times
Last edited by M4x on Fri Jul 30, 2021 7:17 pm, edited 1 time in total.
Post Reply