This classes located in module ezdxf.algebra:

from ezdxf.algebra import BSpline

BSpline

class ezdxf.algebra.BSpline

Calculate the vertices of a B-spline curve, using an uniform open knot vector (clamped curve).

BSpline.control_points

Control points as list of Vector objects

BSpline.count

Count of control points, (n + 1 in math definition).

BSpline.order

Order of B-spline = degree + 1

BSpline.degree

Degree (p) of B-spline = order - 1

BSpline.max_t

Max knot value.

BSpline.knot_values()

Returns a list of knot values as floats, the knot vector always has order+count values (n + p + 2 in math definition)

BSpline.basis_values(t)

Returns the basis vector for position t.

BSpline.approximate(segments)

Approximates the whole B-spline from 0 to max_t, by line segments as a list of vertices, vertices count = segments + 1

BSpline.point(t)

Returns the B-spline vertex at position t as (x, y[, z]) tuple.

BSplineU

class ezdxf.algebra.BSpline(BSpline)

Calculate the points of a B-spline curve, uniform (periodic) knot vector (open curve).

BSplineClosed

class ezdxf.algebra.BSplineClosed(BSplineU)

Calculate the points of a closed uniform B-spline curve (closed curve).

DBSpline

class ezdxf.algebra.DBSpline(BSpline)

Calculate points and derivative of a B-spline curve, using an uniform open knot vector (clamped curve).

DBSpline.point(t)

Returns the B-spline vertex, 1. derivative and 2. derivative at position t as tuple (vertex, d1, d2), each value is a (x, y, z) tuple.

DBSplineU

class ezdxf.algebra.DBSplineU(DBSpline)

Calculate points and derivative of a B-spline curve, uniform (periodic) knot vector (open curve).

DBSplineClosed

class ezdxf.algebra.DBSplineClosed(DBSplineU)

Calculate the points and derivative of a closed uniform B-spline curve (closed curve).