Why can't I boolean?
Forum rules
and Helpful information
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help
Also, be nice to others! Read the FreeCAD code of conduct!
Also, be nice to others! Read the FreeCAD code of conduct!
Why can't I boolean?
Hi.
I'm in Part Design. I created two relatively simple bodes. I want to knock one out of the other. Every time I do this, however, it fails. If I go out of Part Design, and do this in Part, it will work... but then I don't have a body to work with anymore -- and it violates everything I've learned on this forum, namely: Don't move between workbenches anymore than you absolutely have to.
I'm attaching the part, if anyone wants to give this shot to see what I mean. I'm using the latest 19.3 AppImage build.
Thank you.
I'm in Part Design. I created two relatively simple bodes. I want to knock one out of the other. Every time I do this, however, it fails. If I go out of Part Design, and do this in Part, it will work... but then I don't have a body to work with anymore -- and it violates everything I've learned on this forum, namely: Don't move between workbenches anymore than you absolutely have to.
I'm attaching the part, if anyone wants to give this shot to see what I mean. I'm using the latest 19.3 AppImage build.
Thank you.
- Attachments
-
- messed_up.FCStd
- (31.88 KiB) Downloaded 18 times
Re: Why can't I boolean?
There is nothing wrong with using both Part and Part Design...as long as you play by the rules.grooveman wrote: ↑Fri Jan 21, 2022 5:08 pm Hi.
I'm in Part Design. I created two relatively simple bodes. I want to knock one out of the other. Every time I do this, however, it fails. If I go out of Part Design, and do this in Part, it will work... but then I don't have a body to work with anymore -- and it violates everything I've learned on this forum, namely: Don't move between workbenches anymore than you absolutely have to.
I'm attaching the part, if anyone wants to give this shot to see what I mean. I'm using the latest 19.3 AppImage build.
Thank you.
The recommendation you refer to is typically made to noobs, to lessen their confusion during the initial learning curve.
That said, the Boolean in Part Design should work and apparently has to do with the Body objects having been translated. This shouldn't effect it. Probably a ticket is in order...
You can easily just create a new Body and drop the result of the Part workbench Cut in as a base object as a workaround. I can confirm that this is also the case in FC 0.20 with both OCCT 7.5.3 and 7.6.
OS: Debian GNU/Linux 10 (buster) (XFCE/lightdm-xsession)
Word size of FreeCAD: 64-bit
Version: 0.20.27134 (Git)
Build type: Release
Branch: master
Hash: 39ed257eb4b59ae72ef9522d1d6c6ba886f8222f
Python version: 3.7.3
Qt version: 5.11.3
Coin version: 4.0.0a
OCC version: 7.6.0
Locale: English/UnitedStates (en_US)
Star Trek II: The Wrath of Khan: Spock: "...His pattern indicates two-dimensional thinking."
Re: Why can't I boolean?
Thanks drmarco.
The problem is, I need to do more "booleaning" with that part... I couldn't get to go in 19.3. I have a copy of 18.4... I was able to open in that, and do what I needed to do... I'm just hoping I can get a decent mesh out of this so I can print it...
The problem is, I need to do more "booleaning" with that part... I couldn't get to go in 19.3. I have a copy of 18.4... I was able to open in that, and do what I needed to do... I'm just hoping I can get a decent mesh out of this so I can print it...
Re: Why can't I boolean?
Part WB is the core of FreeCAD as it is the main interface with modelling engine OCCT.
PartDesign is an abstraction level up.
There are limitations when mixing things, as the abstraction level will impose some limitations when mixing, so it will (maybe) not ever possible to apply as example a Part Boolean operation to a PartDesign Body.
Usually you have in PartDesign equivalent tools to made operations that you will make with Part WB.
So you will have to choose the correct "workflow" and know as someone as told you the correct workflow to do a specific things.
Don't count in video tutorials around, if they are not advised by some skilled user and feel free to ask here when in doubt.
Usually questions are not unanswered here, just have a little patience, and someone will answer you with competence.
EDIT: follow advices of @chrisb and @TheMarkster, (as said above some competent people will answer usually in a short time.)
EDITED Post: Some correction and a little clarification.
Regards
Carlo D.
PartDesign is an abstraction level up.
There are limitations when mixing things, as the abstraction level will impose some limitations when mixing, so it will (maybe) not ever possible to apply as example a Part Boolean operation to a PartDesign Body.
Usually you have in PartDesign equivalent tools to made operations that you will make with Part WB.
So you will have to choose the correct "workflow" and know as someone as told you the correct workflow to do a specific things.
Don't count in video tutorials around, if they are not advised by some skilled user and feel free to ask here when in doubt.
Usually questions are not unanswered here, just have a little patience, and someone will answer you with competence.
EDIT: follow advices of @chrisb and @TheMarkster, (as said above some competent people will answer usually in a short time.)
EDITED Post: Some correction and a little clarification.
Regards
Carlo D.
Last edited by onekk on Sat Jan 22, 2022 9:00 am, edited 1 time in total.
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/
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.
Blog: https://okkmkblog.wordpress.com/
-
- Veteran
- Posts: 5513
- Joined: Thu Apr 05, 2018 1:53 am
Re: Why can't I boolean?
You can apply a Part Boolean operation to a Part Design Body. Just make sure to select the Body in the tree view and not in the 3D view or else you will get one of the features inside the body instead of the body itself.onekk wrote: ↑Fri Jan 21, 2022 10:35 pm Part WB is the core of FreeCAD as it is the main interface with modelling engine OCCT.
PartDesign is an abstraction level up.
There are limitations when mixing things, as the abstraction level will impose some limitations when mixing, so it is not even possible to apply as example a Part Boolean operation to a PartDesign Body.
Re: Why can't I boolean?
To add to onekk's post:
With the same effort needed for the second body you could have created a subtractive loft in the first. That would have the boolean "built in". There are very few cases where a PartDesign boolean is needed. Most cases can be handled if you consider that additive features have the union built in, and subtractive make a cut.
With the same effort needed for the second body you could have created a subtractive loft in the first. That would have the boolean "built in". There are very few cases where a PartDesign boolean is needed. Most cases can be handled if you consider that additive features have the union built in, and subtractive make a cut.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Re: Why can't I boolean?
This got buried down... The problem is that the base body is also translated. But The tool is applied in the base bodies coordinate system so that makes it applied in the wrong (from the user perspective) location. With the proper locations everything works as expected. In the attached file I did not bother too place second body at the desired location, just in the general area.the Boolean in Part Design should work and apparently has to do with the Body objects having been translated.
This is pry explained in the docs PartDesign_Boolean
Edit: user quote got mixed up so I removed the user data...Tool bodies adopt the local origin of the active Body. If the active Body is not located at (0,0,0) in the global coordinate system, the tool bodies' placement need to be relative to the active Body. It may be easier to leave the active Body's placement at the origin before applying the Boolean feature, then to change its placement.
- Attachments
-
- messed_up_kiss.FCStd
- (47.95 KiB) Downloaded 19 times
Re: Why can't I boolean?
Yes, I guess I said that in a way that implies I didn't understand the why of why it didn't work.kisolre wrote: ↑Sat Jan 22, 2022 9:32 amThis got buried down... The problem is that the base body is also translated. But The tool is applied in the base bodies coordinate system so that makes it applied in the wrong (from the user perspective) location. With the proper locations everything works as expected. In the attached file I did not bother too place second body at the desired location, just in the general area.the Boolean in Part Design should work and apparently has to do with the Body objects having been translated.
This is pry explained in the docs PartDesign_BooleanEdit: user quote got mixed up so I removed the user data...Tool bodies adopt the local origin of the active Body. If the active Body is not located at (0,0,0) in the global coordinate system, the tool bodies' placement need to be relative to the active Body. It may be easier to leave the active Body's placement at the origin before applying the Boolean feature, then to change its placement.
And, I do know it is documented.
But, IMO this is at best confusing to users and at worst a failing of the Body conept.
Two solids that overlap anywhere in space should be expected to be used in a Boolean operation successfully. The fact that two Part workbench objects do work and two body objects that have been translated don't. Two Body objects that represent two solids would be expected to deal with the position in space by the casual observer.
I also, agree with @chrisb that, the Part Design paradigm would be to have the operations described by the OP, in a single body with subtractive operations.
Note, I'm just noting that this behavior is easy to see why it confusing behavior, until the global and Body coordinate relationships aren't understood.
Star Trek II: The Wrath of Khan: Spock: "...His pattern indicates two-dimensional thinking."
Re: Why can't I boolean?
My comment was mainly explanation of why the OP operation fails, since only your comment touched that. I think that this was intentionally made that way so when the body is translated but the tools is not this will not change the body. But now as with shapebinders and subshapebinders I think that there could be a reasonable feature request at least to implement something like support/relative for the boolean operation.
I just tried and using Shapebinder with Tracesupport=True of the whole body for the boolean works exactly as desired here:
- Attachments
-
- messed_up_kiss_shapebinder.FCStd
- (46.15 KiB) Downloaded 15 times
-
- Veteran
- Posts: 5513
- Joined: Thu Apr 05, 2018 1:53 am
Re: Why can't I boolean?
Using kisolre's shapebinder trick I was able to make this work with PDWrapper macro.
Workflow:
1) install pdwrapper macro
2) make he outer body active
3) select cut body, make blue shapebinder, trace support = True
4) select shapebinder, run macro
5) select subtractive type, follow additive loft
Workflow:
1) install pdwrapper macro
2) make he outer body active
3) select cut body, make blue shapebinder, trace support = True
4) select shapebinder, run macro
5) select subtractive type, follow additive loft
- Attachments
-
- messed_up_pdwrapper.FCStd
- (46.6 KiB) Downloaded 12 times