使用Maya的userSetup文件可以在Maya启动时初始化自定义的函数.
创建一个userSetup.py文件放在"F:\document\<username>\maya<Version>\scripts"下就可以.
以下为测试代码:
[userSetup.py]:存放在"scripts"目录下.
import maya.cmds as cmds
'''
> 添加第一个测试类.这个类直接存放在scripts下面.
'''
from TestPY1 import TestClass1 as TC
'''
> 添加第二个测试类.这个类存放在"scripts/Users(自定义目录)"下面.
> 将Users(自定义目录)加入到环境变量中.自定义目录不能自动获取地址,需要手动添加.
'''
myPath = 'F:/Z_AppData/maya/scripts/Users'
import sys
if myPath not in sys.path:
sys.path.append(myPath)
#导入几个测试类.
from TestPY2 import TestClass2 as TC2
from ExecuteFunction import TestFuncClass as TFC
#使用evalDeferred执行自己的函数.evalDeferred可以在maya加载所有启动项后执行命令.
cmds.evalDeferred('tfc=TFC()') #这个函数是在TestClass2中调用的内容,在这里实例化一下.
cmds.evalDeferred('ttt2=TC2()')
cmds.evalDeferred('ttt2.MyTestMenu()')
cmds.evalDeferred('ttt1= TC()')
cmds.evalDeferred('ttt1.MyTestMenu()')
[TestPY1.py]:放在"scripts"目录下.
'''
这个类添加了一下测试菜单.子菜单点击后均会输出"FUCKYOU!"
'''
import maya.cmds as cmds
class TestClass1:
def MyTestMenu(self):
MM=cmds.menu(p='MayaWindow',tearOff=True,l='[PythonMenu 1]')
cmds.menuItem(p=MM,l='-----------',c='print("FUCKYOU!")')
cmds.menuItem(p=MM,l='-----------',c='print(\"FUCKYOU!\")')
cmds.menuItem(p=MM,l='-----------',c='print(\"FUCKYOU!\")')
[TestPY2.py]:放在"scripts/Users"自定义目录下.
'''
这个类同TestClass1大致相同.不同在于它调用了另外一个文件("scripts\Users\ExecuteFunction.py")的函数. tfc在userSetup.py中,在maya启动时声明和初始化.
'''
import maya.cmds as cmds
class TestClass2:
def MyTestMenu(self):
MM=cmds.menu(p='MayaWindow',tearOff=True,l='[PythonMenu TWO]')
cmds.menuItem(p=MM,l='-----------',c='tfc.PRINT(\'FUCK \')') #上面说的这里的'tfc'
cmds.menuItem(p=MM,l='-----------',c='tfc.PRINT(\'YOU !\')')
cmds.menuItem(p=MM,l='-----------',c='tfc.PRINT(\'Okey ?!\')')
[ExecuteFunction.py]:放在"scripts/Users"自定义目录下.这是上一个文件中所调用的内容.
'''
TestPY.py中的tfc就是它.
'''
import maya.cmds as cmds
class TestFuncClass:
def PRINT(self, txt):
print(txt)
------END------