aerocaps.geom.surfaces.BSplineSurface#
- class BSplineSurface(points: List[List[Point3D]], knots_u: ndarray, knots_v: ndarray, name: str = 'BSplineSurface', construction: bool = False)[source]#
Bases:
SurfaceB-spline surface class
- __init__(points: List[List[Point3D]], knots_u: ndarray, knots_v: ndarray, name: str = 'BSplineSurface', construction: bool = False)[source]#
- Parameters:
points
knots_u
knots_v
name (str) – Name of the geometric object. May be re-assigned a unique name when added to a
GeometryContainer. Default: ‘BSplineSurface’construction (bool) – Whether this is a geometry used only for construction of other geometries. If
True, this geometry will not be exported or plotted. Default:False
Methods
d2Sdu2(u, v)Evaluates the second derivative with respect to \(u\) at a single \((u,v)\) pair
d2Sdu2_grid(Nu, Nv)Evaluates the second derivative with respect to \(u\) on a linearly-spaced grid of \(u\)- and \(v\)-values.
d2Sdu2_uvvecs(u, v)Evaluates the second derivative of the surface with respect to \(u\) at arbitrary vectors of \(u\) and \(v\)-values.
d2Sdv2(u, v)Evaluates the second derivative with respect to \(v\) at a single \((u,v)\) pair
d2Sdv2_grid(Nu, Nv)Evaluates the second derivative with respect to \(v\) on a linearly-spaced grid of \(u\)- and \(v\)-values.
d2Sdv2_uvvecs(u, v)Evaluates the second derivative of the surface with respect to \(v\) at arbitrary vectors of \(u\) and \(v\)-values.
dSdu(u, v)Evaluates the first derivative with respect to \(u\) at a single \((u,v)\) pair
dSdu_grid(Nu, Nv)Evaluates the first derivative with respect to \(u\) on a linearly-spaced grid of \(u\)- and \(v\)-values.
dSdu_uvvecs(u, v)Evaluates the first derivative of the surface with respect to \(u\) at arbitrary vectors of \(u\) and \(v\)-values.
dSdv(u, v)Evaluates the first derivative with respect to \(v\) at a single \((u,v)\) pair
dSdv_grid(Nu, Nv)Evaluates the first derivative with respect to \(v\) on a linearly-spaced grid of \(u\)- and \(v\)-values.
dSdv_uvvecs(u, v)Evaluates the first derivative of the surface with respect to \(v\) at arbitrary vectors of \(u\) and \(v\)-values.
enforce_c0(other, surface_edge, ...)For zeroth-degree continuity, there is no difference between geometric (\(G^0\)) and parametric (\(C^0\)) continuity.
enforce_c0c1(other, surface_edge, ...)Equivalent to calling
enforce_g0g1withf=1.0.enforce_c0c1c2(other, surface_edge, ...)Equivalent to calling
enforce_g0g1g2withf=1.0.enforce_g0(other, surface_edge, ...)Enforces \(G^0\) continuity along the input
surface_edgeby equating the control points along this edge to the corresponding control points and weights along theother_surface_edgeof the B-spline surface given byother.enforce_g0g1(other, f, surface_edge, ...)First enforces \(G^0\) continuity, then tangent (\(G^1\)) continuity is enforced according to the following equation:
enforce_g0g1g2(other, f, surface_edge, ...)First enforces \(G^0\) and \(G^1\) continuity, then curvature (\(G^2\)) continuity is enforced according to the following equation:
evaluate(u, v)Evaluates the surface at a given \((u,v)\) parameter pair.
evaluate_grid(Nu, Nv)Evaluates the B-spline surface on a uniform \(N_u \times N_v\) grid of parameter values.
evaluate_point3d(u, v)Evaluates the B-spline surface at a single \((u,v)\) parameter pair and returns a point object.
extract_edge_curve(surface_edge)Extracts the control points, weights, and knots from one of the four edges of the B-spline surface and outputs a B-spline curve with these control points and weights
Generates a list of
Point3DandLine3Dobjects representing the NURBS surface's control points and connections between themGets the control points in float array form.
get_edge(edge[, n_points])Evaluates the surface at
n_pointsparameter locations along a given edge.get_first_derivs_along_edge(edge[, ...])Evaluates the parallel or perpendicular derivative along a surface edge at
n_pointsparameter locations.get_parallel_control_point_length(surface_edge)Gets the number of control points of the curve corresponding to the input surface edge.
get_parallel_degree(surface_edge)Gets the degree of the curve corresponding to the input surface edge.
get_parallel_knots(surface_edge)Gets the knots in the parametric direction parallel to the input surface edge.
Gets the number of control points in the parametric direction perpendicular to the input surface edge.
get_perpendicular_degree(surface_edge)Gets the degree of the curve in the parametric direction perpendicular to the input surface edge.
get_perpendicular_knots(surface_edge)Gets the knots in the parametric direction perpendicular to the input surface edge.
get_point(row_index, continuity_index, ...)Gets the point corresponding to a particular index along the edge curve with perpendicular index corresponding to the level of continuity being applied.
get_second_derivs_along_edge(edge[, ...])Evaluates the parallel or perpendicular second derivative along a surface edge at
n_pointsparameter locations.plot_control_point_mesh_lines(plot, ...)Plots the network of lines connecting the B-spline surface control points using the pyvista library
plot_control_points(plot, **point_kwargs)plot_surface(plot[, Nu, Nv])set_point(point, row_index, ...)Sets the point corresponding to a particular index along the edge curve with perpendicular index corresponding to the level of continuity being applied.
to_iges(*args, **kwargs)Exports the NURBS surface to an IGES entity
transform(**transformation_kwargs)Creates a transformed copy of the surface by transforming each of the control points
verify_g0(other, surface_edge, ...[, n_points])Verifies that two NURBS Surfaces are G0 continuous along their shared edge
verify_g1(other, surface_edge, ...[, n_points])Verifies that two NURBSSurfaces are G1 continuous along their shared edge
verify_g2(other, surface_edge, ...[, n_points])Verifies that two B-spline surfaces are G2 continuous along their shared edge
Attributes
Surface degree in the \(u\)-parametric direction
Surface degree in the \(v\)-parametric direction
Shorthand for
degree_vShorthand for
degree_uNumber of control points in the \(u\)-parametric direction
Number of control points in the \(v\)-parametric direction
Weight matrix (all ones for this surface type)
- d2Sdu2(u: float, v: float) ndarray[source]#
Evaluates the second derivative with respect to \(u\) at a single \((u,v)\) pair
- Parameters:
- Returns:
1-D array containing the \(x\)-, \(y\)-, and \(z\)-components of the second derivative
- Return type:
np.ndarray
- d2Sdu2_grid(Nu: int, Nv: int) ndarray[source]#
Evaluates the second derivative with respect to \(u\) on a linearly-spaced grid of \(u\)- and \(v\)-values.
- d2Sdu2_uvvecs(u: ndarray, v: ndarray)[source]#
Evaluates the second derivative of the surface with respect to \(u\) at arbitrary vectors of \(u\) and \(v\)-values.
- Parameters:
u (np.ndarray) – 1-D array of \(u\)-parameter values
v (np.ndarray) – 1-D array of \(v\)-parameter values
- Returns:
Array of size \(\text{len}(u) \times \text{len}(v) \times 3\)
- Return type:
np.ndarray
- d2Sdv2(u: float, v: float)[source]#
Evaluates the second derivative with respect to \(v\) at a single \((u,v)\) pair
- Parameters:
- Returns:
1-D array containing the \(x\)-, \(y\)-, and \(z\)-components of the second derivative
- Return type:
np.ndarray
- d2Sdv2_grid(Nu: int, Nv: int) ndarray[source]#
Evaluates the second derivative with respect to \(v\) on a linearly-spaced grid of \(u\)- and \(v\)-values.
- d2Sdv2_uvvecs(u: ndarray, v: ndarray)[source]#
Evaluates the second derivative of the surface with respect to \(v\) at arbitrary vectors of \(u\) and \(v\)-values.
- Parameters:
u (np.ndarray) – 1-D array of \(u\)-parameter values
v (np.ndarray) – 1-D array of \(v\)-parameter values
- Returns:
Array of size \(\text{len}(u) \times \text{len}(v) \times 3\)
- Return type:
np.ndarray
- dSdu(u: float, v: float) ndarray[source]#
Evaluates the first derivative with respect to \(u\) at a single \((u,v)\) pair
- Parameters:
- Returns:
1-D array containing the \(x\)-, \(y\)-, and \(z\)-components of the second derivative
- Return type:
np.ndarray
- dSdu_grid(Nu: int, Nv: int) ndarray[source]#
Evaluates the first derivative with respect to \(u\) on a linearly-spaced grid of \(u\)- and \(v\)-values.
- dSdu_uvvecs(u: ndarray, v: ndarray)[source]#
Evaluates the first derivative of the surface with respect to \(u\) at arbitrary vectors of \(u\) and \(v\)-values.
- Parameters:
u (np.ndarray) – 1-D array of \(u\)-parameter values
v (np.ndarray) – 1-D array of \(v\)-parameter values
- Returns:
Array of size \(\text{len}(u) \times \text{len}(v) \times 3\)
- Return type:
np.ndarray
- dSdv(u: float, v: float)[source]#
Evaluates the first derivative with respect to \(v\) at a single \((u,v)\) pair
- Parameters:
- Returns:
1-D array containing the \(x\)-, \(y\)-, and \(z\)-components of the second derivative
- Return type:
np.ndarray
- dSdv_grid(Nu: int, Nv: int) ndarray[source]#
Evaluates the first derivative with respect to \(v\) on a linearly-spaced grid of \(u\)- and \(v\)-values.
- dSdv_uvvecs(u: ndarray, v: ndarray)[source]#
Evaluates the first derivative of the surface with respect to \(v\) at arbitrary vectors of \(u\) and \(v\)-values.
- Parameters:
u (np.ndarray) – 1-D array of \(u\)-parameter values
v (np.ndarray) – 1-D array of \(v\)-parameter values
- Returns:
Array of size \(\text{len}(u) \times \text{len}(v) \times 3\)
- Return type:
np.ndarray
- enforce_c0(other: BSplineSurface, surface_edge: SurfaceEdge, other_surface_edge: SurfaceEdge)[source]#
For zeroth-degree continuity, there is no difference between geometric (\(G^0\)) and parametric (\(C^0\)) continuity. Because this method is simply a convenience method that calls
enforce_g0, see the documentation for that method for more detailed documentation.- Parameters:
other (BSplineSurface) – Another B-spline surface along which an edge will be used for stitching
surface_edge (SurfaceEdge) – The edge of the current surface to modify
other_surface_edge (SurfaceEdge) – Tool edge of surface
otherwhich determines the positions of control points alongsurface_edgeof the current surface
- enforce_c0c1(other: BSplineSurface, surface_edge: SurfaceEdge, other_surface_edge: SurfaceEdge)[source]#
Equivalent to calling
enforce_g0g1withf=1.0. See that method for more detailed documentation.- Parameters:
other (BSplineSurface) – Another B-spline surface along which an edge will be used for stitching
surface_edge (SurfaceEdge) – The edge of the current surface to modify
other_surface_edge (SurfaceEdge) – Tool edge of surface
otherwhich determines the positions of control points alongsurface_edgeof the current surface
- enforce_c0c1c2(other: BSplineSurface, surface_edge: SurfaceEdge, other_surface_edge: SurfaceEdge)[source]#
Equivalent to calling
enforce_g0g1g2withf=1.0. See that method for more detailed documentation.- Parameters:
other (BSplineSurface) – Another B-spline surface along which an edge will be used for stitching
surface_edge (SurfaceEdge) – The edge of the current surface to modify
other_surface_edge (SurfaceEdge) – Tool edge of surface
otherwhich determines the positions of control points alongsurface_edgeof the current surface
- enforce_g0(other: BSplineSurface, surface_edge: SurfaceEdge, other_surface_edge: SurfaceEdge)[source]#
Enforces \(G^0\) continuity along the input
surface_edgeby equating the control points along this edge to the corresponding control points and weights along theother_surface_edgeof the B-spline surface given byother. The control points of the surface from which this method is called are modified in-place, and the control points ofotherare left unchanged.Important
The parallel degree of the current surface along
surface_edgemust be equal to the parallel degree of theothersurface alongother_surface_edge, otherwise anAssertionErrorwill be raised. Additionally, the knot vector along thesurface_edgeof the current surface must be equal to the knot vector along theother_surface_edgeof the other surface.See also
enforce_c0Parametric continuity equivalent (\(C^0\))
- Parameters:
other (BSplineSurface) – Another B-spline surface along which an edge will be used for stitching
surface_edge (SurfaceEdge) – The edge of the current surface to modify
other_surface_edge (SurfaceEdge) – Tool edge of surface
otherwhich determines the positions of control points alongsurface_edgeof the current surface
- enforce_g0g1(other: BSplineSurface, f: float, surface_edge: SurfaceEdge, other_surface_edge: SurfaceEdge)[source]#
First enforces \(G^0\) continuity, then tangent (\(G^1\)) continuity is enforced according to the following equation:
\[\mathcal{P}^{b,\mathcal{E}_b}_{k,1} = \mathcal{P}^{b,\mathcal{E}_b}_{k,0} + f \frac{p_{\perp}^{a,\mathcal{E}_a}}{p_{\perp}^{b,\mathcal{E}_b}} \left[\mathcal{P}^{a,\mathcal{E}_a}_{k,0} - \mathcal{P}^{a,\mathcal{E}_a}_{k,1} \right] \text{ for }k=0,1,\ldots,p_{\parallel}^{b,\mathcal{E}_b}\]Here, \(b\) corresponds to the current surface, and \(a\) corresponds to the
othersurface. The control points of the surface from which this method is called are modified in-place, and the control points ofotherare left unchanged.See also
enforce_g0Geometric point continuity enforcement (\(G^0\))
enforce_c0c1Parametric continuity equivalent (\(C^1\))
- Parameters:
other (BSplineSurface) – Another B-spline surface along which an edge will be used for stitching
f (float) – Tangent proportionality factor
surface_edge (SurfaceEdge) – The edge of the current surface to modify
other_surface_edge (SurfaceEdge) – Tool edge of surface
otherwhich determines the positions of control points alongsurface_edgeof the current surface
- enforce_g0g1g2(other: BSplineSurface, f: float, surface_edge: SurfaceEdge, other_surface_edge: SurfaceEdge)[source]#
First enforces \(G^0\) and \(G^1\) continuity, then curvature (\(G^2\)) continuity is enforced according to the following equation:
\[\mathcal{P}^{b,\mathcal{E}_b}_{k,2} = 2 \mathcal{P}^{b,\mathcal{E}_b}_{k,1} - \mathcal{P}^{b,\mathcal{E}_b}_{k,0} + f^2 \frac{p_{\perp}^{a,\mathcal{E}_a}(p_{\perp}^{a,\mathcal{E}_a}-1)}{p_{\perp}^{b,\mathcal{E}_b}(p_{\perp}^{b,\mathcal{E}_b}-1)} \left[ \mathcal{P}^{a,\mathcal{E}_a}_{k,0} - 2 \mathcal{P}^{a,\mathcal{E}_a}_{k,1} + \mathcal{P}^{a,\mathcal{E}_a}_{k,2} \right] \text{ for }k=0,1,\ldots,p_{\parallel}^{b,\mathcal{E}_b}\]Here, \(b\) corresponds to the current surface, and \(a\) corresponds to the
othersurface. The control points of the surface from which this method is called are modified in-place, and the control points ofotherare left unchanged.See also
enforce_g0Geometric point continuity enforcement (\(G^0\))
enforce_g0g1Geometric tangent continuity enforcement (\(G^1\))
enforce_c0c1c2Parametric continuity equivalent (\(C^2\))
- Parameters:
other (BSplineSurface) – Another B-spline surface along which an edge will be used for stitching
f (float) – Tangent proportionality factor
surface_edge (SurfaceEdge) – The edge of the current surface to modify
other_surface_edge (SurfaceEdge) – Tool edge of surface
otherwhich determines the positions of control points alongsurface_edgeof the current surface
- evaluate(u: float, v: float) ndarray[source]#
Evaluates the surface at a given \((u,v)\) parameter pair.
- Parameters:
- Returns:
1-D array of the form
array([x, y, z])representing the evaluated point on the surface- Return type:
- evaluate_grid(Nu: int, Nv: int) ndarray[source]#
Evaluates the B-spline surface on a uniform \(N_u \times N_v\) grid of parameter values.
- Parameters:
- Returns:
Array of size \(N_u \times N_v \times 3\)
- Return type:
- evaluate_point3d(u: float, v: float) Point3D[source]#
Evaluates the B-spline surface at a single \((u,v)\) parameter pair and returns a point object.
- extract_edge_curve(surface_edge: SurfaceEdge) BSplineCurve3D[source]#
Extracts the control points, weights, and knots from one of the four edges of the B-spline surface and outputs a B-spline curve with these control points and weights
- Parameters:
surface_edge (SurfaceEdge) – Edge along which to extract the curve
- Returns:
B-spline curve with control points and knots corresponding to the control points and knots along the edge of the surface
- Return type:
- generate_control_point_net()[source]#
Generates a list of
Point3DandLine3Dobjects representing the NURBS surface’s control points and connections between them
- get_control_point_array() ndarray[source]#
Gets the control points in float array form.
- Returns:
Array of size \(N_u \times N_v \times 3\)
- Return type:
- get_edge(edge: SurfaceEdge, n_points: int = 10) ndarray[source]#
Evaluates the surface at
n_pointsparameter locations along a given edge.- Parameters:
edge (SurfaceEdge) – Edge along which to evaluate
n_points (int) – Number of evenly-spaced parameter locations at which to evaluate the edge curve. Default: 10
- Returns:
2-D array of size \(n_\text{points} \times 3\)
- Return type:
- get_first_derivs_along_edge(edge: SurfaceEdge, n_points: int = 10, perp: bool = True) ndarray[source]#
Evaluates the parallel or perpendicular derivative along a surface edge at
n_pointsparameter locations. The derivative represents either \(\frac{\partial \mathbf{S}(u,v)}{\partial u}\) or \(\frac{\partial \mathbf{S}(u,v)}{\partial v}\) depending on which edge is selected and which value is assigned toperp.- Parameters:
edge (SurfaceEdge) – Edge along which to evaluate
n_points (int) – Number of evenly-spaced parameter locations at which to evaluate the derivative. Default: 10
perp (bool) – Whether to evaluate the cross-derivative. If
False, the derivative along the parameter direction parallel to the edge will be evaluated instead. Default:True
- Returns:
2-D array of size \(n_\text{points} \times 3\)
- Return type:
- get_parallel_control_point_length(surface_edge: SurfaceEdge) int[source]#
Gets the number of control points of the curve corresponding to the input surface edge.
- Parameters:
surface_edge (SurfaceEdge) – Edge along which the number of control points is computed
- Returns:
Number of control points parallel to the edge
- Return type:
- get_parallel_degree(surface_edge: SurfaceEdge) int[source]#
Gets the degree of the curve corresponding to the input surface edge.
- Parameters:
surface_edge (SurfaceEdge) – Edge along which the parallel degree is evaluated
- Returns:
Degree parallel to the edge
- Return type:
- get_parallel_knots(surface_edge: SurfaceEdge) ndarray[source]#
Gets the knots in the parametric direction parallel to the input surface edge.
- Parameters:
surface_edge (SurfaceEdge) – Edge along which the parallel knots are returned
- Returns:
Knots parallel to the edge
- Return type:
- get_perpendicular_control_point_length(surface_edge: SurfaceEdge) int[source]#
Gets the number of control points in the parametric direction perpendicular to the input surface edge.
- Parameters:
surface_edge (SurfaceEdge) – Edge along which the number of perpendicular control points is computed
- Returns:
Number of control points perpendicular to the edge
- Return type:
- get_perpendicular_degree(surface_edge: SurfaceEdge) int[source]#
Gets the degree of the curve in the parametric direction perpendicular to the input surface edge.
- Parameters:
surface_edge (SurfaceEdge) – Edge along which the perpendicular degree is evaluated
- Returns:
Degree perpendicular to the edge
- Return type:
- get_perpendicular_knots(surface_edge: SurfaceEdge) ndarray[source]#
Gets the knots in the parametric direction perpendicular to the input surface edge.
- Parameters:
surface_edge (SurfaceEdge) – Edge along which the perpendicular knots are returned
- Returns:
Knots perpendicular to the edge
- Return type:
- get_point(row_index: int, continuity_index: int, surface_edge: SurfaceEdge) Point3D[source]#
Gets the point corresponding to a particular index along the edge curve with perpendicular index corresponding to the level of continuity being applied. For example, for a \(6 \times 5\) B-spline surface, the following code
p = surf.get_point(2, 1, ac.SurfaceEdge.v0)
returns the point \(\mathbf{P}_{2,1}\) and
p = surf.get_point(2, 1, ac.SurfaceEdge.u1)
returns the point \(\mathbf{P}_{6-1,2} = \mathbf{P}_{5,2}\) if there are no internal knot vectors. If the B-spline surface has internal knot vectors, the actual \(i\)-index of the point may be different, but the second-to-last point in the third row of control points will still be returned.
See also
set_pointSetter equivalent of this method
- Parameters:
row_index (int) – Index along the surface edge control points
continuity_index (int) – Index in the parametric direction perpendicular to the surface edge. Normally either
0,1, or2surface_edge (SurfaceEdge) – Edge of the surface along which to retrieve the control point
- Returns:
Point used to enforce \(G^x\) continuity, where \(x\) is the value of
continuity_index- Return type:
- get_second_derivs_along_edge(edge: SurfaceEdge, n_points: int = 10, perp: bool = True) ndarray[source]#
Evaluates the parallel or perpendicular second derivative along a surface edge at
n_pointsparameter locations. The derivative represents either \(\frac{\partial^2 \mathbf{S}(u,v)}{\partial u^2}\) or \(\frac{\partial^2 \mathbf{S}(u,v)}{\partial v^2}\) depending on which edge is selected and which value is assigned toperp.- Parameters:
edge (SurfaceEdge) – Edge along which to evaluate
n_points (int) – Number of evenly-spaced parameter locations at which to evaluate the second derivative. Default: 10
perp (bool) – Whether to evaluate the cross-derivative. If
False, the second derivative along the parameter direction parallel to the edge will be evaluated instead. Default:True
- Returns:
2-D array of size \(n_\text{points} \times 3\)
- Return type:
- property m: int#
Shorthand for
degree_v- Returns:
Surface degree in the \(v\)-parametric direction
- Return type:
- property n: int#
Shorthand for
degree_u- Returns:
Surface degree in the \(u\)-parametric direction
- Return type:
- plot_control_point_mesh_lines(plot: Plotter, **line_kwargs) Actor[source]#
Plots the network of lines connecting the B-spline surface control points using the pyvista library
- Parameters:
plot –
pyvista.Plotterinstanceline_kwargs – Keyword arguments to pass to the
pyvista.Plotter.add_lines
- Returns:
The lines actor
- Return type:
pv.Actor
- plot_control_points(plot: Plotter, **point_kwargs) Actor[source]#
Plots the B-spline surface control points using the pyvista library
- Parameters:
plot –
pyvista.Plotterinstancepoint_kwargs – Keyword arguments to pass to the
pyvista.Plotter.add_points
- Returns:
The points actor
- Return type:
pv.Actor
- plot_surface(plot: Plotter, Nu: int = 50, Nv: int = 50, **mesh_kwargs)[source]#
Plots the B-spline surface using the pyvista library
- Parameters:
plot –
pyvista.PlotterinstanceNu (int) – Number of points to evaluate in the \(u\)-parametric direction. Default:
50Nv (int) – Number of points to evaluate in the \(v\)-parametric direction. Default:
50mesh_kwargs – Keyword arguments to pass to
pyvista.Plotter.add_mesh
- Returns:
The evaluated B-spline surface
- Return type:
- set_point(point: Point3D, row_index: int, continuity_index: int, surface_edge: SurfaceEdge)[source]#
Sets the point corresponding to a particular index along the edge curve with perpendicular index corresponding to the level of continuity being applied. For example, for a \(6 \times 5\) B-spline surface, the following code
p = ac.Point3D.from_array(np.array([3.0, 4.0, 5.0])) surf.set_point(p, 2, 1, ac.SurfaceEdge.v0)
sets the value of point \(\mathbf{P}_{2,1}\) to \([3,4,5]^T\) and
p = ac.Point3D.from_array(np.array([3.0, 4.0, 5.0])) surf.get_point(p, 2, 1, ac.SurfaceEdge.u1)
sets the value of point \(\mathbf{P}_{6-1,2} = \mathbf{P}_{5,2}\) to \([3,4,5]^T\) if there are no internal knot vectors.
See also
get_pointGetter equivalent of this method
- Parameters:
point (Point3D) – Point object to apply at the specified indices
row_index (int) – Index along the surface edge control points
continuity_index (int) – Index in the parametric direction perpendicular to the surface edge. Normally either
0,1, or2surface_edge (SurfaceEdge) – Edge of the surface along which to retrieve the control point
- to_iges(*args, **kwargs) IGESEntity[source]#
Exports the NURBS surface to an IGES entity
- transform(**transformation_kwargs) BSplineSurface[source]#
Creates a transformed copy of the surface by transforming each of the control points
- Parameters:
transformation_kwargs – Keyword arguments passed to
Transformation3D- Returns:
Transformed surface
- Return type:
- verify_g0(other: BSplineSurface, surface_edge: SurfaceEdge, other_surface_edge: SurfaceEdge, n_points: int = 10)[source]#
Verifies that two NURBS Surfaces are G0 continuous along their shared edge
- verify_g1(other: BSplineSurface, surface_edge: SurfaceEdge, other_surface_edge: SurfaceEdge, n_points: int = 10)[source]#
Verifies that two NURBSSurfaces are G1 continuous along their shared edge
- verify_g2(other: BSplineSurface, surface_edge: SurfaceEdge, other_surface_edge: SurfaceEdge, n_points: int = 10)[source]#
Verifies that two B-spline surfaces are G2 continuous along their shared edge