Describes a B-Spline curve in 3D space Returns the polynomial degree of this B-Spline curve. Returns the value of the maximum polynomial degree of any B-Spline curve curve. This value is 25. Returns the number of poles of this B-Spline curve. Returns the number of knots of this B-Spline curve. Returns the start point of this B-Spline curve. Returns the end point of this B-Spline curve. Returns the index in the knot array of the knot corresponding to the first or last parameter of this B-Spline curve. Returns the index in the knot array of the knot corresponding to the first or last parameter of this B-Spline curve. Returns the knots sequence of this B-Spline curve. Returns true if this B-Spline curve is rational. A B-Spline curve is rational if, at the time of construction, the weight table has been initialized. Returns true if this BSpline curve is periodic. Returns true if the distance between the start point and end point of this B-Spline curve is less than or equal to gp::Resolution(). increase(Int=Degree) Increases the degree of this B-Spline curve to Degree. As a result, the poles, weights and multiplicities tables are modified; the knots table is not changed. Nothing is done if Degree is less than or equal to the current degree. Increases the multiplicity Increases the multiplicity Inserts knot. Inserts knots. Reduces the multiplicity of the knot of index Index to M. If M is equal to 0, the knot is removed. With a modification of this type, the array of poles is also modified. Two different algorithms are systematically used to compute the new poles of the curve. If, for each pole, the distance between the pole calculated using the first algorithm and the same pole calculated using the second algorithm, is less than Tolerance, this ensures that the curve is not modified by more than Tolerance. Under these conditions, true is returned; otherwise, false is returned. A low tolerance is used to prevent modification of the curve. A high tolerance is used to 'smooth' the curve. Modifies this B-Spline curve by segmenting it. Set a knot of the B-Spline curve. Get a knot of the B-Spline curve. Set knots of the B-Spline curve. Get all knots of the B-Spline curve. Modifies this B-Spline curve by assigning P to the pole of index Index in the poles table. Get a pole of the B-Spline curve. Get all poles of the B-Spline curve. Set a weight of the B-Spline curve. Get a weight of the B-Spline curve. Get all weights of the B-Spline curve. Computes for this B-Spline curve the parametric tolerance (UTolerance) for a given 3D tolerance (Tolerance3D). If f(t) is the equation of this B-Spline curve, the parametric tolerance ensures that: |t1-t0| < UTolerance =""==> |f(t1)-f(t0)| < Tolerance3D Moves the point of parameter U of this B-Spline curve to P. Index1 and Index2 are the indexes in the table of poles of this B-Spline curve of the first and last poles designated to be moved. FirstModifiedPole and LastModifiedPole are the indexes of the first and last poles which are effectively modified. Changes this B-Spline curve into a non-periodic curve. If this curve is already non-periodic, it is not modified. Changes this B-Spline curve into a periodic curve. Assigns the knot of index Index in the knots table as the origin of this periodic B-Spline curve. As a consequence, the knots and poles tables are modified. Returns the multiplicity of the knot of index from the knots table of this B-Spline curve. Returns the multiplicities table M of the knots of this B-Spline curve. Replaces this B-Spline curve by approximating a set of points. Replaces this B-Spline curve by interpolating a set of points. Builds a B-Spline by a list of poles. Builds a B-Spline by a lists of Poles, Mults, Knots. arguments: poles (sequence of Base.Vector), [mults , knots, periodic, degree, weights (sequence of float), CheckRational] Examples: from FreeCAD import Base import Part V=Base.Vector poles=[V(-10,-10),V(10,-10),V(10,10),V(-10,10)] # non-periodic spline n=Part.BSplineCurve() n.buildFromPolesMultsKnots(poles,(3,1,3),(0,0.5,1),False,2) Part.show(n.toShape()) # periodic spline p=Part.BSplineCurve() p.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2) Part.show(p.toShape()) # periodic and rational spline r=Part.BSplineCurve() r.buildFromPolesMultsKnots(poles,(1,1,1,1,1),(0,0.25,0.5,0.75,1),True,2,(1,0.8,0.7,0.2)) Part.show(r.toShape()) Build a list of Bezier splines. Build a new spline by joining this and a second spline. Tries to make the spline C1-continuous where possible.