View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0026487||Community||OCCT:Modeling Algorithms||public||2015-07-27 20:23||2021-08-29 18:52|
|Summary||0026487: Very slow Boolean Cut of Prism and Half Space|
|Description||The 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 Reproduce||2 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
It is not being run in parallel
|Tags||No tags attached.|
|Test case number|
HalfSpace.zip (56,944 bytes)
||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.|
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?
Curves.zip (3,964 bytes)
||I have uploaded curves.zip 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.|
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 http://www.buildingsmart-tech.org/ifc/IFC2x3/TC1/html/index.htm
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
||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.|
||Thanks for examples. We shall consider this issue when have time.|
||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|
|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: HalfSpace.zip|
|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: Curves.zip|
|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|