View Issue Details

IDProjectCategoryView StatusLast Update
0000648FreeCADBugpublic2012-04-10 15:49
Reporterwaschtl Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionnot fixable 
Fixed in Version0.13 
Summary0000648: Cutting nested areas from face of box results in missing face
DescriptionVersion: 0.13.0674 (Git)
Branch: master
Hash: 6a77635bdbb0fea476ab268234bea8d0cbe9506c
Installed from: ppa:freecad-maintainers/freecad-daily 0.13-git201203200319~oneiric1

I have attached a file demonstrating the bug in its most simple reproducible form.

I ran across this bug while working on a rather complex project. This simplification helped narrow down the source of the problem. Here's my take on it:

Steps to reproduce the problem (all measurements in HxLxW):
1 - Create a base box:
    pos 0x0x0 ; size 5x50x50.
2 - Create 4 long thin boxes, enclosing an area on the upper side of the first box:
    pos 1x1x4 ; size 1x48x1
    pos 1x48x4; size 1x48x1
    pos 1x2x4 ; size 1x1x46
    pos 48x2x4; size 1x1x46
3 - Create an inner box, within the enclosed area on the upper side of the first box:
    pos 9x9x4 ; size 1x32x32
4 - Make a union of all the smaller boxes (leave out the first).
5 - Make a cut of the first box with the fusion just created.
6 - Look carefully at the upper face of the composite object, you will see the lower face and the side faces through the gap between the depression from the flat inner box and the depression from the long thin enclosing boxes.

As far as I can tell, this happens when a composite shape is cut out of another shape where the composite shape consists of one shape that is completely surrounded (in 2 dimensions) by another shape and the distance between the two shapes is no greater than 7,66mm all around.

If you move the flat inner box away from the enclosing long thin boxes to a distance of 7,67mm (pos 9,67x9x4), the missing face will spontaneously appear. At a distance of 7.66mm, however, it does not.
TagsNo tags attached.
FreeCAD Information

Activities

2012-03-21 20:26

 

debug-missing-face.FCStd (Attachment missing)

normandc

2012-03-22 23:09

manager   ~0001805

I can think of two other reasons why this could fail:

1 - the fused objects top faces are coplanar with Box's top face. Raise the Z position of the Fuse object by 0.01 and the Cut succeeds. It's always better to have the cutting shape exceed the object that is cut, this avoids such problems.

2 - the Fuse group includes Box005 which is not in contact with the others. I tried this: delete the Cut and Fusion objects, then fuse only Box001 to 004. Make a first cut with this new Fusion group: it works. Then do a second cut on the Fusion object with Box005: it works.

The FreeCAD developers have said many times that Open CASCADE, the underlying geometric kernel at the heart of FreeCAD, is notoriously poor treating boolean operations. It doesn't take much to derail them, and I don't know if they have much control over this.

On the other hand, is there any specific reason why you're using the Part workbench to make this? The PartDesign Workbench (along with Sketcher) works very well now, and has very rarely such problems with cuts. It's a lot more versatile than doing constructive solid geometry (primitives & booleans), and the model is easier to edit afterwards.

I could post your box made in PartDesign if you want to check it out, but it may not be appropriate for this bug report.

wmayer

2012-04-10 15:48

administrator   ~0001921

OCC is very sensitive to coplanar faces. If you set the Height of the inner boxes (Box001-Box005) to 1.1mm then everything works fine.

Issue History

Date Modified Username Field Change
2012-03-21 20:26 waschtl New Issue
2012-03-21 20:26 waschtl File Added: debug-missing-face.FCStd
2012-03-22 23:09 normandc Note Added: 0001805
2012-04-10 15:48 wmayer Note Added: 0001921
2012-04-10 15:49 wmayer Status new => closed
2012-04-10 15:49 wmayer Resolution open => not fixable
2012-04-10 15:49 wmayer Fixed in Version => 0.13