Part::Compound / Compound: Links go out of the allowed scope

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
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!
vocx
Posts: 4604
Joined: Thu Oct 18, 2018 9:18 pm

Re: Part::Compound / Compound: Links go out of the allowed scope

Postby vocx » Tue Apr 23, 2019 4:21 am

iogui wrote:
Tue Apr 23, 2019 1:25 am
...

Right, I've followed your instructions and the message is not been printed anymore but when I do a check geometry analysis on the resulting compound there are lots of self intersect errors. You don't get those errors?
No problema!
FreeCAD_Part_compound_shapes.png
FreeCAD_Part_compound_shapes.png (51.57 KiB) Viewed 242 times
FreeCAD_Part_compound_check.png
FreeCAD_Part_compound_check.png (30.54 KiB) Viewed 242 times
Maybe there is something in your Preferences Editor that controls the precision of the calculations done, or the compound operation, and it is producing bad shapes.

The only thing I see is that you are using Ubuntu 16.04 and your Qt is a bit old. You should be using Qt5 by now.

Code: Select all

OS: Ubuntu 18.04.2 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.16093 (Git)
Build type: Release
Branch: releases/FreeCAD-0-18
Hash: 690774c0effe4fd7b8d2b5e2fb2b8c8d145e21ce
Python version: 2.7.15rc1
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)

Code: Select all

OS: Ubuntu 18.04.2 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.1.
Build type: Release
Python version: 3.6.7
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)
Always add the important information to your posts if you need help.
To support the documentation effort, and code development, your donation is appreciated: paypal.
User avatar
iogui
Posts: 95
Joined: Tue Mar 19, 2019 3:44 pm
Location: São Paulo
Contact:

Re: Part::Compound / Compound: Links go out of the allowed scope

Postby iogui » Tue Apr 23, 2019 5:32 am

vocx wrote:
Tue Apr 23, 2019 4:21 am
Maybe there is something in your Preferences Editor that controls the precision of the calculations done, or the compound operation, and it is producing bad shapes.
I have the flag RunBopCheck enabled and that's why I'm able to see those self intersection errors.

chrisb wrote:
Tue Apr 23, 2019 12:03 am
3) Are the geometry errors happening because of that coplanar / cotangent issues in Boolean operations? (those issues are been a torn on my side!)
no
I was able to get rid of those self-intersect errors from the check geometry by adding 0.01mm of space between all of the constituting parts of my module as you can see in the file below:
teste_compound_no_geometry_errors.FCStd
Files with no geometry errors
(95.19 KiB) Downloaded 8 times
In the file the model is perfectly working and all errors that I was having where corrected. The first error that was printing the message that is the title of this post was entirely my mistake as a newbie on FreeCAD (I thank @vocx for the help of on that! Your instructions was the help I needed here @vocx !) but I think that the self-intersect errors was indeed because of the coplanar faces issue that I was talking about. It was mentioned by @NormandC here:

https://forum.freecadweb.org/viewtopic. ... 451#p69466

