Anonymous | Login 2019-06-25 00:51 MSK Project: All Projects Community Open CASCADE
 My View | View Issues | Change Log | Roadmap

View Issue Details  Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0027075Community[OCCT] OCCT:Modeling Datapublic2016-01-13 11:532017-12-05 17:09
ReporterRoman Lygin
Assigned Tossv
PrioritynormalSeverityminor
StatusassignedResolutionopen
PlatformOSOS Version
Product Version[OCCT] 6.9.1
Target Version[OCCT] 7.4.0*Fixed in Version
Summary0027075: Geom_BSplineCurve cannot be evaluated at the end parameter
DescriptionA B-Spline curve of degree 2 has a range [0,1]. It has the following boundary knots with multiplicities:

1 : -0.0625 1
2 : 0 2
...
18 : 1 2
19 : 1.0625 2
and has 34 poles. The formula number_of_poles = sum_of_mults - degree - 1 is respected.
Given that boundary knots (-0.0625 and 1.0625) are not of multiplicity degree+1, the definition range is [0,1]. However the curve cannot be evaluated at parameter 1 - the value [-1#IND0,-1#IND0] (or perhaps just uninitialized value) is returned.
On the other hand, ::Segment(0,1) works correctly by removing the boundary poles. Thus, apparently there is some issue in evaluation process.

The curve comes from an IGES file where it has been specified as periodic (i.e. in the sending CAD system it was a periodic B-Spline). This seems to be reasonable as the curve essentially is a closed/periodic one. IGES stores all B-Splines using flat knots and meeting the formula above number_of_poles = sum_of_mults - degree - 1. For periodic B-Splines it just stores a flag but the arrays of knots/multiplicities/poles are not recomputed similar to OCC conventions.
Steps To Reproducerestore pcurve pc
2dcvalue pc 0 x y
dump x y #correct
2dcvalue pc 1 x y
dump x y #incorrect
TagsNo tags attached.
Test case number
Attached Files pcurve (1,507 bytes) 2016-01-13 11:53
iges-excerpt.igs (3,362 bytes) 2016-01-13 12:54

 Relationships

 Notes msv (developer) 2016-01-13 12:35 Dear Roman, You wrote: "IGES stores all B-Splines using flat knots and meeting the formula above number_of_poles = sum_of_mults - degree - 1. For periodic B-Splines it just stores a flag but the arrays of knots/multiplicities/poles are not recomputed similar to OCC conventions." Do you mean OCC IGES reader does this? Or IGES file already contains such definition? Could you attach the IGES file here? Roman Lygin (developer) 2016-01-13 12:54 Dear Mikhail, This is per IGES specification itself. The excerpt from the original file is enclosed. The point however is that the 'pcurve' corresponds to a real data that may come from outside or can be created in OCC. The issue is not about the OCC IGES reader.

 Issue History Date Modified Username Field Change 2016-01-13 11:53 Roman Lygin New Issue 2016-01-13 11:53 Roman Lygin Assigned To => msv 2016-01-13 11:53 Roman Lygin File Added: pcurve 2016-01-13 12:35 msv Note Added: 0049818 2016-01-13 12:35 msv Assigned To msv => Roman Lygin 2016-01-13 12:35 msv Status new => feedback 2016-01-13 12:54 Roman Lygin Note Added: 0049819 2016-01-13 12:54 Roman Lygin File Added: iges-excerpt.igs 2016-01-13 12:55 Roman Lygin Assigned To Roman Lygin => msv 2016-01-13 12:55 Roman Lygin Status feedback => assigned 2016-01-13 13:08 msv Assigned To msv => ssv 2016-10-25 17:00 msv Target Version 7.1.0 => 7.2.0 2017-07-20 15:30 msv Target Version 7.2.0 => 7.3.0 2017-12-05 17:09 msv Target Version 7.3.0 => 7.4.0*