關於Maya userSetup.py的用法.

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

發佈了10 篇原創文章 · 獲贊 4 · 訪問量 9442
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章