Developer: FlamingoScript
Summary: Demonstrates how to get Flamingo nXt mapping information from an object.
I am trying to figure if an object contains Flamingo mapping information and what the mapping values are. What can I do?
The following are examples of how to extract the Flamingo nXt mapping information associated with an object.
Mapping Origin
Option Explicit Call Main() Sub Main() Dim objPlugIn, strObject, origin On Error Resume Next Set objPlugIn = Rhino.GetPluginObject("8008880f-8d13-4b2d-92b0-727e12878a4c") If Err Then MsgBox Err.Description Exit Sub End If strObject = Rhino.GetObject("Select object") If Not IsNull(strObject) And Not strObject = "" Then origin = objPlugIn.GetMappingOrigin(strObject) If IsNull(origin) Then Rhino.Print("Object has no mapping data") Else Rhino.Print("Object mapping origin: " & Rhino.Pt2Str(origin)) End If End If Set objPlugIn = Nothing End Sub
Mapping Scale
Option Explicit Call Main() Sub Main() Dim objPlugIn, strObject, scale On Error Resume Next Set objPlugIn = Rhino.GetPluginObject("8008880f-8d13-4b2d-92b0-727e12878a4c") If Err Then MsgBox Err.Description Exit Sub End If strObject = Rhino.GetObject("Select object") If Not IsNull(strObject) And Not strObject = "" Then scale = objPlugIn.GetMappingScale(strObject) If IsNull(scale) Then Rhino.Print("Object has no mapping data") Else Rhino.Print("Object mapping x-scale: " & scale(0) & " y-scale: " & scale(1) & " z-scale:" & scale(2)) End If End If Set objPlugIn = Nothing End Sub
Mapping Type
Option Explicit Call Main() Sub Main() Dim objPlugIn, strObject, mappingType, strMappingType On Error Resume Next Set objPlugIn = Rhino.GetPluginObject("8008880f-8d13-4b2d-92b0-727e12878a4c") If Err Then MsgBox Err.Description Exit Sub End If strObject = Rhino.GetObject("Select object") If Not IsNull(strObject) And Not strObject = "" Then mappingType = objPlugIn.GetMappingType(strObject) If Not IsNull(mappingType) And mappingType >= 0 Then strMappingType = "unknown" If mappingType = 0 Then strMappingType = "Default" ElseIf mappingType = 1 Then strMappingType = "Box" ElseIf mappingType = 2 Then strMappingType = "Cylindrical" ElseIf mappingType = 3 Then strMappingType = "Spherical" ElseIf mappingType = 4 Then strMappingType = "Planar" ElseIf mappingType = 5 Then strMappingType = "UV" ElseIf mappingType = 6 Then strMappingType = "Equirectangular" ElseIf mappingType = 7 Then strMappingType = "None" End If Rhino.Print("Object mapping type: " & strMappingType) Else Rhino.Print("Object has no mapping data") End If End If Set objPlugIn = Nothing End Sub
Mapping X-Axis
Option Explicit Call Main() Sub Main() Dim objPlugIn, strObject, axis On Error Resume Next Set objPlugIn = Rhino.GetPluginObject("8008880f-8d13-4b2d-92b0-727e12878a4c") If Err Then MsgBox Err.Description Exit Sub End If strObject = Rhino.GetObject("Select object") If Not IsNull(strObject) And Not strObject = "" Then axis = objPlugIn.GetMappingXAxis(strObject) If IsNull(axis) Then Rhino.Print("Object has no mapping data") Else Rhino.Print("Object mapping x-axis: " & Rhino.Pt2Str(axis)) End If End If Set objPlugIn = Nothing End Sub
Mapping Z-Axis
Option Explicit Call Main() Sub Main() Dim objPlugIn, strObject, axis On Error Resume Next Set objPlugIn = Rhino.GetPluginObject("8008880f-8d13-4b2d-92b0-727e12878a4c") If Err Then MsgBox Err.Description Exit Sub End If strObject = Rhino.GetObject("Select object") If Not IsNull(strObject) And Not strObject = "" Then axis = objPlugIn.GetMappingZAxis(strObject) If IsNull(axis) Then Rhino.Print("Object has no mapping data") Else Rhino.Print("Object mapping z-axis: " & Rhino.Pt2Str(axis)) End If End If Set objPlugIn = Nothing End Sub
import clr # Load the Flamingo nXt SDK DLL clr.AddReference("FlamingoNXtSDK") import FlamingoNXtSDK import rhinoscriptsyntax as rs # Get the Flamingo nXt plug-in's SDK implimentaion, this will force the # plug-in to load if it is not currently loaded flSDK = FlamingoNXtSDK.SDK.FlamingoSDK def GetMappingType(): objID = rs.GetObject() if not objID: return result, mapping = flSDK.GetMappingType(objID) if result: print "Mapping: \"", mapping, "\"" else: print "No mapping assignment found" if __name__=="__main__": GetMappingType()
using System; using Rhino; using Rhino.DocObjects; using Rhino.Input; using Rhino.Commands; using FlamingoNXtSDK; partial class Examples { public static Result GetObjectMappingOrigin(RhinoDoc doc, Rhino.Commands.RunMode mode) { SDK sdk = SDK.FlamingoSDK; if (null == sdk) return Rhino.Commands.Result.Failure; string matName = string.Empty; Guid matGuid = Guid.Empty; if (!sdk.ModalMaterialBrowser(Rhino.RhinoApp.MainWindow(), out matName, out matGuid)) return Rhino.Commands.Result.Cancel; ObjRef objRef = null; Result result = RhinoGet.GetOneObject("Select object", false, ObjectType.None, out objRef); if (result == Result.Success && null != objRef) { Point3D origin; if (sdk.GetMappingOrigin(objRef.ObjectId, out origin)) RhinoApp.WriteLine("Object mapping origin : \"" + origin + "\""); else RhinoApp.WriteLine("Object not assigned a Flamingo mapping"); } return Result.Success; } }