View Issue Details

IDProjectCategoryView StatusLast Update
0021594Open CASCADEOCCT:Modeling Algorithmspublic2012-01-10 16:14
Reporterabv Assigned Toabv  
Status closedResolutionfixed 
Fixed in Version6.4.0 
Summary0021594: BRepTools_Modifier increases tolerances of subshapes unreasonably
DescriptionThis problem has been discovered during testing improvement OCC21547 on test
case cfi/012/B1.

Class BRepTools_Modifier makes attempt to establish tolerances conforming with
OCCT shape validity rules (TVertex > TEdge > TFace) and propagates tolerances
of face to edge and from edge to vertex (when modified).

However, this is something not expected from such tool, and it does not provide
consistent result in general case, since each subshape is modified only once
(i.e. tolerance is propagated only on first occurrence of subshape).

This bug has been obviously introduced by incorrect fix of the bug OCC217.

Use attached shapes to test the problem:

Draw[1]> pload MODELING XSDRAW
Draw[2]> restore tcopy_bug a
Draw[3]> explode a f
a_1 a_2 a_3 a_4 a_5 a_6 a_7 a_8
Draw[9]> tole a_3
Tolerance MAX=0.00494180686347303 AVG=0.0020640261414155711
FACE : MAX=0.00494180686347303 AVG=0.00494180686347303
EDGE : MAX=0.0011428890759694801 AVG=0.0010998015657969101
VERTEX : MAX=0.00221074508154073 AVG=0.0021864158389677197

Draw[10]> tcopy a_3 b
Draw[11]> tole b
Tolerance MAX=0.00494180686347303 AVG=0.00494180686347303
FACE : MAX=0.00494180686347303 AVG=0.00494180686347303
EDGE : MAX=0.00494180686347303 AVG=0.00494180686347303
VERTEX : MAX=0.00494180686347303 AVG=0.00494180686347303

===> Note the problem: tolerances of all subshapes became equal to tolerance of
face. At the same, this does not happen if complete shape is copied, since in
this case some edges are copied before the third face is processed:

Draw[12]> tcopy a b
Draw[14]> explode b f
b_1 b_2 b_3 b_4 b_5 b_6 b_7 b_8
Draw[15]> tolerance b_3
Tolerance MAX=0.00494180686347303 AVG=0.003255394114920688 MIN=0.002173309343679
FACE : MAX=0.00494180686347303 AVG=0.00494180686347303 MIN=0.0049418068634730
EDGE : MAX=0.00494180686347303 AVG=0.00357627597250688 MIN=0.0022107450815407
VERTEX : MAX=0.00494180686347303 AVG=0.0028841515925585497 MIN=0.00217330934367

====> Note that average tolerances of edges and vertices on face #3 is
different from the above case when this face is copied alone, i.e. some
tolerances have not been increased
Additional information
and documentation updates
Documentation remark, added by ABV 2010-08-03 14:14:39:

Inconsistent behavior of class BRepTools_Modifier which sometimes increased
tolerances of the result shapes has been fixed. Now this class does not change
tolerances. Note that this can uncover some problems with tolerances of shapes in
applications, which might have been previously hidden due to using this class.
TagsNo tags attached.
Test case number

Attached Files

  • tcopy_bug (79,065 bytes)
  • occ21594-abv-v1.tar.gz (7,657 bytes)


related to 0000217 closedapo Community nurbsconvert problem 


2010-02-19 19:23


tcopy_bug (79,065 bytes)

2010-02-24 16:05


occ21594-abv-v1.tar.gz (7,657 bytes)

Issue History

Date Modified Username Field Change
2010-02-19 19:23 abv OtherBugsDependingOnThis => 217
2010-02-19 19:23 abv BugsThisDependsOn => 21547
2010-04-01 14:21 bugmaster Assigned To bugmaster => abv
2010-04-01 14:21 bugmaster Status new => assigned
2010-04-07 11:18 bugmaster Status assigned => resolved
2010-04-23 19:58 mkv Status resolved => tested
2010-07-28 15:36 bugmaster Status tested => verified
2011-08-02 11:31 bugmaster Category OCCT:MOA => OCCT:Modeling Algorithms
2012-01-10 16:14 atp Description Updated
2012-01-10 16:14 atp Additional Information Updated