But it is a post from 2014. An old bug.
Is it just me that have been having those difficulties with Boolean operations on freecad? (As it seems, the "Make compound" has Boolean operations behind the cenes, and I remember I've read somewhere about it)
Am I doing the things in the worst way? What am I doing wrong?... Or this error is just happening because of my version of Ubuntu been the outdated 16.04?
Be the change you want to see in the world. - Mahatma Gandhi
vocx
Posts: 4604
Joined: Thu Oct 18, 2018 9:18 pm

Re: Part::Compound / Compound: Links go out of the allowed scope

Postby vocx » Tue Apr 23, 2019 7:09 am

iogui wrote:
Tue Apr 23, 2019 5:32 am
...

I have the flag RunBopCheck enabled and that's why I'm able to see those self intersection errors.

...
the self-intersect errors was indeed because of the coplanar faces issue that I was talking about. It was mentioned by @NormandC here:

https://forum.freecadweb.org/viewtopic. ... 451#p69466

But it is a post from 2014. An old bug.
Is it just me that have been having those difficulties with Boolean operations on freecad? (As it seems, the "Make compound" has Boolean operations behind the cenes, and I remember I've read somewhere about it)
Am I doing the things in the worst way? What am I doing wrong?... Or this error is just happening because of my version of Ubuntu been the outdated 16.04?
Why does it matter that you get "BOPAlgo SelfIntersect" errors after running Part CheckGeometry? Does your model show any other problem? If not, who cares?

You get the errors if Tools -> Edit Parameters -> Preferences -> Mod -> Part -> CheckGeometry -> RunBOPCheck is set to true. However, by default this parameter is false, and thus it doesn't show any error.

A compound (Part MakeCompound) is not a boolean operation, it's just a collection of shapes. If you want to fuse the objects together then you use Part Union and then they will fuse together if they are touching. But if you don't want to fuse them together, then why does it matter that the individual pieces intersect each other? What do you intend to achieve?

If you just want to move all the bodies together, you could also put them inside a Std Part container. This object is a general container for shapes, which in the future will help you create assemblies. What you are doing is basically assembling different pieces together into a product and moving it together as one unit; you can do that with a Part Compound, but more generally also with a Std Part. Or you could try A2plus or Assembly3, which are external workbenches.

--------

If the error of self intersection is due to the OpenCascade (OCCT) libraries, as mentioned by Normand in that old post, then there is nothing to do; FreeCAD can't do anything unless OCCT fixes the problem. But again, there doesn't seem to be any problem. The "BOPAlgo SelfIntersect" errors that you get are more like warnings, as they don't cause any other problems.

It is sort of logical that the geometry kernel would report an issue with co-planar surfaces. If they are really co-planar, they would be occupying the same space, which is a physical impossibility, so the kernel just warns you about this.
Always add the important information to your posts if you need help.
To support the documentation effort, and code development, your donation is appreciated: paypal.
chrisb
Posts: 25681
Joined: Tue Mar 17, 2015 9:14 am

Re: Part::Compound / Compound: Links go out of the allowed scope

Postby chrisb » Tue Apr 23, 2019 8:46 am

iogui wrote:
Tue Apr 23, 2019 5:32 am
chrisb wrote: ↑
Tue Apr 23, 2019 1:03 am
3) Are the geometry errors happening because of that coplanar / cotangent issues in Boolean operations? (those issues are been a torn on my side!)
no
This answer was not correct, I had seen it in the light of the "links go out of allowed scope" questions, and those are not related to the BOPCheck errors. I have corrected my answer above.
User avatar
iogui
Posts: 95
Joined: Tue Mar 19, 2019 3:44 pm
Location: São Paulo
Contact:

Re: Part::Compound / Compound: Links go out of the allowed scope

Postby iogui » Tue Apr 23, 2019 5:31 pm

vocx wrote:
Tue Apr 23, 2019 7:09 am
Why does it matter that you get "BOPAlgo SelfIntersect" errors after running Part CheckGeometry? Does your model show any other problem? If not, who cares?
That is a fair point. I was trying to get rid of self-intersect errors because of past experiences where they were preventing me from been able to perform another Boolean operations. My feeling was: if check Geometry is displaying errors, that's bad and I have to fix it, otherwise it can break things in future constructions on my model.

vocx wrote:
Tue Apr 23, 2019 7:09 am
You get the errors if Tools -> Edit Parameters -> Preferences -> Mod -> Part -> CheckGeometry -> RunBOPCheck is set to true. However, by default this parameter is false, and thus it doesn't show any error.
Yes, as I've read from it's wiki page, the RunBOPCheck is not done by default just for performance issues. Is not that this is unnecessary. But I have a good machine so I was leaving it on because of my past experiences when things weren't working and I didn't have any idea of why they weren't working.

vocx wrote:
Tue Apr 23, 2019 7:09 am
A compound (Part MakeCompound) is not a boolean operation, it's just a collection of shapes. If you want to fuse the objects together then you use Part Union and then they will fuse together if they are touching. But if you don't want to fuse them together, then why does it matter that the individual pieces intersect each other? What do you intend to achieve?
All the forum topics that I've read seems to be indicating that Make Compound is the right operation for uniting objects that are meant to be together since they are just separate objects that may be together as if they were glued and that's exactly what I've trying to do. In fact, this model is a module of a cabinet so it will be constructed exactly in this way in the real world. It's different parts will be glued together either by using glue or screws.

vocx wrote:
Tue Apr 23, 2019 7:09 am
If you just want to move all the bodies together, you could also put them inside a Std Part container. This object is a general container for shapes, which in the future will help you create assemblies. What you are doing is basically assembling different pieces together into a product and moving it together as one unit; you can do that with a Part Compound, but more generally also with a Std Part.
What do you think is better for what I'm building, a compound or a Std Part container (this one I didn't know about till now)?
Reading Std Part wiki page now it seems to me that I should be using Std Part instead of Compound as it states:
"As an assembly container that groups objects to be manufactured separately then glued or screwed together, like a wooden table."

vocx wrote:
Tue Apr 23, 2019 7:09 am
Or you could try A2plus or Assembly3, which are external workbenches.
Yes, I intend to study those too. But when I open the Freecad list of available addons, Assemby 3 is not in the list, just Assembly 2 that I have already installed. What's the main difference between A2plus and Assembly 2 (or 3)?

