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!
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: #4828 PartDesign: inverse for pocket

Post by adrianinsaval »

FBXL5 wrote: Sat Mar 04, 2023 2:47 pm It can be important for following processes. Manufacturing a part requires a model of that part and this is usually one object in a file. If a file contains more than one object it is possible for someone to choose the wrong one to be manufactured.
Highlighted some key words here... There's nothing on your post that leads to the conclusion that this needs to be a rule enforced on all users and all PD bodies... This should be a decision/responsibility of the user (or organization) doing this. Remember that there is other people using FreeCAD, doing different stuff. For example for 3d printing it might make sense to put more than one solid for manufacture at once, even for CNC if two parts are meant to be manufactured from the same piece of raw material it could make sense to model them together. Or what if I'm an amateur modelling and manufacturing my own part? What do I care about datasheets?Or what if it won't ever even be manufactured? In my example above I do not need separate solids for something that will only be used for a boolean op and never manufactured or exported to a datasheet or BOM. There is no reason to force that workflow onto these usecases beyond some silly fanaticism over semantics.

I'm against the single solid rule, not against a feature to obtain a single solid from a body (this exist in Part WB already) or against a feature to be warned when a body is not a single solid (this could even be default on).
chrisb
Veteran
Posts: 53945
Joined: Tue Mar 17, 2015 9:14 am

Re: #4828 PartDesign: inverse for pocket

Post by chrisb »

