Site Tools


Import Flamingo nXt Material

Developer: FlamingoScript
Summary: Demonstrates how import a ArMaterial file.

Question

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?

Answer

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;
  }
}
flamingo/flamingosdk/importmaterial.txt · Last modified: 2012/04/19 by johnm