Make an exporter
From DreamsteepWiki
EXPORTER (FILE->LOAD/SAVE MENU)
import math, sys
import maya.OpenMaya as OpenMaya
import maya.OpenMayaMPx as OpenMayaMPx
kPluginTranslatorTypeName = "sma_hougeo"
# Node definition
class customNodeTranslator(OpenMayaMPx.MPxFileTranslator):
def __init__(self):
OpenMayaMPx.MPxFileTranslator.__init__(self)
def haveWriteMethod(self):
return True
def haveReadMethod(self):
return True
def filter(self):
return "*.spcnt"
def defaultExtension(self):
return "spcnt"
def writer( self, fileObject, optionString, accessMode ):
#
try:
fullName = fileObject.fullName()
fileHandle = open(fullName,"w")
##################
fileHandle.write("# Simple text file of custom node information\n")
##################
iterator=OpenMaya.MItDependencyNodes()
while not iterator.isDone():
object = iterator.thisNode()
#
try:
dnFn = OpenMaya.MFnDependencyNode( object )
userNode = dnFn.userNode()
if ( not( userNode == None ) ):
line = "# custom node: " + dnFn.name() + "\n"
fileHandle.write(line)
except:
pass
iterator.next()
fileHandle.close()
except:
sys.stderr.write( "Failed to write file information\n")
raise
def processLine( self, lineStr ):
# Normally do parsing here. Simple example will only
# print out the line.
print "read <%s>" % lineStr
def reader( self, fileObject, optionString, accessMode ):
#
try:
fullName = fileObject.fullName()
fileHandle = open(fullName,"r")
for line in fileHandle:
# print line
self.processLine( line )
# print "1"
fileHandle.close()
except:
sys.stderr.write( "Failed to read file information\n")
raise
# creator
def translatorCreator():
return OpenMayaMPx.asMPxPtr( customNodeTranslator() )
# initialize the script plug-in
def initializePlugin(mobject):
mplugin = OpenMayaMPx.MFnPlugin(mobject)
try:
mplugin.registerFileTranslator( kPluginTranslatorTypeName, None, translatorCreator )
except:
sys.stderr.write( "Failed to register translator: %s" % kPluginTranslatorTypeName )
raise
# uninitialize the script plug-in
def uninitializePlugin(mobject):
mplugin = OpenMayaMPx.MFnPlugin(mobject)
try:
mplugin.deregisterFileTranslator( kPluginTranslatorTypeName )
except:
sys.stderr.write( "Failed to deregister translator: %s" % kPluginTranslatorTypeName )
raise

