Skip to content

P_Rhino_Geometry_MeshingParameters_Smooth

Will Pearson edited this page Aug 12, 2016 · 2 revisions

MeshingParameters.Smooth Property

Gets meshing parameters for smooth meshing. This corresponds with the "Smooth and Slower" default in Rhino.

Namespace: Rhino.Geometry
Assembly: RhinoCommon (in RhinoCommon.dll) Version: Rhino 6.0

Syntax

C#

public static MeshingParameters Smooth { get; }

VB

Public Shared ReadOnly Property Smooth As MeshingParameters
	Get

Property Value

Type: MeshingParameters

Examples

VB

Imports Rhino
Imports Rhino.Commands
Imports Rhino.Geometry
Imports Rhino.DocObjects

Namespace examples_vb
  Public Class CreateMeshFromBrepCommand
    Inherits Command
    Public Overrides ReadOnly Property EnglishName() As String
      Get
        Return "vbCreateMeshFromBrep"
      End Get
    End Property

    Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result
      Dim objRef As ObjRef = Nothing
      Dim rc = Rhino.Input.RhinoGet.GetOneObject("Select surface or polysurface to mesh", True, ObjectType.Surface Or ObjectType.PolysrfFilter, objRef)
      If rc <> Result.Success Then
        Return rc
      End If
      Dim brep = objRef.Brep()
      If brep Is Nothing Then
        Return Result.Failure
      End If

      ' you could choose any one of these for example
      Dim jaggedAndFaster = MeshingParameters.Coarse
      Dim smoothAndSlower = MeshingParameters.Smooth
      Dim defaultMeshParams = MeshingParameters.Default
      Dim minimal = MeshingParameters.Minimal

      Dim meshes = Mesh.CreateFromBrep(brep, smoothAndSlower)
      If meshes Is Nothing OrElse meshes.Length = 0 Then
        Return Result.Failure
      End If

      Dim brepmesh = New Mesh()
      For Each facemesh As Mesh In meshes
        brepmesh.Append(facemesh)
      Next

      doc.Objects.AddMesh(brepmesh)
      doc.Views.Redraw()
      Return Result.Success
    End Function
  End Class
End Namespace

C#

using Rhino;
using Rhino.Commands;
using Rhino.Input;
using Rhino.Geometry;
using Rhino.DocObjects;

namespace examples_cs
{
  public class CreateMeshFromBrepCommand : Command
  {
    public override string EnglishName { get { return "csCreateMeshFromBrep"; } }

    protected override Result RunCommand(RhinoDoc doc, RunMode mode)
    {
      ObjRef obj_ref;
      var rc = RhinoGet.GetOneObject("Select surface or polysurface to mesh", true, ObjectType.Surface | ObjectType.PolysrfFilter, out obj_ref);
      if (rc != Result.Success)
        return rc;
      var brep = obj_ref.Brep();
      if (null == brep)
        return Result.Failure;

      // you could choose anyone of these for example
      var jagged_and_faster = MeshingParameters.Coarse;
      var smooth_and_slower = MeshingParameters.Smooth;
      var default_mesh_params = MeshingParameters.Default;
      var minimal = MeshingParameters.Minimal;

      var meshes = Mesh.CreateFromBrep(brep, smooth_and_slower);
      if (meshes == null || meshes.Length == 0)
        return Result.Failure;

      var brep_mesh = new Mesh();
      foreach (var mesh in meshes)
        brep_mesh.Append(mesh);
      doc.Objects.AddMesh(brep_mesh);
      doc.Views.Redraw();

      return Result.Success;
    }
  }
}

Python

import Rhino
from Rhino.Geometry import *
from Rhino.Input import RhinoGet
from Rhino.Commands import Result
from Rhino.DocObjects import ObjectType
import rhinoscriptsyntax as rs
from scriptcontext import doc

def RunCommand():
  rc, objRef = RhinoGet.GetOneObject("Select surface or polysurface to mesh", True, 
                                     ObjectType.Surface | ObjectType.PolysrfFilter)
  if rc <> Result.Success:
    return rc
  brep = objRef.Brep()
  if None == brep:
    return Result.Failure

  jaggedAndFaster = MeshingParameters.Coarse
  smoothAndSlower = MeshingParameters.Smooth
  defaultMeshParams = MeshingParameters.Default
  minimal = MeshingParameters.Minimal

  meshes = Mesh.CreateFromBrep(brep, smoothAndSlower)
  if meshes == None or meshes.Length == 0:
    return Result.Failure

  brepMesh = Mesh()
  for mesh in meshes:
    brepMesh.Append(mesh)
  doc.Objects.AddMesh(brepMesh)
  doc.Views.Redraw()

if __name__ == "__main__":
  RunCommand()

Version Information

Supported in: 6.0.16224.21491, 5D58w

See Also

Reference

MeshingParameters Class
Rhino.Geometry Namespace

Clone this wiki locally