NurbsSurface

compute_rhino3d.NurbsSurface.CreateCurveOnSurfacePoints(surface, fixedPoints, tolerance, periodic, initCount, levels, multiple=False)

Computes a discrete spline curve on the surface. In other words, computes a sequence of points on the surface, each with a corresponding parameter value.

Parameters:
  • surface (rhino3dm.Surface) – The surface on which the curve is constructed. The surface should be G1 continuous. If the surface is closed in the u or v direction and is G1 at the seam, the function will construct point sequences that cross over the seam.
  • fixedPoints (list[rhino3dm.Point2d]) – Surface points to interpolate given by parameters. These must be distinct.
  • tolerance (float) – Relative tolerance used by the solver. When in doubt, use a tolerance of 0.0.
  • periodic (bool) – When True constructs a smoothly closed curve.
  • initCount (int) – Maximum number of points to insert beteween fixed points on the first level.
  • levels (int) – The number of levels (between 1 and 3) to be used in multi-level solver. Use 1 for single level solve.
  • multiple (bool) – (default False) If True, all parameters are expected as lists of equal length and input will be batch processed
Returns:

A sequence of surface points, given by surface parameters, if successful. The number of output points is approximatelely: 2 ^ (level-1) * initCount * fixedPoints.Count.

Return type:

rhino3dm.Point2d[]

compute_rhino3d.NurbsSurface.CreateCurveOnSurface(surface, points, tolerance, periodic, multiple=False)

Fit a sequence of 2d points on a surface to make a curve on the surface.

Parameters:
  • surface (rhino3dm.Surface) – Surface on which to construct curve.
  • points (list[rhino3dm.Point2d]) – Parameter space coodinates of the points to interpolate.
  • tolerance (float) – Curve should be within tolerance of surface and points.
  • periodic (bool) – When True make a periodic curve.
  • multiple (bool) – (default False) If True, all parameters are expected as lists of equal length and input will be batch processed
Returns:

A curve interpolating the points if successful, None on error.

Return type:

rhino3dm.NurbsCurve

compute_rhino3d.NurbsSurface.MakeCompatible(surface0, surface1, multiple=False)

For expert use only. Makes a pair of compatible NURBS surfaces based on two input surfaces.

Parameters:
  • surface0 (rhino3dm.Surface) – The first surface.
  • surface1 (rhino3dm.Surface) – The second surface.
  • multiple (bool) – (default False) If True, all parameters are expected as lists of equal length and input will be batch processed
Returns:

True if successsful, False on failure.

Return type:

bool

compute_rhino3d.NurbsSurface.CreateFromPoints(points, uCount, vCount, uDegree, vDegree, multiple=False)

Constructs a NURBS surface from a 2D grid of control points.

Parameters:
  • points (list[rhino3dm.Point3d]) – Control point locations.
  • uCount (int) – Number of points in U direction.
  • vCount (int) – Number of points in V direction.
  • uDegree (int) – Degree of surface in U direction.
  • vDegree (int) – Degree of surface in V direction.
  • multiple (bool) – (default False) If True, all parameters are expected as lists of equal length and input will be batch processed
Returns:

A NurbsSurface on success or None on failure.

Return type:

NurbsSurface

compute_rhino3d.NurbsSurface.CreateThroughPoints(points, uCount, vCount, uDegree, vDegree, uClosed, vClosed, multiple=False)

Constructs a NURBS surface from a 2D grid of points.

Parameters:
  • points (list[rhino3dm.Point3d]) – Control point locations.
  • uCount (int) – Number of points in U direction.
  • vCount (int) – Number of points in V direction.
  • uDegree (int) – Degree of surface in U direction.
  • vDegree (int) – Degree of surface in V direction.
  • uClosed (bool) – True if the surface should be closed in the U direction.
  • vClosed (bool) – True if the surface should be closed in the V direction.
  • multiple (bool) – (default False) If True, all parameters are expected as lists of equal length and input will be batch processed
Returns:

A NurbsSurface on success or None on failure.

Return type:

NurbsSurface

compute_rhino3d.NurbsSurface.CreateFromCorners(corner1, corner2, corner3, corner4, multiple=False)

Makes a surface from 4 corner points. This is the same as calling with tolerance 0.

Parameters:
  • corner1 (rhino3dm.Point3d) – The first corner.
  • corner2 (rhino3dm.Point3d) – The second corner.
  • corner3 (rhino3dm.Point3d) – The third corner.
  • corner4 (rhino3dm.Point3d) – The fourth corner.
  • multiple (bool) – (default False) If True, all parameters are expected as lists of equal length and input will be batch processed
