Developer: FlamingoScript
Summary: Demonstrates how import a ArMaterial file.
I am trying to figure out how to import an new Flamingo nXt material, from a ArMaterial file, into the current document. What can I do?
The following are examples of how to import an existing ArMaterial file as a new Flamingo nXt material in the active document.
RhinoScript
Option Explicit Call Main() Sub Main() Dim objPlugIn, strMaterial, strMaterialId, material On Error Resume Next Set objPlugIn = Rhino.GetPluginObject("8008880f-8d13-4b2d-92b0-727e12878a4c") If Err Then MsgBox Err.Description Exit Sub End If strMaterial = "C:\ProgramData\McNeel\Flamingo nXt\Language Packs\en-US\Materials\Basics\Basic Car Paint Red.ArMaterial" strMaterialId = objPlugIn.ImportMaterial(strMaterial, true) if Not IsNull(strMaterialId) And Not strMaterialId = "" Then Set material = objPlugIn.GetMaterial(strMaterialId) Rhino.Print("Object assigned to Flamingo nXt material ID: " & material.Id & " Name: " & material.Name) End If Set material = Nothing Set objPlugIn = Nothing End Sub
Python
import clr # Load the Flamingo nXt SDK DLL clr.AddReference("FlamingoNXtSDK") import FlamingoNXtSDK import rhinoscriptsyntax as rs import scriptcontext # 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 ImportMaterial(): materialFile = "C:\ProgramData\McNeel\Flamingo nXt\Language Packs\en-US\Materials\Basics\Basic Car Paint Red.ArMaterial" result, materialId = flSDK.ImportMaterial(materialFile, 1) if not result: return print "New material ID: ", materialId if __name__=="__main__": ImportMaterial()
C#
using System; using Rhino; using Rhino.Commands; using FlamingoNXtSDK; partial class Examples { public static Result ImportMaterial(RhinoDoc doc, Rhino.Commands.RunMode mode) { SDK sdk = SDK.FlamingoSDK; if (null == sdk) return Rhino.Commands.Result.Failure; string strMaterial = @"C:\ProgramData\McNeel\Flamingo nXt\Language Packs\en-US\Materials\Basics\Basic Car Paint Red.ArMaterial"; Guid materialId; if (!sdk.ImportMaterial(strMaterial, true, out materialId)) return Result.Cancel; RhinoApp.WriteLine("Material imported with ID: " + materialId); return Result.Success; } }