yes, indeed, I'm working on a button that says "Wrap any design that any user has ever made into a nice assembly. Oh, and also correct their mistakes". So no need to do anything, you can comfortably lay back and wait. And it's useless to read the instructions, they're a pure waist of time.
Assembly3, A2plus, Assembly4? Get united!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: Assembly3, A2plus, Assembly4? Get united!
Re: Assembly3, A2plus, Assembly4? Get united!
Your sarcasm noted...and basically ignored.Zolko wrote: ↑Fri Feb 28, 2020 7:17 amyes, indeed, I'm working on a button that says "Wrap any design that any user has ever made into a nice assembly. Oh, and also correct their mistakes". So no need to do anything, you can comfortably lay back and wait. And it's useless to read the instructions, they're a pure waist of time.
But, your implication that I've not read the docs, or watched the videos, or worked through the examples is conjecture on your part. I have and still had/have questions. Your assumptions that those docs, etc. are the way to enlightenment on all details...well, maybe for some. But, it takes me a while to connect the dots, I'm sorry my slow witted-ness offends you. (But, I get this a lot, because I'm not a "read it, learnt it" person and have to do it several times before I go back and re-read it and have the "oh, that's what that meant" moment. )
That said, I was not suggesting that you create a magic button; I was asking if I'd missed something that detailed how to use an existing library of parts. Is it assumed that Assembly4 should only be used for new designs? (obviously not, since the first tutorial uses STEP models of the bearing)
I am actively trying to understand how A4 works in a work flow (that being, my work flow, and how do I adapt my work flow to best take advantage of the functionality).
And speaking of docs...
A good example, from the docs:
For an end user, who has no knowledge of the underlying structure of the FreeCAD object models this might as well have been written in Aramaic. This paragraph alone could spawn a tutorial of it's own...or, a research project for the user to grok things they probably don't want to know. And, I get it, it's a difficult to convey this in a couple sentences. This example may be obvious developer types or long time users, but not so much for newcomers. (IMO)Please Note: objects in the same document as the linked part but outside the App::Part container will not be inserted. The PartDesign workbench doesn't produce Parts, it produces Bodies. It is entirely possible to use Parts made with the Part workbench with Assembly4, but if you want to use Bodies made with the PartDesign WB you need first to create a Part and move the Body into that Part.
I have a 40 year background in CAD software development and I've been digging into FreeCAD for 6 years; I had to read it several times and I'm still not sure I can use it as actionable knowledge.
All that said, I did an exercise with A4 yesterday, of my own design, that helped me solidify, in my mind, how it works. And, yes, I had to refer to the docs and the videos a couple times along the way. And as I progress, will no doubt spawn more questions that will offend you. For that I'll apologize now.
Star Trek II: The Wrath of Khan: Spock: "...His pattern indicates two-dimensional thinking."
Re: Assembly3, A2plus, Assembly4? Get united!
Part container.
The following threads may answer some of your questions:
https://forum.freecadweb.org/viewtopic. ... wm#p341631
https://forum.freecadweb.org/viewtopic. ... 20#p342185
"It is a poor workman who blames his tools..."
Re: Assembly3, A2plus, Assembly4? Get united!
yes, you'll have to wrap each and every body into a Part container. Not necessarlily an Assembly 4 Model (which is a Part container), any FreeCAD Part (Std_Part, App::Part) will do. The easiest is to create such a Part in the same document as your current design is (you can use the magic Assembly4 button "Create Part") and then drag (in the tree) your existing design to the Part container you just created. Exactly as the STEP example in the first tutorial.
Now that you mention this ... would a FAQ section in the README help ?
this is actually a fair point, and shows that writing documentation is not easy. People tend to put emphasis on what is difficult for them, and that goes also for developers. It took months of trial and error (with great help from realthunder and all the testers) to get to the current setup, so I thought it important to write it down. This should probably belong to the technical manual.drmacro wrote: ↑Fri Feb 28, 2020 1:41 pm For an end user, who has no knowledge of the underlying structure of the FreeCAD object models this might as well have been written in Aramaic. This paragraph alone could spawn a tutorial of it's own...or, a research project for the user to grok things they probably don't want to know. And, I get it, it's a difficult to convey this in a couple sentences. This example may be obvious developer types or long time users, but not so much for newcomers.
Re: Assembly3, A2plus, Assembly4? Get united!
After re-reading the treatise by vocx here: https://forum.freecadweb.org/viewtopic.php?f=8&t=40229Zolko wrote: ↑Fri Feb 28, 2020 4:53 pmyes, you'll have to wrap each and every body into a Part container. Not necessarlily an Assembly 4 Model (which is a Part container), any FreeCAD Part (Std_Part, App::Part) will do. The easiest is to create such a Part in the same document as your current design is (you can use the magic Assembly4 button "Create Part") and then drag (in the tree) your existing design to the Part container you just created. Exactly as the STEP example in the first tutorial.
Now that you mention this ... would a FAQ section in the README help ?
and, staring at this diagram for a while: https://www.freecadweb.org/wiki/File:Fr ... bjects.svg
Light is beginning to break over marblehead...
I don't see the Std_Part object though...
A little fuzzy on why a PartDesign::Body (which I think is inherited from a Part::Feature??) can't be used directly, but a Part::Feature>3D object can.
(I'm sure this my general fuzziness...and the whole nomenclature that has been discussed elsewhere at great length.)
But it appears that Assembly Parts is where the Part::Feature or PartDesign::Body objects go in the Assembly4 Model?
Hmm...yes, it probably needs to go somewhere, there is good. But, this leads me to a thing that I've discussed many times over the years. IMO, there is a difference between documentation (details of how the software works, routines get called, explanations of arguments, theory of operation, etc.), and end user documentation. That's not to say there isn't overlap, indeed as the user doc moves to more advanced topics, the more overlap. As you note, documentation is hard. Breaking it down into digestible parts for padawans is even tougher. Here I'm thinking how to explain this stuff without using "geek speak" like "inherited objects", etc. Examples go a long way in the hand holding...but I don't have a ready answer.Zolko wrote: ↑Fri Feb 28, 2020 4:53 pmthis is actually a fair point, and shows that writing documentation is not easy. People tend to put emphasis on what is difficult for them, and that goes also for developers. It took months of trial and error (with great help from realthunder and all the testers) to get to the current setup, so I thought it important to write it down. This should probably belong to the technical manual.drmacro wrote: ↑Fri Feb 28, 2020 1:41 pm For an end user, who has no knowledge of the underlying structure of the FreeCAD object models this might as well have been written in Aramaic. This paragraph alone could spawn a tutorial of it's own...or, a research project for the user to grok things they probably don't want to know. And, I get it, it's a difficult to convey this in a couple sentences. This example may be obvious developer types or long time users, but not so much for newcomers.
Star Trek II: The Wrath of Khan: Spock: "...His pattern indicates two-dimensional thinking."
Re: Assembly3, A2plus, Assembly4? Get united!
Std_Part is a graphical command (GuiCommand) that produces the "App::Part" (App_Part) object.
Here in the forum I tend to refer to it as a "Std_Part object" but technically this is only the name of the command. The object that is created is called "App::Part" (App_Part). Since the user is presented with the Std_Part button, I placed the documentation about the "App::Part" object in the Std_Part page. The App_Part page basically just points back to the Std_Part page.
I haven't seen much confusion about this, which is why I keep referring to Std_Parts when discussing assemblies.
I don't know. Maybe PartDesign Body has something special that doesn't allow it to be used directly by Assembly4.A little fuzzy on why a PartDesign::Body (which I think is inherited from a Part::Feature??) can't be used directly, but a Part::Feature>3D object can.
(I'm sure this my general fuzziness...and the whole nomenclature that has been discussed elsewhere at great length.)
As Zolko said, an Assembly4 model is the same as a Std_Part (App_Part). It is simply called "Model" instead of "Part". Parts can be nested inside other parts. Or in this case, Parts can be nested inside the Model.But it appears that Assembly Parts is where the Part::Feature or PartDesign::Body objects go in the Assembly4 Model?
https://github.com/Zolko-123/FreeCAD_As ... Cmd.py#L52
Code: Select all
model = self.activeDoc.addObject('App::Part','Model')
Another workbench could still emerge using Std_Part (App_Part) to build assemblies, so this object has the general idea of being useful in an assembly.
Be sure to contribute. Producing this documentation has taken a long time, and is not easy.... Here I'm thinking how to explain this stuff without using "geek speak" like "inherited objects", etc...
Just a note, the image is meant to describe the general relationships of the objects in the code from a programmer's point of view. But it doesn't explain how to use those objects from a user's perspective. For example, an App_Part is not derived from Part_Feature, but obviously it can contain any other object, like a Part_Feature, a Part_Part2DObject, a Mesh_Feature, etc.
Always add the important information to your posts if you need help. Also see Tutorials and Video tutorials.
To support the documentation effort, and code development, your donation is appreciated: liberapay.com/FreeCAD.
To support the documentation effort, and code development, your donation is appreciated: liberapay.com/FreeCAD.
Re: Assembly3, A2plus, Assembly4? Get united!
I'm not sure to understand the question. It's not that PartDesign::Body cannot be used for Assembly4, but it was decided by higher authorities that only App::Part objects linked by App::Link interfaces using datum objects for placement will be used. Clear interfaces are what make a stable assembly.vocx wrote: ↑Mon Mar 02, 2020 7:10 pmI don't know. Maybe PartDesign Body has something special that doesn't allow it to be used directly by Assembly4.A little fuzzy on why a PartDesign::Body (which I think is inherited from a Part::Feature??) can't be used directly, but a Part::Feature>3D object can.
...
As Zolko said, an Assembly4 model is the same as a Std_Part (App_Part). It is simply called "Model" instead of "Part".
Actually, fasteners from the Fasteners workbench, of type Part::FeaturePython can also be used, but it's only because they already existed and I didn't manage to wrap them inside an App::Part. And if they break it's not a big deal because they can't serve as basis to assemble other elements: they're always the last leaf of a branch.
Re: Assembly3, A2plus, Assembly4? Get united!
I've just installed the app image for freecad 0.19.
And it seems like Assembly3 comes installed by default.
For some reason (reading the wiki and the forums) I got an impression of the following:
* A2plus is the "stable but unofficial thing people use". It has it's quirks, the biggest being having to create a file for each part
* Assembly4 is the new assembly which will be "the assembly" for freecad, it solves the A2plus issues by relying on the "link" feature of Freecad 0.19
Now just after installing Freecad 0.19 and playing a bit with assembly 4 I noticed the assembly3.
(Yes, I've missed it initially even though it's just before Assembly4 in the workbench selection :p))
Assembly3 seems to require the "link" feature which is what Assebbly4 also depends on.
I understand why A2plus exists but what is the difference for Assembly3 and Assembly4?
And it seems like Assembly3 comes installed by default.
For some reason (reading the wiki and the forums) I got an impression of the following:
* A2plus is the "stable but unofficial thing people use". It has it's quirks, the biggest being having to create a file for each part
* Assembly4 is the new assembly which will be "the assembly" for freecad, it solves the A2plus issues by relying on the "link" feature of Freecad 0.19
Now just after installing Freecad 0.19 and playing a bit with assembly 4 I noticed the assembly3.
(Yes, I've missed it initially even though it's just before Assembly4 in the workbench selection :p))
Assembly3 seems to require the "link" feature which is what Assebbly4 also depends on.
I understand why A2plus exists but what is the difference for Assembly3 and Assembly4?
- adrianinsaval
- Veteran
- Posts: 5551
- Joined: Thu Apr 05, 2018 5:15 pm
Re: Assembly3, A2plus, Assembly4? Get united!
Assembly 3 uses constraints in a similar fashion to a2+, assembly 4 uses expressions and LCSs instead, it also requires that your models be inside Part Containers, I guess it requires more thinking to assign the proper relationships although I haven't really tried it out yet.
As for using different files for each part, that's the standard approach for assemblies I think, and Links are actually a way to facilitate the use of parts in separate files. Assembly 4 solves a2+'s problems by relaying on the Part Container and LCSs instead of the simple copy a2+ uses and the Link feature is used to import external Part Containers, funny enough assembly 4 also required that external files be used some versions ago. You can mix parts from the same document with linked one's in both assembly 3 and 4 if I understood correctly.
Anyone who knows better please correct me if I'm wrong
None of them are, all are unofficial external workbenchs and AFAIK no decision has been made yet to integrate one. Assembly 4 has the advantage that it doesn't use any solver and only uses FreeCAD's internal expression and placement systems so in theory the files should work all the same with future versions of FreeCAD even if the workbench is not mantained anymore.
As for using different files for each part, that's the standard approach for assemblies I think, and Links are actually a way to facilitate the use of parts in separate files. Assembly 4 solves a2+'s problems by relaying on the Part Container and LCSs instead of the simple copy a2+ uses and the Link feature is used to import external Part Containers, funny enough assembly 4 also required that external files be used some versions ago. You can mix parts from the same document with linked one's in both assembly 3 and 4 if I understood correctly.
Anyone who knows better please correct me if I'm wrong
Re: Assembly3, A2plus, Assembly4? Get united!
Thanks
https://github.com/FreeCAD/FreeCAD/rele ... g/0.19_pre
I don't know in general. I'm trying to use it for woodworking and the ability to have parts in the same project file in Assembly4 was really convenient. There isn't much complicated parts to work with in that case and having to have splits into files would be an overhead.adrianinsaval wrote: ↑Wed Apr 01, 2020 3:05 amAs for using different files for each part, that's the standard approach for assemblies I think
Assembly3 seems to be bundled with the app image from the releases, at least for Linux.adrianinsaval wrote: ↑Wed Apr 01, 2020 3:05 amNone of them are, all are unofficial external workbenchs
https://github.com/FreeCAD/FreeCAD/rele ... g/0.19_pre