View Issue Details

IDProjectCategoryView StatusLast Update
0026563CommunityOCCT:Modeling Algorithmspublic2017-08-14 18:04
Reportersrlockley Assigned Tobugmaster  
PrioritynormalSeveritymajor 
Status closedResolutionfixed 
PlatformWindowsOSVC++ 2013 
Product Version6.9.0 
Fixed in Version7.0.0 
Summary0026563: Boolean cut operation in new API multi-tool mode performs fuse instead of cut
DescriptionIn the new multi tool mode cutting the two shapes in the brep files results in a fuse.
The operation is affected by the value of myFuzzyValue. If this is set to 0. then the correct cut result is returned, any other positive value (inc 1e-50) causes a fuse operation to be returned. It appears the the PerformInternal that creates the paved data structure merges the tool and the argument together but the boolean logic does not remove the unwanted shapes.

Steps To ReproduceUsing the two bRep files and the following tcl code will demonstrate the issue

bclearobjects
bcleartools
baddobjects bodyshape
baddtools cutshape
bfuzzyvalue 1e-5
bapicut r 2

will result in a fuse operation not a cut
clear the bfuzzyvalue to 0.0 and repeat will show a correct cut, as does

bop bodyshape cutshape
bopcut r

the same happens in c++ code
TagsNo tags attached.
Test case numberbugs modalg_7 bug26563

Attached Files

  • FuseNotCut.zip (101,210 bytes)

Activities

srlockley

2015-08-15 19:51

reporter  

FuseNotCut.zip (101,210 bytes)

srlockley

2015-08-27 15:06

reporter   ~0044748

This problem is extremely serious when multiple cuts are applied to shapes. I am finding that if cuts are made with cutting tools that overlap in anyway, the algorithm is unstable. I have tried to work through the code and find what is causing this but it is beyond me I am afraid. I have lots of cases where the multi-tool algorithm returns the wrong result. They are all similar to the example uploaded here, but in an effort to help solve the problem, all I can offer is that it seems to be related to the order of the multiple operations and the precision settings of the shapes. A typical cause of failure is as follows,.... build a shape (typically a face) and set your required precision for each vertex, let OCC determine the precision for faces that are built using the normal extrusion algorithms. This will normally create shapes that make the Boolean operations fail, both with multiple tools and with single tools. Set the precision of all shapes in your Boolean argument to be the same as the vertices precision. Single Booleans work fine, but multiple tools that overlap fail. The most common cause of failure is that faces that should be in the resulting shape have been removed, or faces that should have been removed end up in the resulting shape. This indicates some problem with face sorting (in or out) and maybe precision. I hope this is useful.

apv

2017-08-14 18:04

tester   ~0069365

Dear BugMaster,

Problem described in issue is not reproduced on current state of OCCT.
Problem has been solved in OCCT7.0.0.

Issue History

Date Modified Username Field Change
2015-08-15 19:51 srlockley New Issue
2015-08-15 19:51 srlockley Assigned To => jgv
2015-08-15 19:51 srlockley File Added: FuseNotCut.zip
2015-08-17 12:47 jgv Assigned To jgv => emv
2015-08-27 15:06 srlockley Note Added: 0044748
2017-08-14 18:04 apv Test case number => bugs modalg_7 bug26563
2017-08-14 18:04 apv Note Added: 0069365
2017-08-14 18:04 apv Assigned To emv => bugmaster
2017-08-14 18:04 apv Status new => closed
2017-08-14 18:04 apv Resolution open => fixed
2017-08-14 18:04 apv Fixed in Version => 7.0.0