vocx wrote:
Tue Apr 23, 2019 7:09 am
It is sort of logical that the geometry kernel would report an issue with co-planar surfaces. If they are really co-planar, they would be occupying the same space, which is a physical impossibility, so the kernel just warns you about this.
Yes, that's true. But what I'm really doing is testing use casses as a new FreeCAD user (that I really am) to know how likely one would adhere to FreeCAD to model furniture so that I know what features I should implement in a possibly new furniture workbench. I'm really trying to understand what are the pitfalls and what is the best approach to make FreeCAD attractive from a woodworker point of view.
And as it seems to me, I've managed to buried myself till the top of my head in some of those pitfalls! :lol:
A usual software used to design furniture is Sketchup and in it I've never had to deal with things like self intersect issues and that's important because from this kind of user point of view that is an impediment.
I'm not saying that FreeCAD should behave like Sketchup. In fact I believe FreeCAD has another strengths and it has to have it's own way to deal with those use cases. I'm just trying to identify it the better I can.

And of course, I want to finish my mom's kitchen cabinet model too! Although I could easily finish it in another software, I'm trying to use this opportunity to learn more about FreeCAD.
Last edited by iogui on Tue Apr 23, 2019 5:49 pm, edited 1 time in total.
Be the change you want to see in the world. - Mahatma Gandhi
User avatar
iogui
Posts: 95
Joined: Tue Mar 19, 2019 3:44 pm
Location: São Paulo
Contact:

Re: Part::Compound / Compound: Links go out of the allowed scope

Postby iogui » Tue Apr 23, 2019 5:34 pm

chrisb wrote:
Tue Apr 23, 2019 8:46 am
iogui wrote:
Tue Apr 23, 2019 5:32 am
chrisb wrote: ↑
Tue Apr 23, 2019 1:03 am
3) Are the geometry errors happening because of that coplanar / cotangent issues in Boolean operations? (those issues are been a torn on my side!)
no
This answer was not correct, I had seen it in the light of the "links go out of allowed scope" questions, and those are not related to the BOPCheck errors. I have corrected my answer above.
Oh, I'm sorry for that. When I entitled the post I was thinking that they were correlated errors. That was my mistake, please forgive me.
Be the change you want to see in the world. - Mahatma Gandhi
chrisb
Posts: 25681
Joined: Tue Mar 17, 2015 9:14 am

Re: Part::Compound / Compound: Links go out of the allowed scope

Postby chrisb » Tue Apr 23, 2019 6:19 pm

Assembly3 is not an external workbench, it is a complete branch of the FreeCAD program. It has more very interesting features like vastly improved topological naming handling (which I think is even more important than assembly). If you want to try it, look in the Assembly forum.

Your approach to omit all BOPCheck issues seems very sensible to me. If you wait until issues occur in later steps the effort is usually much higher to fix them.

@vocx: The point of view that coplanar issues show problems because they cannot share the same space is interesting. Can you elaborate on this? I mean if they overlap it should be worse, but usually it is better. I had always thought it was due to rounding issues that it is not possible which face is above the other, because sometimes it is one of them and sometimes it's the other, but that was a shot in the dark too.
User avatar
iogui
Posts: 95
Joined: Tue Mar 19, 2019 3:44 pm
Location: São Paulo
Contact:

Re: Part::Compound / Compound: Links go out of the allowed scope

Postby iogui » Tue Apr 23, 2019 6:30 pm

chrisb wrote:
Tue Apr 23, 2019 6:19 pm
I had always thought it was due to rounding issues that it is not possible which face is above the other, because sometimes it is one of them and sometimes it's the other, but that was a shot in the dark too.
If you give a look at the file I attached you will see that there are no rounded objects. I'm working just with sort of retangular shapes an even yet, I had many coplanar issues when analyzing the geometries for errors.
Be the change you want to see in the world. - Mahatma Gandhi
kisolre
Posts: 2257
Joined: Wed Nov 21, 2018 1:13 pm

Re: Part::Compound / Compound: Links go out of the allowed scope

Postby kisolre » Tue Apr 23, 2019 7:23 pm

Rounding of numbers, not your faces :) As if 12.00000000000000000000005 is rounded to 12.0000000000
User avatar
iogui
Posts: 95
Joined: Tue Mar 19, 2019 3:44 pm
Location: São Paulo
Contact:

Re: Part::Compound / Compound: Links go out of the allowed scope

Postby iogui » Tue Apr 23, 2019 8:00 pm

kisolre wrote:
Tue Apr 23, 2019 7:23 pm
Rounding of numbers, not your faces :) As if 12.00000000000000000000005 is rounded to 12.0000000000
Oh... Sorry... my bad! :lol: :lol: :lol:
Be the change you want to see in the world. - Mahatma Gandhi