View Issue Details

IDProjectCategoryView StatusLast Update
0026486CommunityOCCT:Modeling Algorithmspublic2015-08-19 12:42
ReporterPawel Assigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionno change required 
PlatformWindowsOSVC++ 2012 
Product Version6.9.0 
Summary0026486: BRepAlgoAPI_Cut: unexpected result
DescriptionThis issue was mentioned here: http://dev.opencascade.org/index.php?q=node/1091#comment-604

I want to find the point where a rectangular plane intersects an edge. My first choice was to use the BOP Common operation but it gave me no result.

Finally, I used BOP Cut operation, which cuts one part of the edge and I can extract the coordinates of one of the end of the remaining curve in order to get the intersection point. The interesting thing is that I need to use the old BOP (BRepAlgo_Cut) to cut the edge using the plane.

The new BOP (BRepAlgoAPI_Cut) gives me the original curve split into two sections and merged at the intersection point.
Steps To Reproduce#result is the original cuve split and merged at the intersection point
restore edge.brep s1
restore rect.brep s2
checkshape s1
checkshape s2
bop s1 s2
bopcut result
checkshape result
vinit
vdisplay result
vsetdispmode result 1
vdisplay s2
vsetdispmode s2 1
vfit

#the old BOP cuts off a part of the edge
pload ALL
restore edge.brep s1
restore rect.brep s2
checkshape s1
checkshape s2
cut result s1 s2
checkshape result
vinit
vdisplay result
vsetdispmode result 1
vdisplay s2
vsetdispmode s2 1
vfit
TagsNo tags attached.
Test case number

Attached Files

Activities

Pawel

2015-07-27 17:23

developer  

edge.brep (4,336 bytes)

Pawel

2015-07-27 17:23

developer  

rect.brep (1,115 bytes)

msv

2015-07-28 09:58

developer   ~0043608

The new Boolean operation algorithm works more consistently regarding to type of operands. Please study the documentation on it (user manual).
The shape rect.brep is of type face. It is a surface object and cannot cut material from the other object more than on its width, which is 0, therefore Cut operation cuts the edge on 2 parts in the point of intersection.
Another operation you can use to get the section point is Section, so the command
   bsection r s1 s2
will put in the result the vertex containing the point of intersection.
If you still want to use BOP as in old manner, by cutting off a part of edge that is behind the face you should construct half space object from the face:
   halfspace h s2 50 50 0
Then the following operation will give you the same result as old BOP with original face:
   bcut r s1 h

Pawel

2015-07-28 13:30

developer   ~0043626

Dear msv,

yes, you're right the section operation works as expected. I suspect, at the time the workaround with the old BOP was created (OCCT 6.5 or 6.6 if I recall correctly), the section (new BOP) might not have worked correctly.

Please close the issue.

Issue History

Date Modified Username Field Change
2015-07-27 17:23 Pawel New Issue
2015-07-27 17:23 Pawel Assigned To => msv
2015-07-27 17:23 Pawel File Added: edge.brep
2015-07-27 17:23 Pawel File Added: rect.brep
2015-07-28 09:58 msv Note Added: 0043608
2015-07-28 09:58 msv Assigned To msv => Pawel
2015-07-28 09:58 msv Status new => feedback
2015-07-28 13:30 Pawel Note Added: 0043626
2015-07-28 13:30 Pawel Assigned To Pawel => msv
2015-07-28 13:30 Pawel Status feedback => resolved
2015-07-28 16:15 msv Assigned To msv => bugmaster
2015-07-28 16:15 msv Status resolved => reviewed
2015-07-30 11:25 bugmaster Status reviewed => closed
2015-07-30 11:25 bugmaster Resolution open => no change required
2015-08-19 12:42 abv Target Version 7.0.0 =>