Assembly 4 workbench

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
DDM
Posts: 88
Joined: Tue Feb 05, 2019 9:06 am

Re: Assembly 4 workbench

Post by DDM »

Thanks Zolko for explanation,
this is a bug an Arch/BIM: when you delete the LCS_Origin in the Model, the calculation is correct (you have to recompute the objects). You can recreate the same bug when creating a datum object inside Part_Container_Assembly.
How can I add a datum object without Assembly 4 workbench? I tried with PartDesign but it is possible only for an active body, not for a part container.

I would report the problem in the Draft/Arch subforum because, as I understand, the bug is related ta a generic Part Container with a datum object in it. I see that only the branch of @realthunder can add a datum object inside a Part Container, but this feature isn't in the FreeCad 0.19_pre.

Thanks, Marco
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

DDM wrote: Wed Aug 26, 2020 7:44 am How can I add a datum object without Assembly 4 workbench? I tried with PartDesign but it is possible only for an active body, not for a part container.
create a Body, create a datum there , drag the datum into the part in the tree, delete the Body
try the Assembly4 workbench for FreCAD — tutorials here and here
DDM
Posts: 88
Joined: Tue Feb 05, 2019 9:06 am

Re: Assembly 4 workbench

Post by DDM »

Thanks for your help, I will report the problem in the draft/arch subforum.

Cheers, Marco
ed.peguillan
Posts: 2
Joined: Fri Aug 28, 2020 12:02 am

Re: Assembly 4 workbench

Post by ed.peguillan »

Zolko wrote: Sat Jul 11, 2020 4:09 pm
WayofWood wrote: Sat Jul 11, 2020 1:08 pm I can use the LCS_in_Model in order to position my subassembly but within the model I don't have a possbility to link the LCS on the Model level to any part of the subassembly.
you can attach the LCS_in_Model to an LCS_in_childPart with the Place_Datum command. Better yet, select LCS_in_childPart in the tree and click Import_Datum.

(1) I still don't get the concept of A4 and I am doing sth wrong. :)
(2) The LCS of a linked part should be accessible on the model level so that it can be used to placement
(3) The LCS of a model could be somehow linked to a part of the model geometry or a LCS of one of the parts of the subassembly.
(1) I have the feeling that you got that quite correct
(2) it's easy to say, quite easy to do, but it adds more levels of complexity and more ways of breaking things, more error-checking and more options, so I'm not favorable to that. Also, then people will want to use LCS in the sub-assembly of a sub-assembly, adding even more levels and more ways for breaking things
(3) this is a built-in FreeCAD limitation
I am having the same issue as @WayofWood, with LCS's belonging to nested child parts not showing up when trying to link parts into an assembly. I can't figure out what they did to use datums to solve the problem. I also tried to import the LCS from the child object by using import datum, but I get an error (probably because it is an LCS, not a datum). I don't know what else to do other than show you the simple project structure I have setup.

Image

The goal is to make an enclosure to fit together a PCB, display, and printer. Each of these items are standalone FreeCAD project files with an assembly 4 object inside them. In the end, I intended the _assembly file to contain the fully assembled enclosure with PCB, printer, and display.

The display model came from the manufacturer and imported as a nested part structure. I created LCS's inside a child part of the display model to locate on the center of one of the holes. I had to create the LCS inside this child part because the LCS was winding up in weird places that I didn't intend, despite mapping to the edge of the hole. The LCS I intend to use is highlighted in the tree:

Image

When I go to import this into my _assembly file, I do not see the LCS I created listed among the map locations:

Image

Note that I also cannot see it when importing other parts into the assembly which should map to this LCS.

I have also tried putting a datum point in the same x,y,z location and same child hierarchy location as the LCS, but I cannot import the datum point. Can you please let me know exactly what you did with datums to get this to work?

Thank you for this awesome addon!
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

ed.peguillan wrote: Fri Aug 28, 2020 1:18 am I am having the same issue as @WayofWood, with LCS's belonging to nested child parts not showing up when trying to link parts into an assembly.

