Site Tools


Selecting Planar Meshes

RhinoScript

Summary: Demonstrates how to select mesh objects that are planar using RhinoScript

Question

Is there a tool or a script that will let me select all planar meshes?

Answer

Currently, RhinoScript does not have a method that returns whether a mesh is planar. But, if you obtain a meshes vertices, you can test to see if all of the points are coplanar.

Example

The following example RhinoScript demonstrates how to select all planar mesh objects.

 Sub SelPlanarMeshes
   Const rhMesh = 32
   Dim arrMeshes, arrVertices, i
   arrMeshes = Rhino.ObjectsByType(rhMesh)
   If IsArray(arrMeshes) Then
     Rhino.EnableRedraw vbFalse
     For i = 0 To UBound(arrMeshes)
       arrVertices = Rhino.MeshVertices(arrMeshes(i))
       If Rhino.PointsAreCoplanar(arrVertices) Then
         Rhino.SelectObject arrMeshes(i)
       End If
     Next
     Rhino.EnableRedraw vbTrue
   End If
 End Sub

Here is a Rhino toolbar button macro version of the above.

 _NoEcho
 _-RunScript (
 arrMeshes = Rhino.ObjectsByType(32)
 If IsArray(arrMeshes) Then
 Rhino.EnableRedraw vbFalse
 For i = 0 To UBound(arrMeshes)
 arrVertices = Rhino.MeshVertices(arrMeshes(i))
 If Rhino.PointsAreCoplanar(arrVertices) Then
 Rhino.SelectObject arrMeshes(i)
 End If
 Next
 Rhino.EnableRedraw vbTrue
 End If
 arrMeshes = vbNull
 arrVertices = vbNull
 )
developer/scriptsamples/selplanarmesh.txt ยท Last modified: 2016/02/10 by sandy