View Issue Details

IDProjectCategoryView StatusLast Update
0022910CommunityOCCT:Modeling Datapublic2012-03-29 17:26
ReporterRoman Lygin Assigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
PlatformAOSL 
Product Version6.5.2 
Target Version6.5.3Fixed in Version6.5.3 
Summary0022910: Failure to compute iso-line for NURBS surface
Descriptionhttp://www.opencascade.org/org/forum/thread_22600/

DRAW reproducer:
> pload MODELING
> restore s.rle s
> uiso u s 0.5
An exception was caught 005656AC : Standard_ConstructionError: Geom_BSplineCurve

** Exception ** 005656AC : Standard_ConstructionError: Geom_BSplineCurve


For creating a B-Spline curve the negative weights are supplied what causes an exception.
Tested on OCC 6.5.0 and 6.5.1, Windows, 32 bit.
Also reproduced on 6.5.2
TagsNo tags attached.
Test case numberchl 934 P4

Attached Files

  • surf.zip (4,257 bytes)
  • GeomLib_Test.zip (6,564 bytes)
  • P2 (512 bytes)
  • P4 (542 bytes)

Activities

Roman Lygin

2012-01-17 17:56

developer  

surf.zip (4,257 bytes)

Roman Lygin

2012-01-17 21:04

developer   ~0019161

Please put off analysis of this issue. This can be not a bug as U-range is [1.8,2.8], i.e 0.5 is out of that. The problem comes from BRepMesh which is called from Visualization. So, the problem can be upstream.

Roman Lygin

2012-01-17 21:45

developer   ~0019162

Here is a more correct reproducer:
> pload MODELING
> restore s.rle s
> mkface f s
> incmesh f 0.0038476968063336017
# the latter is similar to visualization in shading :
#> vinit
#> vdisplay f
#> vsetdispmode f 1

The problem is in GeomLib::NormEstim() in line 2404:
Instead of:
    Standard_Real par = .5*(bid2-bid1);
it must be:
    Standard_Real par = .5*(bid2+bid1);
to compute average parameter.

With this fix everything works OK.

The surface has a singularity and this is why the buggy code branch in this function is different from one which works most of the time.

Please kindly verify and integrate.

abv

2012-01-19 20:43

manager   ~0019188

The fix is put to branch OCC22910, please review

Roman Lygin

2012-01-19 21:24

developer  

GeomLib_Test.zip (6,564 bytes)

Roman Lygin

2012-01-19 21:25

developer   ~0019190

For C++ (QtTestFramework-based) regression test see GeomLib_Test.zip

jgv

2012-01-20 16:53

developer   ~0019207

No remarks

aan

2012-01-27 12:57

tester   ~0019284

Last edited: 2012-01-27 13:07

Dear BugMaster,

The fix resolved the problem described in the second post of Roman Lygin. The main problem still unresolved. The exception rises when try to preform uiso command.

I have wrote tests chl 934 P2, which reproduce steps described in a main description - it's Failed.
and test chl 934 P4, which reproduce steps described in a second post - it's OK

Problem was reproduced on Linux platform.

aan

2012-01-27 12:58

tester  

P2 (512 bytes)

aan

2012-01-27 12:58

tester  

P4 (542 bytes)

Roman Lygin

2012-01-27 14:08

developer   ~0019285

You do NOT need to fix the first issue (uiso 0.5)! The root-cause is in the 2nd issue (wrong computation of an average parameter). With it fixed, you will never get 0.5 and hence be exposed to the first issue.

Therefore the P2 script above is just not required.

Thanks for sharing the non-regression test scripts, by the way! Very educative.

aan

2012-02-02 14:09

tester   ~0019358

Dear BugMaster,
Workbench KAS:dev:aan-OCC22910-occt from SVN branch http://svn/svn/occt/branches/OCC22910
(and aan-OCC22910-products from trunk) was successfully compiled on Linux and Windows platforms, and tested on Linux and Windows platforms.

Test for this fix is chl 934 P4. It's OK.

There are not regressions in aan-OCC22910-products regarding to KAS:dev:products-20120127-opt

See results in /QADisk/occttests/results/KAS/dev/aan-OCC22910-products_24012012/lin
See reference results in /QADisk/occttests/results/KAS/dev/products-20120120-opt_20012012/lin
See test cases in /QADisk/occttests/tests/ED
N.B. In order to launch testing case you can make use the following instructions
http://doc/doku.php?id=occt:certification

bugmaster

2012-02-03 15:43

administrator   ~0019383

Integrated into trunk of occt repository

Date: 2012-02-03 15:29:01 +0400 (Fri, 03 Feb 2012)
New Revision: 10295

Modified:
   trunk/src/GeomLib/GeomLib.cxx

Related Changesets

occt: master 03976b37

2012-02-03 11:29:01

Roman Lygin, ABV


Committer: bugmaster Details Diff
0022910: Failure to compute iso-line for NURBS surface Affected Issues
0022910
mod - src/GeomLib/GeomLib.cxx Diff File

Issue History

Date Modified Username Field Change
2012-01-17 17:56 Roman Lygin New Issue
2012-01-17 17:56 Roman Lygin Assigned To => jgv
2012-01-17 17:56 Roman Lygin File Added: surf.zip
2012-01-17 21:04 Roman Lygin Note Added: 0019161
2012-01-17 21:45 Roman Lygin Note Added: 0019162
2012-01-19 20:43 abv Note Added: 0019188
2012-01-19 20:43 abv Status new => resolved
2012-01-19 21:24 Roman Lygin File Added: GeomLib_Test.zip
2012-01-19 21:25 Roman Lygin Note Added: 0019190
2012-01-20 16:53 jgv Note Added: 0019207
2012-01-20 16:53 jgv Status resolved => reviewed
2012-01-27 12:57 aan Note Added: 0019284
2012-01-27 12:58 aan File Added: P2
2012-01-27 12:58 aan File Added: P4
2012-01-27 12:58 aan Assigned To jgv => abv
2012-01-27 12:58 aan Status reviewed => assigned
2012-01-27 13:07 bugmaster Note Edited: 0019284
2012-01-27 14:08 Roman Lygin Note Added: 0019285
2012-01-27 15:57 aan Test case number => chl 934 P4
2012-02-02 14:09 aan Note Added: 0019358
2012-02-02 14:09 aan Status assigned => feedback
2012-02-02 14:10 aan Status feedback => reviewed
2012-02-02 14:10 aan Status reviewed => tested
2012-02-03 14:04 bugmaster Target Version => 6.5.3
2012-02-03 15:43 bugmaster Note Added: 0019383
2012-02-03 15:43 bugmaster Status tested => verified
2012-02-03 15:43 bugmaster Resolution open => fixed
2012-02-03 15:43 bugmaster Assigned To abv => Roman Lygin
2012-03-29 17:26 bugmaster Changeset attached => occt master 03976b37