
Mon, 06/29/2009 - 23:50
Hello,
I am trying to create a BSpline Surface from its definition data (e.g.: poles, weights, knots, mults, etc...) which I extract from a STEP file via a different library (not OpenCASCADE).
Every time the input data refers to a PERIODIC and RATIONAL BSpline Surface, an exception is raised telling me that the input parameters are wrong (Construction_Error). More specifically, it complains about the Multiplicies table (which has a value > degree).
The header of the class Geom_BSplineSurface describes how to create the tables of KNOTS and MULTIPLICIES for the NON-PERIODIC case. However, for the PERIODIC surfaces it just says that "the data structure tables for a periodic BSpline surface are more complex than those of a non-periodic one".
Unfortunately, this description does not clarify the things.
Does anyone have an idea on how the input data should be organized?
PS: Maybe that's not the most appropriate approach, but I'm actually depending on that external library to get the needed data for surface creation...
Thanks a lot in advance.
Best regards,
Fernando
Tue, 06/30/2009 - 22:22
Hi Fernando,
below a couple of observations on periodic BSpline curves. However, they should be applicable for surfaces also.
Remember, for each spline you have to satisfy the equation: m = n + p + 1, where
m + 1 is the number of the knots (each knot counted separately, no multiplicity)
n + 1 is the number of control points
p is the curve degree
The OCC documentation says (for Geom_BSplieCurve):
Knot(i+k) = Knot(i) + period
Pole(i+p) = Pole(i)
so you have to exclude the repeating control point from the description of the spline and the 'redundant' knots. Then it will work.
I hope this clarifies a bit. This has to be applicable for surfaces too.
If you need an example:
- download Total Engineer: http://www.tes-cax.de/index-en/download.html
- install and run the scripts: 'cs_script_add_curves.cs' or 'cs_script_add_shapes.cs'
- in the TopologyExplorer pick a sphere or a circle -> right-click -> Convert to Nurbs
- in the PropertiesExplorer you can 'see' the OCC structure of the spline curve/surface.
Hope this helps
Pawel