The display model came from the manufacturer and imported as a nested part structure. I created LCS's inside a child part of the display model to locate on the center of one of the holes. I had to create the LCS inside this child part because the LCS was winding up in weird places that I didn't intend, despite mapping to the edge of the hole.
ah, I understand. Hum, yes, I didn't think of that.

The explanation is the following: the nested parts have some placement property, so when you create a datum on a feature inside the part, the datum has the placement of that feature. If the datum is inside the part, it inherits the part's own placement and is correctly positioned. But when you create the datum outside of the part, it gets only the features placement but not the parts, so it ends up at weird places.

The problem of solving this is to know how many levels of nesting are present, how to encode and decode the chained placement properties. Initially I thought about not allowing this, but with STEP imports this might be unavoidable. I'll have to think about this.
try the Assembly4 workbench for FreCAD — tutorials here and here
ed.peguillan
Posts: 2
Joined: Fri Aug 28, 2020 12:02 am

Re: Assembly 4 workbench

Post by ed.peguillan »

Zolko wrote: Sun Aug 30, 2020 1:50 pm ah, I understand. Hum, yes, I didn't think of that.

The explanation is the following: the nested parts have some placement property, so when you create a datum on a feature inside the part, the datum has the placement of that feature. If the datum is inside the part, it inherits the part's own placement and is correctly positioned. But when you create the datum outside of the part, it gets only the features placement but not the parts, so it ends up at weird places.

The problem of solving this is to know how many levels of nesting are present, how to encode and decode the chained placement properties. Initially I thought about not allowing this, but with STEP imports this might be unavoidable. I'll have to think about this.
Oh, okay I see. I'm glad to know I'm not going crazy :lol: . Thanks for looking into this and letting me know what the problem is. Is there a workaround I can use?
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

ed.peguillan wrote: Mon Aug 31, 2020 1:14 pm Is there a workaround I can use?
Since it's for use with STEP files, that can be considered frozen, what you can do as a fast workaround is to create the datum at the root Part of the STEP import, and position it at the correct location. To do that, you can measure the position of the feature you intend to use (like a hole, vertex...) and manually set the datum's coordinates to these values.

It's quite brute-force, and not very parametric, but will always work.
try the Assembly4 workbench for FreCAD — tutorials here and here
pkorenek
Posts: 1
Joined: Mon Aug 31, 2020 2:45 pm

Re: Assembly 4 workbench

Post by pkorenek »

Hello,
I would like to ask, if is it possible to use raytracing workbench on assembly 4 model.
When I try to add part created in assembly 4 to raytracing project it does not show A4 models
Thank you
User avatar
openfablab
Posts: 62
Joined: Wed Nov 02, 2016 4:42 pm
Contact:

Re: Assembly 4 workbench

Post by openfablab »

Hello,
I want to use top-down approach with assembly4 when subassemblies and parts are in separate files. How can I edit one of subassemblies or parts while seeing superassembly context (like in some commercial CADs)?

For example we have a base with mounting sites for modules, each module in separate file. One would like to draw module while seeing base and sister modules to rationally use space and avoid interpenetration.

All-in-one-file approach is not so robust because it forbids reuse of subassemblies across projects and because it is not convenient with highly nested complex assemblies. And with it I can not share subassemblies with colleagues.
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly 4 workbench

Post by Zolko »

openfablab wrote: Mon Sep 07, 2020 8:51 pm For example we have a base with mounting sites for modules, each module in separate file. One would like to draw module while seeing base and sister modules to rationally use space and avoid interpenetration.
What I'd do is to create the module(s) as separate files, save, close and re-open them. Then create in the module document window the feature you want, approximatively. Insert the module into the main assembly, close the module document window so that the module document is only opened through the assembly.

Then, edit the feature (sketch ?) from the main assembly tree.
try the Assembly4 workbench for FreCAD — tutorials here and here
Post Reply