A randomly started discussion about the necessity of the PD single solid rule

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!
wsteffe
Posts: 461
Joined: Thu Aug 21, 2014 8:17 pm

Re: #4828 PartDesign: inverse for pocket

Post by wsteffe »

chrisb wrote: Mon Mar 13, 2023 11:04 am A body and a Multibody are different concepts
I fully agree on that. If they were the same I would never ask to have a Multibody Container (instead of Body).

To be more precise a Multibody may be considered as e generalization of a Body in the sense than it may contain one or several solids.
The current Body may be safetely replaced by a Multibody. You will anyway be able to use it for a single solid. And somebody else could use it for many solids. But I can't understand why you were disturbed by this generalization.
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: #4828 PartDesign: inverse for pocket

Post by adrianinsaval »

saso wrote: Mon Mar 13, 2023 10:49 am The real reason for this is that in Catia the user manages the bodies and their geometry manually in the tree, while most (all?) other parametric cad systems manage them automatically and because of this they need this logic of a single shape relation to the body because this is how the automatic management of them works
what do you mean with automatic management here?
wsteffe
Posts: 461
Joined: Thu Aug 21, 2014 8:17 pm

Re: #4828 PartDesign: inverse for pocket

Post by wsteffe »

adrianinsaval wrote: Mon Mar 13, 2023 1:42 pm what do you mean with automatic management here
In example when you pad a sketch which produces several solids the CAD automatically assign a different body to each one of them. I also have seen this behaviour trying SolidWorks.

But the data structure of FC is closer to Catia: It is up to the user to define a body container.
So IMO it would be better to follow Catia rule allowing more solids in a Body Container.

In Catia as in FC the Body is a boundary for direct references. From outside of the body you need to use shape binders.
In SolidWorks you may have a direct reference to enities of different bodies. The one Body/one Solid rule doesn't represent a real limitation.
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: #4828 PartDesign: inverse for pocket

Post by adrianinsaval »

In the brief time I used solidworks I did not find a way to make multiple solids from a single extrusion in a single file, it certainly didn't do it automatically for me, but then again I used it very shortly without any training so It's expected that I would not understand the workflow.
User avatar
saso
Veteran
Posts: 1920
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: #4828 PartDesign: inverse for pocket

Post by saso »

adrianinsaval wrote: Mon Mar 13, 2023 1:42 pm what do you mean with automatic management here?
here is an example of solidworks that starts (first 25 sec) very similar to wsteffe example in catia, one sketch of two rectangles that is extruded. https://www.youtube.com/watch?v=C5X-u2it6MA

as can be seen in solidworks the two solid bodies are automatically created. however while it looks at this stage the same as the above catia example it is actually wrong to understand that this is now "logically" the same model. to get the same results in catia one would actually first add manually two bodies and then create the sketch and two profile outputs from the sketch that would then be used to create individual extrudes (pad's in catia) for two solids in the two bodies (if one would follow a bit cleaner workflow one would also probably create an geometrical set and move the sketch in there).

you will now have people that will say that this is not true, or that it is too complicated or that in FC we can do things differently etc. etc. etc. fact is they just don't understand or don't want to understand how things really work, or think that if something just "looks" similar that it can be good enough to work similar and they will happy go on and on defending their tower of babilon and arguing about things that are actually very standard all across the industry, one just has to properly understand them.

and no, there is no difference between a body and multibody when we talk about part modeling (it can be different if we talk about more different things as multibody simulations etc.). the concept of multibody part modeling was added by the industry to help in creating and managing of more complex parts. if the concept of a multibody part is not supported in a cad system then there is no need for it to have support for a body since this is then just a simple standard part. if we go for definitions we can say that multibody is a modeling concept for part modeling and body is the tool to do it.
Last edited by saso on Mon Mar 13, 2023 9:45 pm, edited 13 times in total.
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: #4828 PartDesign: inverse for pocket

Post by GeneFC »

Discussing the exact wording is pointless.

You can call multiple solids "Cheese" if you like.

The important issue is whether Part Design should allow multiple solids in a single Cheese. 8-)

Gene
wsteffe
Posts: 461
Joined: Thu Aug 21, 2014 8:17 pm

