使用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------