Archived issue #0025956
Modeling Algorithms - Wrong result obtained by intersection algorithm.
Description
Wrong result obtained by intersection algorithm.
See "Attachment 2 (PNG)" and Steps to Reproduce.
See "Attachment 2 (PNG)" and Steps to Reproduce.
Steps to reproduce
# Described result is obtained on OCCT 6.9.0 version
restore [locate_data_file bug25956-1.brep] b1
restore [locate_data_file bug25956-2.brep] b2
# 1.
mksurf s1 b1
mksurf s2 b2
trimv s1 s1 0. 11.
trimv s2 s2 0. 12.
intersect i s1 s2
#i_1 i_2 - WRONG must be at least three curves (see "Attachment 2 (PNG)").
# 2.
#Curves must be split in Point to split (see "Attachment 2 (PNG)").
bopcurves b1 b2 -2d
# 3 curve(s) found. - OK
#Tolerance Reached=0.0012107008879436209 is too huge. - WRONG
# 3.
bsection result b1 b2
nbs result
#Number of shapes in result
# VERTEX : 5
# EDGE : 5
# WIRE : 0
# FACE : 0
# SHELL : 0
# SOLID : 0
# COMPSOLID : 0
# COMPOUND : 1
# SHAPE : 11
Section result (case 3) seems to be valid.
restore [locate_data_file bug25956-1.brep] b1
restore [locate_data_file bug25956-2.brep] b2
# 1.
mksurf s1 b1
mksurf s2 b2
trimv s1 s1 0. 11.
trimv s2 s2 0. 12.
intersect i s1 s2
#i_1 i_2 - WRONG must be at least three curves (see "Attachment 2 (PNG)").
# 2.
#Curves must be split in Point to split (see "Attachment 2 (PNG)").
bopcurves b1 b2 -2d
# 3 curve(s) found. - OK
#Tolerance Reached=0.0012107008879436209 is too huge. - WRONG
# 3.
bsection result b1 b2
nbs result
#Number of shapes in result
# VERTEX : 5
# EDGE : 5
# WIRE : 0
# FACE : 0
# SHELL : 0
# SOLID : 0
# COMPSOLID : 0
# COMPOUND : 1
# SHAPE : 11
Section result (case 3) seems to be valid.
Public activity
4 archived notes
Participants are labeled by their role within this record.
Dear Mikhail,
The result seems to be valid on the current MASTER.
The result seems to be valid on the current MASTER.
Dear Nikolay, please create test case(s) for this bug.
On the current MASTER (IR-2015-12-04):
Problem # 1 is reproduced.
Behavior of bopcurves algorithm is as same as the behavior of intersect algorithm (returns two curves only). There is no point in splitting these two curves.
Tolerance Reached=3.[revision removed]-007 (on IR-2015-12-04). I.e. "huge tolerance"-problem has been fixed.
Additionally, I believe that there is no point in splitting intersection curves on intersection level. Intersection algorithm must return complete curves, which should be split by high-level algorithms (if it is necessary). On OCCT 6.9.0 this conception works well.
Problem # 1 is reproduced.
Behavior of bopcurves algorithm is as same as the behavior of intersect algorithm (returns two curves only). There is no point in splitting these two curves.
Tolerance Reached=3.[revision removed]-007 (on IR-2015-12-04). I.e. "huge tolerance"-problem has been fixed.
Additionally, I believe that there is no point in splitting intersection curves on intersection level. Intersection algorithm must return complete curves, which should be split by high-level algorithms (if it is necessary). On OCCT 6.9.0 this conception works well.
In short, we have the following problems to solve:
- Intersection of surfaces must return 3 curves (including the touching curve between the cone and the cylinder).
- bopcurves must return 3 curves.
- bsection must return compound of 5 edges (3 curves, 2 of which are splitting each other).
- Intersection of surfaces must return 3 curves (including the touching curve between the cone and the cylinder).
- bopcurves must return 3 curves.
- bsection must return compound of 5 edges (3 curves, 2 of which are splitting each other).
Related records