MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0023436Community[OCCT] OCCT:Modeling Algorithmspublic2012-09-17 19:252013-04-29 15:23
Reportermartinsiggel 
Assigned Tojgv 
PrioritynormalSeveritycrash 
StatusclosedResolutionfixed 
PlatformAOSLOS VersionL
Product Version[OCCT] 6.5.3 
Target Version[OCCT] 6.6.0Fixed in Version[OCCT] 6.6.0 
Summary0023436: BRepOffsetAPI_ThruSections crashes when lofting through identical profiles
DescriptionBRepOffsetAPI_ThruSections::build crashes, when trying to loft through 3 similar profiles. An exception StandardConstructionError is thrown from Geom_BSplineSurface::InsertUKnots.

The profiles are circles or ellipses, generated with GeomAPI_Interpolate through a set of points. All 3 profiles are the identical, but shifted in z-Direction. Strangely, the crash only occurs for a specific number of points per circle. For this minimal example, these numbers are 7,13,14,19,22 ... Also, the crash only occurs, if ruled = false (No ruled surface).

Please see attached the source code for the example, the generated brep file with the profiles and a core dump + the executable.

Here, the short version of the code:

int numPoints =14;

TopoDS_Wire w1 = makeWire(makeEllipse(1.,1.,0.,numPoints, 0., false, true));
TopoDS_Wire w2 = makeWire(makeEllipse(1.,1.,3.,numPoints, 0., false, true));
TopoDS_Wire w3 = makeWire(makeEllipse(1.,1.,6.,numPoints, 0., false, true));

BRepOffsetAPI_ThruSections generator(Standard_True, Standard_False, Precision::Confusion());
generator.AddWire(w1);
generator.AddWire(w2);
generator.AddWire(w3);

generator.CheckCompatibility(Standard_False);

// this triggers the crash
generator.Build();

Please see the attached code for makeEllipse and makeWire.

Interestingly, the code doesn't crash, if one circle is slightly changed, i.e. if we set one ellipse axis parameter to e.g. 1.1.

This bug is probably similar to 0022981.
Steps To ReproducePlease download the attached example.
To reproduce the issue the attached shapes (myloft.brep) can be used.
restore myloft.brep s
explo s
## s_1 s_2 s_3 - sections;
thrusections r 0 0 s_1 s_2 s_3
==> Exception at Geom_BSplineSurface::InsertUKnots
At the same time if requested ruled surface (thrusections r 0 1 ...) or
use only two any sections like:
thrusections r 0 0 s_1 s_2
thrusections r 0 0 s_1 s_3
thrusections r 0 0 s_2 s_3

the problem is not reproducible (no exception).

TagsNo tags attached.
Test case numberbugs modalg(006) bug23436
Attached Filesgz file icon OCC-LoftTest.tar.gz (784,561 bytes) 2012-09-17 19:25
? file icon myloft.brep (3,851 bytes) 2012-10-31 15:39

- Relationships
related to 0022981closedapn BRepOffsetAPI_ThruSections fails to build a surface from closed wires 

-  Notes
(0022033)
szy (administrator)
2012-10-31 15:44

Attached sections (myloft.brep)to be used to reproduce the issue.
The algorithm raises exception:
An exception was caught 00977860 : Standard_ConstructionError: Geom_BSplineSurface::InsertUKnots
** Exception ** 00977860 : Standard_ConstructionError: Geom_BSplineSurface::InsertUKnots

That is similar to the case 22981.
(0023216)
jgv (developer)
2013-01-31 11:02

The branch CR23436 is ready for reviewing.
(0023217)
pkv (developer)
2013-01-31 12:27

reviewed
(0023236)
mkv (tester)
2013-02-01 15:37

Dear BugMaster,

Branch CR23436 (and products from GIT master) was compiled on Linux and Windows platforms and tested.

Number of compiler warnings:

occt component :
Linux: 3 (3 on master)
Windows: 57 (57 on master)

products component :
Linux: 9 (9 on master)
Windows: 50 (50 on master)

Regressions:
No regressions

Improvements:
No improvements

Testing cases:
bugs modalg(006) bug23436 - OK

Testing on Linux:
Total MEMORY difference: 234605272 / 234072044
Total CPU difference: 10526.44000000021 / 9836.770000000413


Testing on Windows:
Total MEMORY difference: 331568696 / 330854964
Total CPU difference: 12352.046875 / 12467.984375

There are not serious differences in images found by testdiff.

- Related Changesets
occt: master aadab519
Timestamp: 2013-02-01 13:22:26
Author: jgv
Details ] Diff ]
0023436: BRepOffsetAPI_ThruSections crashes when lofting through identical profiles
Adding of test case
mod - src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.cxx Diff ] File ]
add - tests/bugs/modalg/bug23436 Diff ] File ]

- Issue History
Date Modified Username Field Change
2012-09-17 19:25 martinsiggel New Issue
2012-09-17 19:25 martinsiggel Assigned To => jgv
2012-09-17 19:25 martinsiggel File Added: OCC-LoftTest.tar.gz
2012-10-31 15:39 szy File Added: myloft.brep
2012-10-31 15:44 szy Note Added: 0022033
2012-10-31 15:50 szy Steps to Reproduce Updated View Revisions
2012-10-31 16:03 szy Status new => assigned
2013-01-31 11:02 jgv Note Added: 0023216
2013-01-31 11:02 jgv Status assigned => resolved
2013-01-31 11:02 jgv Assigned To jgv => pkv
2013-01-31 12:27 pkv Status resolved => reviewed
2013-01-31 12:27 pkv Note Added: 0023217
2013-01-31 12:28 pkv Assigned To pkv => mkv
2013-02-01 15:37 mkv Note Added: 0023236
2013-02-01 15:37 mkv Test case number => bugs modalg(006) bug23436
2013-02-01 15:37 mkv Assigned To mkv => bugmaster
2013-02-01 15:37 mkv Status reviewed => tested
2013-02-04 14:47 jgv Changeset attached => occt master aadab519
2013-02-04 14:47 jgv Assigned To bugmaster => jgv
2013-02-04 14:47 jgv Status tested => verified
2013-02-04 14:47 jgv Resolution open => fixed
2013-02-20 10:19 bugmaster Target Version => 6.6.0
2013-02-28 15:16 abv Relationship added related to 0022981
2013-04-23 13:35 user533 Status verified => closed
2013-04-29 15:23 user533 Fixed in Version => 6.6.0


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker