View Issue Details

IDProjectCategoryView StatusLast Update
0026487CommunityOCCT:Modeling Algorithmspublic2023-08-01 15:08
Reportersrlockley Assigned Tonbv 
Status assignedResolutionopen 
PlatformWindowsOSVC++ 2013 
Product Version6.9.0 
Target VersionUnscheduled 
Summary0026487: Very slow Boolean Cut of Prism and Half Space
DescriptionThe cutting between a half space and of a prism with a large number of faces is extremely slow, in the order of minutes on fast machines.
The prism is made of a polyline wire with a large number of linear segments that is extrude to approximate to infinite. Approx infinite has been selected as extruding the prism with a direction and generating a true infinite prism fails to complete at all.
Steps To Reproduce2 Brep files containing the Prism and the half space are uploaded. The prism is extruded to 2e8.
To see the failure load the pair and use BopCut of BopFuse.

The extrusion fails to complete at all in the latest version of draw (which has been built on the latest source when a cut operation is applied. Draw.exe was built on the pre-release of version 7.0 of the source.
Although this is an extreme case the performance of the boolean op is proportional to the number of sides and the length of the extrusion. Profiling indicates the problem lies in

 BOPAlgo_BuilderSolidCnt::Perform(myRunParallel, aVBS);



It is not being run in parallel
TagsNo tags attached.
Test case number

Attached Files

  • (56,944 bytes)
  • (3,964 bytes)



2015-07-27 20:23

reporter (56,944 bytes)


2015-07-27 20:55

reporter   ~0043607

This is an extreme case to help track the pproblem, I realise the line segments may look non-sensible, it is just to illustrate the problem, I have other cases where the wire is more sensible and still performance is slow.


2015-07-28 11:39

developer   ~0043616

I see no use in operation between two infinite objects. Usually infinite object is used to cut a finite object. E.g., half space is used to cut off a half of a finite object; or infinite prism is used to cut a hole from a finite object.
I am curious what such operation as fuse between half space and infinite prism can be useful for?
May be what are you going to create is worth to do using some other way?


2015-07-28 14:52

reporter (3,964 bytes)


2015-07-28 14:57

reporter   ~0043634

I have uploaded this contains two pairs of BReps file, these demonstrate a shape with curved surfaces being simply cut with another extruded shape that has a curved profile. If the extrusion of the second shape is 2e8 it takes a very long time (minutes) in the BOP operation, if it is 2e4 it works well. These files demonstrate the problem with curved shapes that have been built with a large extrusion and then used in a simple cutting (or fuse) operation. If the extrusion is 2e6 it will take a long time it seems that the time of the BOP operation is in some exponentially related to the extrusion depth.


2015-07-28 15:03

reporter   ~0043637

There is a use for building infinite or semi infinite bounded half spaces. This is commonly used in engineering to cut voids into elements. Please see the ISO standard, based on STEP, for a definition

In construction this is a very common form. I am aware there are other ways to construct and deal with this, but please see my last note, there is a problem in the BOP operations that is very real and introduced with the new methodology of 6.9. I am merely trying to help track down this problem with repeatable examples. I suspect this is related to my previous issue on cylinders which the team did a fantastic job of fixing


2015-07-28 15:35

reporter   ~0043642

Sorry I missed this but the first examples show a half space simply cutting a solid, I think I may have confused the issue by mentioning the semi-infinite prism this is just my problem I am trying to deal with.


2015-07-28 16:43

developer   ~0043648

Thanks for examples. We shall consider this issue when have time.


2015-08-13 15:51

reporter   ~0044090

Subsequent testing has shown other problems related to this issue and they have been raised. It might help if this was considered with them, there is a problem with half spaces, cylinders and the new boolean operations

Issue History

Date Modified Username Field Change
2015-07-27 20:23 srlockley New Issue
2015-07-27 20:23 srlockley Assigned To => msv
2015-07-27 20:23 srlockley File Added:
2015-07-27 20:55 srlockley Note Added: 0043607
2015-07-28 11:39 msv Note Added: 0043616
2015-07-28 11:39 msv Assigned To msv => srlockley
2015-07-28 11:39 msv Status new => feedback
2015-07-28 14:52 srlockley File Added:
2015-07-28 14:57 srlockley Note Added: 0043634
2015-07-28 15:03 srlockley Note Added: 0043637
2015-07-28 15:35 srlockley Note Added: 0043642
2015-07-28 16:43 msv Note Added: 0043648
2015-07-28 16:43 msv Assigned To srlockley => nbv
2015-07-28 16:43 msv Status feedback => assigned
2015-08-13 15:51 srlockley Note Added: 0044090
2015-08-19 12:51 abv Target Version => 7.1.0
2016-10-25 19:04 msv Target Version 7.1.0 => 7.2.0
2017-07-21 11:34 msv Target Version 7.2.0 => 7.3.0
2017-12-05 17:09 msv Target Version 7.3.0 => 7.4.0
2019-08-12 16:44 msv Target Version 7.4.0 => 7.5.0
2020-09-14 22:55 msv Target Version 7.5.0 => 7.6.0
2021-08-29 18:52 msv Target Version 7.6.0 => 7.7.0
2022-10-24 10:42 szy Target Version 7.7.0 => 7.8.0
2023-08-01 15:08 dpasukhi Target Version 7.8.0 => Unscheduled