DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0025956

Modeling Algorithms - Wrong result obtained by intersection algorithm.

Open CASCADEOCCT:Modeling Algorithmsassigned4 public notes

Search issues

Description

Wrong result obtained by intersection algorithm.

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.

Public activity

4 archived notes

Participants are labeled by their role within this record.

01Commenter 1
Dear Mikhail,

The result seems to be valid on the current MASTER.
02Commenter 2
Dear Nikolay, please create test case(s) for this bug.
03Commenter 3
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.

04Commenter 4
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).

Related records