You could create a flag to only get it once in the compute method. Or you could create a callback MNodeMessage::addNameChangedCallback which gets called whenever the name changes. Unfortunately, the docs say it's not available in Python.
-Chad On Wed, Nov 25, 2009 at 6:52 AM, Richard Kazuo <[email protected]> wrote: > Hi all, I was wondering how I could get access to a created node's name in > Maya's DG. > > I tried getting it using the *self.name()* method inside the *__init__*and > that crashes Maya. I checked the MPxNode documentation and it says the > node is not yet created in the constructor, so it makes sense. The docs say > I should use the *postConstructor *method, but I tried it and it doesn't > give me the name - I can only access it on the *compute *method. > > This is what I used to test: > > class testNode(OpenMayaMPx.MPxNode): > def __init__(self): > #print 'constructor>', self.name() #this crashes Maya > OpenMayaMPx.MPxNode.__init__(self) > > def postConstructor(self): > print 'post constructor>', self.name() > > def compute(self,plug,dataBlock): > print 'compute>', self.name() > > > Maya only prints out the node name in the compute section. > Any thoughts on how I could get the node's name only once (outside the > compute)? I can access *self.typeName()* though. Maybe I'm messing with > something I shouldn't? > > Thanks in advance, > Richard > > > -- > http://groups.google.com/group/python_inside_maya -- http://groups.google.com/group/python_inside_maya
