Naming of FreeCAD entities

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
chrisb
Veteran
Posts: 54279
Joined: Tue Mar 17, 2015 9:14 am

Re: Naming of FreeCAD entities

Post by chrisb »

The discussion if bodies and assemblies are the same is probably the result of some unprecise notions. At least in the FreeCAD world they are quite different, and from what I read here, they are different in other systems too.

The question is, if a body can already serve itself as an assembly.
davidosterberg wrote: Mon Mar 01, 2021 5:39 pm Isn't it the body that contain the real geometry? Regardless of A or B. The part is kind of like a dumb assembly. I was initially thinking that we would adapt option A. But I think option B is quite elegant.
In this sense option B is not only elegant (which it is indeed), it is more powerful, because it includes option A. The difference between bodies and Assemblies is in option B is the same as with numbers and calculated expressions. In every place where an expression can occur, you can also use a number, but not vice versa. Every number is an expression, albeit a very basic one, but not every expression is a number. Several expressions can be combined to new expressions.

Option B is what we currently have in FreeCAD's master: Although it doesn't have the full power of an assembly, the Part container currently serves that purpose. You can combine one or more such assemblies to a new one, you can export it, put it on a TechDraw page.
You can do this with a body as well, and there is no need to put the body in such an assembly.
Edit: One thing I would maintain is that Option A is more intuitive, at least to people with a CAD background.
I think that option B is clear and intuitive enough, as it is known from everydays life. E.g. if you buy a replacement for a damaged rear light of a car, you can buy the glass only (= the body) or you can buy a completely assembled (hear hear!) unit.

People who are addicted to option A can always put their bodies in an assembly, but those who don't want to, don't have to.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
wsteffe
Posts: 461
Joined: Thu Aug 21, 2014 8:17 pm

Re: Naming of FreeCAD entities

Post by wsteffe »

Another minor improvement that I would like to propose is to find a better icon for the element which represents the file name.
In the imagin above the icon near to "test3". This is just the name of the file which contains the document but, to me, the current icon gives the impression that it is an element of the Document Data Structure (of the Model Tree).
wsteffe
Posts: 461
Joined: Thu Aug 21, 2014 8:17 pm

Re: Naming of FreeCAD entities

Post by wsteffe »

chrisb wrote: Tue Mar 02, 2021 8:03 am The difference between bodies and Assemblies is in option B is the same as with numbers and calculated expressions.
Number and expressions have nothing to do with Body,Part,Assembly.
In the usual CAD terminology:
  • a Body is a single solid, sometimes (in example in WS) it may be also a shell. Catia would use a different container (Geoemetrical Set) for a shell.A Solid Body is translated into a MANIFOLD_SOLID_BREP entity by the step exporter.
  • A Part may contains several solids. A Part is translated into a PRODUCT entity by the step exporter.
  • An assembly is a collection of placed parts (usually but not always plus contraints).
    An Assembly is also translated into a PRODUCT entity by the step exporter. Usually the step file associated with an assembly includes entities of the type NEXT_ASSEMBLY_USAGE_OCCURENCE(#, PartName,...) which make use of a previously defined PRODUCT entities associated with Parts (or with subassemblies).
You may decide to speak your own language but it is not a good idea if you want to communicate with other people that have a working experience on CAD.
chrisb wrote: Tue Mar 02, 2021 8:03 am Option B is what we currently have in FreeCAD's master: Although it doesn't have the full power of an assembly, the Part container currently serves that purpose.
If it bahaves like an assembly why not call it an assembly as proposed in option A ?
wsteffe
Posts: 461
Joined: Thu Aug 21, 2014 8:17 pm

Re: Naming of FreeCAD entities

Post by wsteffe »

If what is proposed by davidosterberg and chrisb is simply to fuse the concept of Part and Assembly, I do not want to say that this choice would be really bad.

But in this case please call them "Products" as done in the step file format. Please do not call them both Parts or both Assemblies because it would be very confusing considering that those names are already used with a different meaning in all other CAD systems.

Please consider also that the current Body should anyway be renamed (into Product) because "Body" is not a good name for a container that may hold several Solids and also a LCS.
User avatar
onekk
Veteran
Posts: 6222
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: Naming of FreeCAD entities

Post by onekk »

After some research, maybe if a change is neede, we could adopt an IFC like terminology:

Products, seems good as the Whole "assembly", each product could have some Elements, with sub elements.

But At "geometric level" as we are using OCC as a modelling engine, it is better to use the OCC names and concept, for two reason:

1) a close relation to the real "engine" as it is a nightmare to "mentally rename" each things when "dealing at low level" with both world, I'm thinking of the "core programmers" that has to "translate the engine entities into FreeCAD Objects"

