View Issue Details

IDProjectCategoryView StatusLast Update
0028711CommunityOCCT:Modeling Algorithmspublic2017-05-12 14:57
ReporterFlorian Schumacher Assigned Tobugmaster  
PrioritynormalSeveritymajor 
Status closedResolutionwon't fix 
PlatformWindowsOSVC++ 2015 
Product Version7.1.0 
Summary0028711: Boolean cut does not modify with second operand being a "bounded half-space" ( = common of half-space and semi-infinite Prism)
DescriptionAs a second operand for boolean cut operations, I need to use a so-called "bounded half space", which is the result of a boolean common operation of a half-space with a semi-infinite prism having extrusion direction orthogonal to its base face. Thereby, such a bounded half-space is itself a semi-infinte prism potentially having a non-orthogonal extrusion direction and a base face different from the one of the first (orthogonally extruded) prism.

Realizing such a bounded half-space in OpenCascade by a boolean common operation of a half-space with a semi-infinite prism, however, results in a non-modifying cut operation (with second operand of the cut being such a bounded half-space).

Constructing in an analogous way a "pseudo" bounded half-space using a finite (sufficiently large) extrusion of the prism instead of a semi-infinite, on the other hand, works as expected in the boolean cut operation.

Please see the minimum working example provided in the attached .cpp code file (to which required includes should be added).

Furthermore, I tested the boolean cut operation with more simple operands: using a (non-bounded) half-space as a second operand works as expected, as well as using a semi-infinite prism having a base face cutting through the first-operand shape (these tests were also done with the objects as in the provided code example, but are not visible in the code file by commented code blocks or something).
Steps To ReproducePlease see the minimum working example provided in the attached .cpp code file (to which required includes should be added).

###############
# Draw script follows

plane pl 0 0 0.5 0 0 1
mkface f pl
eval halfspace hs f 0 0 1.5
polyline w -2 -2 -1 2 -2 -1 2 2 -1 -2 2 -1 -2 -2 -1
mkplane bf w
prism pr bf 0 0 1 seminf
# with the following command prism is finite and the result is OK
#prism pr bf 0 0 100
bcommon bhs hs pr
polyline w1 -1 -1 0 1 -1 0 1 1 0 -1 1 0 -1 -1 0
mkplane f1 w1
prism so f1 0 0 1
bcut cr so bhs
checkprops cr -v 2

Additional information
and documentation updates
According to the severity table at https://dev.opencascade.org/doc/overview/html/occt_dev_guides__contribution_workflow.html , I chose major in accordance to
"Incorrect operation of a function on a particular dataset".
Please adjust severity if required.
TagsNo tags attached.
Test case number

Attached Files

Activities

Florian Schumacher

2017-05-03 12:27

reporter  

msv

2017-05-11 17:14

developer   ~0065845

Boolean operations algorithm was targeted to build faces bounded by finite and closed wires. In the given example the result of common between two infinite shapes must be constructed with faces bounded by open infinite wires. The algorithm cannot build such result, and therefore it returns empty shape.

Nothing wrong with the algorithm of creation of semi-infinite prism, it builds right semi-infinite prism. The whole scenario is faulty just due to limitation of Boolean algorithm.

msv

2017-05-11 17:16

developer   ~0065846

Dear bugmaster, this bug is not fixable. Please consider to close it.

Issue History

Date Modified Username Field Change
2017-05-03 12:27 Florian Schumacher New Issue
2017-05-03 12:27 Florian Schumacher Assigned To => msv
2017-05-03 12:27 Florian Schumacher File Added: bounded_half_space_min_working_example.cpp
2017-05-11 17:07 msv Steps to Reproduce Updated
2017-05-11 17:14 msv Note Added: 0065845
2017-05-11 17:16 msv Note Added: 0065846
2017-05-11 17:16 msv Assigned To msv => bugmaster
2017-05-11 17:16 msv Status new => feedback
2017-05-11 17:16 msv Resolution open => won't fix
2017-05-12 14:57 bugmaster Status feedback => closed