View Issue Details

IDProjectCategoryView StatusLast Update
0026597Open CASCADEOCCT:Data Exchangepublic2023-08-01 15:08
ReporterabvAssigned Todpasukhi  
PrioritynormalSeverityminor 
Status newResolutionopen 
Product Version6.9.1 
Target VersionUnscheduled 
Summary0026597: Data Exchange - Internal exceptions in test de step_3 F1
DescriptionTest de step_3 F1 produces (internally handled) exceptions of two kinds:

1. On loopback (reading back written STEP file): 15 exceptions on translation of B-Spline curves, raised in constructor of Geom_BsplineCurve (see function CheckCurveData in Geom_BsplineCurve.cxx). This produces messages like this in translation log:

StepToTopoDS, GeometricSet, elem 3126 of 7121: exception

The immediate cause seems to be that B-Spline with degree 3 has multiplicities of all knots 4, while only 3 is allowed.

Two corrections seem necessary:

a) Investigate and eliminate reason of producing bad B-Spline data (most likely on writing). The situation similar to 0025971 is suspected.

b) Revise the code that handles this and similar exceptions to ensure that error messages are not output to console as it is now (unless macro OCCT_DEBUG is defined), but recorded in translation statistics (tpstat).

2. Exception in BRepLib_MakeEdge, due to error status set in method Init():

 myError = BRepLib_DifferentPointsOnClosedCurve;

The reason is that check for edge closure is done twice (by comparing its points taken from curve): in this method Init(), and in top-level method Init() that calls this one. Though the same points are taken from the curve, and the same tolerance is used for comparison, the results are different due to numeric instability, and the test passes in one place but not in the other (difference is very close to precision used, 1e-7; greater on one test and less on the other). Note that tests are not consistent: one uses < and the other <=, however this is not the reason of error.

Two changes are necessary:

a) Revise implementation of BRepLib_MakeEdge to have test done only once.
b) Correct spelling of error messages: "exeption" -> "exception"

The problem has been detected while checking regressions on branch CR0-OCCT691-3, built with VC++ 10, 64-bit mode (both Debug and Release). Problem 2 cannot be reproduced neither in OCCT master (7.0.0.dev) nor on previous versions (up to 6.9.0).
Steps To ReproduceRun test de step_3 F1 under debugger with exception handling enabled
TagsNo tags attached.
Test case numberde step_3 F1

Activities

mkv

2017-08-10 19:34

tester   ~0069295

Problem described in issue is reproduced on current state of OCCT.

Issue History

Date Modified Username Field Change
2015-08-25 10:04 abv New Issue
2015-08-25 10:04 abv Assigned To => gka
2016-10-26 12:05 gka Target Version 7.1.0 => 7.2.0
2017-07-27 09:33 abv Target Version 7.2.0 => 7.4.0
2017-08-10 19:34 mkv Test case number => de step_3 F1
2017-08-10 19:34 mkv Note Added: 0069295
2019-09-04 13:04 abv Target Version 7.4.0 => 7.5.0
2020-10-02 21:42 abv Target Version 7.5.0 => 7.6.0
2020-11-23 21:12 gka Assigned To gka => dpasukhi
2020-12-02 15:14 kgv Product Version => 6.9.1
2020-12-02 15:14 kgv Summary Internal exceptions in test de step_3 F1 => Data Exchange - Internal exceptions in test de step_3 F1
2021-10-07 14:52 szy Target Version 7.6.0 => 7.7.0
2022-10-24 10:39 szy Target Version 7.7.0 => 7.8.0
2023-08-01 15:08 dpasukhi Target Version 7.8.0 => Unscheduled