View Issue Details

IDProjectCategoryView StatusLast Update
0002408PartBugpublic2018-09-25 12:11
Reportergreyltc Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionwon't fix 
PlatformLinuxOSArchOS Versionn/a
Summary0002408: .fuse is splitting edges it should not
Description.fuse is breaking up edges it should not. The example below illustrates this happening when I form a union between two overlapping circle shaped faces. It seems like it always breaks up arcs at the three o' clock position (@ rad =0=2pi). .oldfuse behaves as expected and does not do this.

I expect that when I form a union between two overlapping circular faces, the resulting shape should have exactly 2 edges (and 2 vertices). The following code shows that .fuse with .removeSplitter() gives me a shape with 4 edges, while .oldfuse gives me the expected 2 edges.
Steps To ReproduceRun the attached python script.
Additional InformationThe attached script's output is:

FreeCAD 0.16, Libs: 0.16R6226 (Git)
.fuse gives a union with 6 edges and 4 vertexes
.fuse with .removeSplitter() gives a union with 4 edges and 4 vertexes
.oldFuse gives a union with 2 edges and 2 vertexes

I've also attached two dxf files showing the result for .fuse and for .oldFuse.
Tags#pending, OCC 7.0, OCC Bug, upstream
FreeCAD Information

Activities

greyltc

2016-01-16 18:27

reporter  

fuseTest.zip (Attachment missing)

greyltc

2016-01-16 21:38

reporter   ~0006724

.cut shows the same issue, except there is no .oldCut for me to fall back on to get the intended result.

Kunda1

2017-01-30 01:21

administrator   ~0008097

Forum thread: https://forum.freecadweb.org/viewtopic.php?f=10&t=20349

normandc

2017-02-12 21:02

manager   ~0008279

Moved report from PartDesign to FreeCAD since it's related to Part instead, which has no dedicated project.

Kunda1

2018-02-05 16:50

administrator   ~0010921

@greyltc do you (miraculously) have the .zip file saved somewhere that it can be re-uploaded? We had a backup failure and lost many bugtracker attachments.

wmayer

2018-09-25 12:11

administrator   ~0011835

Last edited: 2018-09-25 12:11

As pointed out by DeepSOIC this is how OCCT has implemented it and there is no need to change this behaviour from our side.

The behaviour can be easily verified without the lost script:
* create two circles in Part wb and use shape builder to create faces
* move one of the face to make the circles overlap
* run boolean fuse and count the edges => 6

Btw, the oldFuse function gives an invalid result because it creates a compound with just the original faces but it doesn't do a real boolean operation. You can easily see this when hovering with the mouse over compound because you will observe "z-fighting" issues.

Issue History

Date Modified Username Field Change
2016-01-16 18:27 greyltc New Issue
2016-01-16 18:27 greyltc File Added: fuseTest.zip
2016-01-16 21:38 greyltc Note Added: 0006724
2017-01-30 01:21 Kunda1 Note Added: 0008097
2017-01-30 01:23 Kunda1 File Added: fuseTest.py
2017-01-30 01:24 Kunda1 File Deleted: fuseTest.py
2017-01-30 11:48 Kunda1 Tag Attached: OCC Bug
2017-01-30 11:48 Kunda1 Tag Attached: upstream
2017-01-30 11:48 Kunda1 Tag Attached: OCC 7.0
2017-02-12 21:01 normandc Project PartDesign => FreeCAD
2017-02-12 21:02 normandc Note Added: 0008279
2018-02-05 16:48 Kunda1 Project FreeCAD => Part
2018-02-05 16:50 Kunda1 Note Added: 0010921
2018-02-05 16:52 Kunda1 Tag Attached: #pending
2018-09-25 12:11 wmayer Status new => closed
2018-09-25 12:11 wmayer Resolution open => won't fix
2018-09-25 12:11 wmayer Note Added: 0011835
2018-09-25 12:11 wmayer Note Edited: 0011835