hey colas, I made some updates to the custom class methodology. check  
it out from SVN.  the example is a little more "real", hopefully still  
simple enough for people to follow along.

-chad


On Apr 6, 2009, at 3:58 PM, [email protected] wrote:

>
> hi chad,
> i try the customClasses technique but i have a problem i can test if a
> attribute exist in the callback fonction
> but not get his value.
>
> code :
> from pymel import *
>
> class LegJoint(Joint):
>    """ this is an example of how to create your own subdivisions of
> existing nodes"""
>
>    def kick(self):
>        print "kicking"
>
> class JawJoint(Joint):
>    """ this is an example of how to create your own subdivisions of
> existing nodes"""
>
>    def munch(self):
>        print "munching"
>
> def legJointCallback( fn, name ):
>    """if the desired attribute exists, then we're a LegJoint!"""
>    try:
>        print "testing if this is a leg joint"
>        # this function fails if the attribute does not exist, so we
> have to try/except it.
>        return fn.hasAttribute( 'jointType_leg' )
>    except: pass
>    return False
>
> def jawJointCallback( fn, name ):
>    """if the desired attribute exists, then we're a LegJoint!"""
>    try:
>        # this function fails if the attribute does not exist, so we
> have to try/except it.
>        print "testing if this is a jaw joint"
>        return fn.jointType_jaw.get() == 'yes'
>    except: pass
>    return False
>
> LegJoint.registerVirtualSubClass( legJointCallback,
> nameRequired=False )
> JawJoint.registerVirtualSubClass( jawJointCallback,
> nameRequired=False )
>
>
> def testJoint():
>    joint()
>    joint()
>    j1 = joint()
>    j2 = joint()
>    j1.addAttr( 'jointType_leg' )
>    j2.addAttr( 'jointType_jaw',dt='string' )
>    j2.jointType_jaw.set('yes')
>
>    # now list the joints and see which ones are our special joints
>    res = ls(type='joint')
>    for x in res:
>        if isinstance(x, LegJoint ):
>            x.kick()
>        elif isinstance(x, JawJoint ):
>            x.munch()
>
> sorry for my english and thank you for the fantastic work you are
> doing.
> colas
> >


--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/python_inside_maya
-~----------~----~----~----~------~----~------~--~---

Reply via email to