Returns:

the resulting surface or None on error.

Return type:

NurbsSurface

compute_rhino3d.NurbsSurface.CreateFromCorners1(corner1, corner2, corner3, corner4, tolerance, multiple=False)

Makes a surface from 4 corner points.

Parameters:
  • corner1 (rhino3dm.Point3d) – The first corner.
  • corner2 (rhino3dm.Point3d) – The second corner.
  • corner3 (rhino3dm.Point3d) – The third corner.
  • corner4 (rhino3dm.Point3d) – The fourth corner.
  • tolerance (float) – Minimum edge length without collapsing to a singularity.
  • multiple (bool) – (default False) If True, all parameters are expected as lists of equal length and input will be batch processed
Returns:

The resulting surface or None on error.

Return type:

NurbsSurface

compute_rhino3d.NurbsSurface.CreateFromCorners2(corner1, corner2, corner3, multiple=False)

Makes a surface from 3 corner points.

Parameters:
  • corner1 (rhino3dm.Point3d) – The first corner.
  • corner2 (rhino3dm.Point3d) – The second corner.
  • corner3 (rhino3dm.Point3d) – The third corner.
  • multiple (bool) – (default False) If True, all parameters are expected as lists of equal length and input will be batch processed
Returns:

The resulting surface or None on error.

Return type:

NurbsSurface

compute_rhino3d.NurbsSurface.CreateRailRevolvedSurface(profile, rail, axis, scaleHeight, multiple=False)

Constructs a railed Surface-of-Revolution.

Parameters:
  • profile (rhino3dm.Curve) – Profile curve for revolution.
  • rail (rhino3dm.Curve) – Rail curve for revolution.
  • axis (Line) – Axis of revolution.
  • scaleHeight (bool) – If true, surface will be locally scaled.
  • multiple (bool) – (default False) If True, all parameters are expected as lists of equal length and input will be batch processed
Returns:

A NurbsSurface or None on failure.

Return type:

NurbsSurface

compute_rhino3d.NurbsSurface.CreateNetworkSurface(uCurves, uContinuityStart, uContinuityEnd, vCurves, vContinuityStart, vContinuityEnd, edgeTolerance, interiorTolerance, angleTolerance, multiple=False)

Builds a surface from an ordered network of curves/edges.

Parameters:
  • uCurves (list[rhino3dm.Curve]) – An array, a list or any enumerable set of U curves.
  • uContinuityStart (int) – continuity at first U segment, 0 = loose, 1 = pos, 2 = tan, 3 = curvature.
  • uContinuityEnd (int) – continuity at last U segment, 0 = loose, 1 = pos, 2 = tan, 3 = curvature.
  • vCurves (list[rhino3dm.Curve]) – An array, a list or any enumerable set of V curves.
  • vContinuityStart (int) – continuity at first V segment, 0 = loose, 1 = pos, 2 = tan, 3 = curvature.
  • vContinuityEnd (int) – continuity at last V segment, 0 = loose, 1 = pos, 2 = tan, 3 = curvature.
  • edgeTolerance (float) – tolerance to use along network surface edge.
  • interiorTolerance (float) – tolerance to use for the interior curves.
  • angleTolerance (float) – angle tolerance to use.
  • multiple (bool) – (default False) If True, all parameters are expected as lists of equal length and input will be batch processed
Returns:

A NurbsSurface or None on failure.

Return type:

NurbsSurface

compute_rhino3d.NurbsSurface.CreateNetworkSurface1(curves, continuity, edgeTolerance, interiorTolerance, angleTolerance, multiple=False)

Builds a surface from an autosorted network of curves/edges.

Parameters:
  • curves (list[rhino3dm.Curve]) – An array, a list or any enumerable set of curves/edges, sorted automatically into U and V curves.
  • continuity (int) – continuity along edges, 0 = loose, 1 = pos, 2 = tan, 3 = curvature.
  • edgeTolerance (float) – tolerance to use along network surface edge.
  • interiorTolerance (float) – tolerance to use for the interior curves.
  • angleTolerance (float) – angle tolerance to use.
  • multiple (bool) – (default False) If True, all parameters are expected as lists of equal length and input will be batch processed
Returns:

A NurbsSurface or None on failure.

Return type:

NurbsSurface