adrianinsaval wrote: Mon Mar 06, 2023 3:22 pm some silly fanaticism over semantics.
I am happy if I'm neither called silly, nor a fanatic when I'm voting for clear concepts. (Please refrain from the hairsplitting argument that you didn't mean the person behind the opinion.)
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: #4828 PartDesign: inverse for pocket

Post by adrianinsaval »

Apologies for the unnecessary name calling, sometimes emotions get the better off me.
I'm yet to hear any sound argument on why my examples should not be allowed though... "clear concept" is brought up again, but this is not a strong argument for limiting software capability, the Part container can hold whatever the hell you want despite not forming a single "part", some people have complained that this is not the dictionary definition of a part (or their arbitrary perception of it), but they have neither shown a situation where this behavior was harmful, and I think half the forum would riot if it occurred to us to start limiting it's functionality because "well the definition of a part is [...]"
chrisb
Veteran
Posts: 53945
Joined: Tue Mar 17, 2015 9:14 am

Re: #4828 PartDesign: inverse for pocket

Post by chrisb »

adrianinsaval wrote: Sat Mar 04, 2023 1:08 pm come on you've been helping on the forum long enough to know plenty of examples, but ok
viewtopic.php?t=76482
Of course I know the message, that's what we are talking about.
my own example where I had to add this stupid box to make a body for a boolean operation on another body:
That looks as if you could well have created a second body with a ShapeBinder.

There is already the Part container for multiple solids. I'm not yet convinced, that we need the body as another one, but I will think over it. When I say I want clear concepts, I don't mean that this concept must necessaribly be the single solid rule.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
FBXL5
Posts: 981
Joined: Sat Aug 03, 2019 8:45 pm

Re: #4828 PartDesign: inverse for pocket

Post by FBXL5 »

I still like the concept of one of the big CADs where you have positive and negative objects.
If you assemble, it is taken into accont whether an objects is positive (behaves like an additive feature) or negative (behaves like a subtractive feature).
If you add, you can add the shape of a negative objects as well as a positive objects.
If you subtract, you can subtract positive objects, too.
For negative objects (except the first one) you can choose which side of the sketch is used for subtraction.
And it may contain more than only one body.
And you can remove unwanted protruding geometry while assembling, adding, or Subtracting a shape.

I like this concept and hope that PartDesign develops in a similar direction, but I don't expect this being included in version 1.0 ;)

I like to model subtractive parts as postive shapes and to pattern them before combining them with the positive object. This can be simulated with additive features and a boolean operation except the patterning part (or you need an auxiliary object to connect the patterned shapes).

Again, I like the concept of inverse pockets and I think no one would pattern such a feature more than once. :D
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: #4828 PartDesign: inverse for pocket

Post by adrianinsaval »

chrisb wrote: Tue Mar 07, 2023 12:29 am That looks as if you could well have created a second body with a ShapeBinder.
I could have created two bodies, but this doesn't change my argument at all, it's still obstructing my modelling. Actually having to create a second body is more of an annoyance than using that connecting box, in this case the box will not interfere with the boolean op I want but in cases where it would interfere you have to make separate bodies, making these operations unnecessarily complicated, and we are talking of the simplest of situations where it's just two solids, imagine if it was 10 or even more, is it really sensible to demand that I create that many bodies? It makes PD inviable for such situations and forces you to use Part. It's an absurd tradeoff, it obstructs modelling so much with no real benefit in exchange.
There is already the Part container for multiple solids.
But I can't use the PD workflow for them, you want to force the Part WB workflow that creates endless sublevels (and with inconsistent bevahior) in the tree and is hard to follow or make edits in sequence. It's also a pain to use because you have to manually add stuff into the container even if the operands where already in it.

And I'll ask again, we are trading off all of this potential for what?? There isn't a situation where the single solid rule is helping you make models, and let's remember what CAD means and what is the objective of using one: Computer Aided Design (or Drawing?) and the objective is to make models, this rule is not aiding with that at all but the opposite.
wsteffe
Posts: 461
Joined: Thu Aug 21, 2014 8:17 pm

Re: #4828 PartDesign: inverse for pocket

Post by wsteffe »

chrisb wrote: Tue Mar 07, 2023 12:29 am Can you elaborate why it is so important to weaken this rule?
Here is my use case: viewtopic.php?p=484114#p484114

To do my work i have to use RT branch (master FC is not an option).
The one body one solid rule is the main limitation (even more important than TN issue).
chrisb
Veteran
Posts: 53945
Joined: Tue Mar 17, 2015 9:14 am

Re: #4828 PartDesign: inverse for pocket

Post by chrisb »

@adrianinsaval, @wsteffe, your examples show that it is desirable to have a feature driven ("PartDesign") workflow for multiple solids, similar to what is possible in Part workbench. I agree on this, please don't use the notion of "Body" for this, just because it would be convenient. I am not a native speaker, but my research on this confirms that a body is rather a single solid in common speech too.
So I propose a new, yet similar concept which allows multiple solids in a body like structure, let's call it "Multibody" or "SchizoBody" or whatever, but not "Body".
"Body" has - unlike "Part" - still a rather clear meaning in the FreeCAD world. I can well imagine tools transforming one into the other, and I also stick to my opinion that a body can contain multiple pieces as intermediate steps, which would make going from a Schizobody to a Body rather easy.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
user1234
Veteran
Posts: 3349
Joined: Mon Jul 11, 2016 5:08 pm

Re: #4828 PartDesign: inverse for pocket

Post by user1234 »

chrisb wrote: Sun Mar 12, 2023 11:55 am "Multibody" or "SchizoBody"
A Body is always a SchizoBody. I will write a more detailed text about that (maybe in a dedicaded thread).


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 »

chrisb wrote: Sun Mar 12, 2023 11:55 am I am not a native speaker, but my research on this confirms that a body is rather a single solid in common speech too.
IMO this is a weak argument but I don't mind renaming what we currently call a body, creating a whole separate container to allow these cases seems unnecessary to me but if that's what it takes to please people ok. Multibody sounds alright to me but I'm not a native speaker either.

btw here one example I mentioned in the wild: viewtopic.php?t=76699
if multiple solids where permitted the user could have just done a single pad and groove to obtain what he wants instead of creating two bodies, with a pad on each and a revolution and a groove respectively. The part is meant to be manufactured all at once.
Locked