2) maybe fellow at OCC have already discussed some of this things, and maybe they have a more technical knowledge than "normal users"


Or maybe a Product is formed by Components and each component is made by Elements let's be more concrete:

A Car is done by Components, An Engine, A Door, A Body (Chassis)

An Engine is done by some other Components and so one an "elements" maybe is a single gasket, a valvle, a piston ecc.

But for an Engine maker his final Product is the Engine itself so the view depends, on at what point you are viewing things.

To design a gasket you have to design many "graphical objects" that are no "real components" only design artifacts, a surface and some holes in the surface as a basic starting point, but if you add maybe a seal this is another "component", so same as above it depends at what point you are viewing things.

But at the "design phase" you have to deal with the "solid costruction engine" so better to use the terminology of this "solid costruction engine".

Hoping it is not too involute.

Regards

Carlo D.
GitHub page: https://github.com/onekk/freecad-doc.
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.

Blog: https://okkmkblog.wordpress.com/
C_h_o_p_i_n
Posts: 225
Joined: Fri Apr 26, 2019 3:14 pm

Re: Naming of FreeCAD entities

Post by C_h_o_p_i_n »

Hi all,

Why not just rename PartDesign WB to BodyDesign WB.
Just this single step alone might remove nearly all confuison, newbies are facing - regarding bodies vs. parts etc ....

And "Body's" and other primitves assembles to Parts, many Parts assembles to assemblys, many assemblys assembles to products.

Regards,
Stefan
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: Naming of FreeCAD entities

Post by -alex- »

Guys, I'm wondering about this discussion, maybe it happens too early.
I mean, I'm thinking about next future of FC0.20, I hope several great enhancements from Linkstage3 branch will be merge. I would expect about 3 at the very least:
1- toponaming algorythm
2- multi-solids PartDesign container (currently named "Body")
3- ability to wrap any features from PartWB in PD container.

If such merge occures PD paradigm and workflow will change a lot, and user will be able to do almost everything he wants with almost no limitations in the workflow.
Maybe it could be better to talk about names of objects at this time?
Words are important, but IMHO features are the more important.
For example in Linkstage3 branch " real bodies" exist, I mean about FC solids or shell. Solids or shell are pretty visible and easily selectable by using Pick-geometry feature.
Such possibilities are a huge difference compare with current FC.
BTW, whatever the future will be: if I were you I would no use the word "body" anywhere in order to avoid some confusion with SW body paradigm.
SW bodies exist since 2003 IIRC, so I assume this paradigm I pretty popular in CAD community now. Hence we could consider it as a kind of standard.
We should better use a different word: just "solid"? Or " shell" (if included in body paradigm)?
Last edited by -alex- on Tue Mar 02, 2021 12:27 pm, edited 1 time in total.
wsteffe
Posts: 461
Joined: Thu Aug 21, 2014 8:17 pm

Re: Naming of FreeCAD entities

Post by wsteffe »

C_h_o_p_i_n wrote: Tue Mar 02, 2021 11:57 am Why not just rename PartDesign WB to BodyDesign WB.

I think this was already said many times: "Body" is not a good name for a container that includes a LCS and several Solids.
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: Naming of FreeCAD entities

Post by -alex- »

wsteffe wrote: Tue Mar 02, 2021 12:26 pm "Body" is not a good name for a container that includes a LCS and several Solids.
+1
wsteffe
Posts: 461
Joined: Thu Aug 21, 2014 8:17 pm

Re: Naming of FreeCAD entities

Post by wsteffe »

-alex- wrote: Tue Mar 02, 2021 12:23 pm if I were you I would no use the word "body" anywhere in order to avoid some confusion with SW body paradigm.
SW bodies exist since 2003 IIRC, so I assume this paradigm I pretty popular in CAD community now. Hence we could consider it as a kind of standard.
I completely agree on that.
Post Reply