Re: #4828 PartDesign: inverse for pocket

Post by wsteffe »

saso wrote: Mon Mar 13, 2023 2:28 pm to get the same results in catia one would actually first add manually two bodies and then create the sketch and two profile outputs from the sketch that would then be used to create individual extrudes (pad's in catia) for two solids in the two bodies (if one would follow a bit cleaner workflow one would also probably create an geometrical set and move the sketch in there).
I think that it should be possible to get an equivalent result also in RT FC (and probably also in Catia).
The main difference is that the two boxes are placed in the same body and there is a single Pad item in the Model Tree.
So I can not select independently one of the two boxes. But using the split command I can get two items :Split_i0, Split_i1
which can be individually selected.

They are still in same Body but, in principle, it should it possible to move one of them into a different Body, if it worked.
But at the moment it doesn't work.

Also when they are still in the same body it is not possible to assign different colors to them.

@realthunder what do you think about ?
wsteffe
Posts: 461
Joined: Thu Aug 21, 2014 8:17 pm

Re: #4828 PartDesign: inverse for pocket

Post by wsteffe »

@realthunder just to clarify: Moving Split_i0 (or Split_i1) to a different body would not be really important to me.
If I have extruded them from a single sketch in the same Body, it is because I wanted to have both there.
But the fact that apparence/color cant't be applied to split_i0, split_i1 seems to be a bug.
user1234
Veteran
Posts: 3345
Joined: Mon Jul 11, 2016 5:08 pm

Re: #4828 PartDesign: inverse for pocket

Post by user1234 »

The Body is nothing more then a container for a PartDesign object, nothing more. There are several construction objects, where a multiple solid Body is much more better to handle against a single one, even when the result is in the end a single solid Body.

Examples:

Francis Runner, here you construct the runner base and runner crown single. Alsu you construct the runner blade single and pattern it before the boolean operation, because as all operation before the boolean operation are much better to handle. At the moment i must clone every single blade and position it per expression, which is not a good workflow (and not parametric, since i can not change the number of blades quickly, but not neccasyry in that case).

2023-03-13_18-00.png
2023-03-13_18-00.png (215.96 KiB) Viewed 1323 times

2023-03-13_17-59.png
2023-03-13_17-59.png (199.92 KiB) Viewed 1323 times

Just said, that i can sot show the runner base and runner crown here, since the boolen here make an error.


Everything with spokes, it is often better to handle such cases, when you split the construction in outer object, inner object and spokes, which is a mutilbe solid.


Here, viewtopic.php?t=76711, a crane, i would construct the reinforcement in a Body in a pattern way, which is then not a single solid. Then trim the contour and at least union it with the pillars.


Generally everything with ribs, like a reinforcement for plastic injection molding. Here you also make at first a pattern and trim the contour. Then it is often the case, that is is a multiple solid. After union with the Body, the result is a singe Body, but not while working on it.

2023-03-13_18-09.png
2023-03-13_18-09.png (161.51 KiB) Viewed 1323 times

2023-03-13_18-19.png
2023-03-13_18-19.png (162.25 KiB) Viewed 1323 times

Here as workaround made with Part, but that is bad practice, but still the only good way atm.



Here, viewtopic.php?t=70748&start=10#p665456, everything which is complicated to cut. It is a very common that you make a tool (in that case a Body) for a cut. Here this person make a workaround to make a singe solid, that it works. But i am 100% sure, that if this not a singe solid, but a "just patterned" single solid Body, it is much easier to handle (and the performance issue a better, since OCCT have problems with the helix - bottom connection).


If someone pattern bolts and await, that any (future or workbench) BoM generation works, it is its own fault. Also the Part Container is no replacement, since it breaks the PartDesign workflow, also it has a complete other usecase.


Greetings
user1234
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: #4828 PartDesign: inverse for pocket

Post by adrianinsaval »

GeneFC wrote: Mon Mar 13, 2023 2:29 pm The important issue is whether Part Design should allow multiple solids in a single Cheese. 8-)
No argument has been presented that supports not allowing this, so by default the conclusion is that it should be permitted, so the only complaint left to be discussed is what words to use to communicate such things.
Locked