select命名_Maya中Pymel寫個帶介面的重新命名工具(一)
阿新 • • 發佈:2021-01-04
技術標籤:select命名
建立視窗
pymel.core.windows.window()
此命令用來建立一個視窗,但不會顯示視窗
顯示視窗
pymel.core.windows.showWindow()
此命令用來顯示指定視窗,如果沒有指定則顯示最近建立的視窗
import pymel.core as pm#建立一個視窗,名字為Renamepm.window(title="Rename")#顯示這個視窗pm.showWindow()
建立表格佈局
pymel.core.windows.rowColumnLayout()
此命令建立一個表格佈局
建立選擇框按鈕
pymel.core.windows.checkBox()
此命令建立一個選擇框
建立文字標籤
pymel.core.windows.text()
此命令建立一個文字標籤
建立文字控制元件
pymel.core.windows.text()
此命令建立一個可以輸入的文字控制元件
import pymel.core as pm#建立一個視窗,名字為Rename,menuBar=True新增一個空選單pm.window(menuBar=True,title="Rename")#建立一個選單欄,標籤為Editpm.menu(label='Edit')#建立一個子選單欄,標籤為Resetpm.menuItem(label='Reset')#建立help選單欄,helpMenu=True為此選單為help選單,預設都在最右側pm.menu(label='Help',helpMenu=True)#建立help選單欄中的子選單標籤為helppm.menuItem(label='Help')#建立一個Preset選單欄pm.menu(label='Preset')#建立一個表格佈局,列數為3列,第一列的長度為16個單位,第二列長度為80,第三列長度為250,第三列會隨佈局大小變換pm.rowColumnLayout(numberOfColumns=3,columnWidth=[(1, 16),(2, 80),(3, 250)],adjustableColumn=3)#建立一個選擇框pm.checkBox()#建立一個文字標籤pm.text(label="File_name:")#建立一個可以輸入文字的控制元件pm.textField()#顯示這個視窗pm.showWindow()
物件重新命名
pymel.core.general.rename()
重新命名選中物件賦予物件唯一名稱
import pymel.core as pm#建立一些物體pm.polySphere()pm.polyCube()pm.polyPlane()#全選pm.select(all=True)#獲取已經選中的物件all_obj = pm.selected()#對所有選中物件重新命名為aa(現有名稱衝突,則將根據提供的名稱為物件賦予唯一名稱)for old_mdl_transform in all_obj: pm.rename(old_mdl_transform,'aa')
建立分離器
pymel.core.windows.separator()
建立一個隔離的小部件(更加美觀)
建立佈局
pymel.core.windows.columnLayout()
建立一個佈局,將子級排列在單個列中
建立按鈕
pymel.core.windows.button()
建立一個按鈕控制元件
建立確認對話方塊
pymel.core.windows.confirmDialog()
建立確認對話方塊
import pymel.core as pm#定義開啟時的命令def on_file_name(*args): #使後面的文字框可以編輯 pm.textField(file_name,edit=True,editable=True,enable=True)#定義關閉時的命令def off_file_name(*args): #使後面的文字框不可編輯 pm.textField(file_name,edit=True,editable=False,enable=False)#獲取工程檔案路徑obj_path = pm.sceneName()#嘗試獲取工程檔名try: #獲得檔名 task_name = obj_path.split('.')[-2].split('/')[-1]#如果超出範圍except IndexError: #建立確認對話方塊 pm.confirmDialog( #對話方塊視窗名字 title='Warning', #對話方塊內容 message='''No project file is set!File_name is empty. ''', #按鈕名字 button='Yes', defaultButton='Yes', cancelButton='No', dismissString='No' ) task_name = ''#建立一個視窗,名字為Rename,menuBar=True新增一個空選單pm.window(menuBar=True,title="Rename")#建立一個選單欄,標籤為Editpm.menu(label='Edit')#建立一個子選單欄,標籤為Resetpm.menuItem(label='Reset')#建立help選單欄,helpMenu=True為此選單為help選單,預設都在最右側pm.menu(label='Help',helpMenu=True)#建立help選單欄中的子選單標籤為helppm.menuItem(label='Help')#建立一個Preset選單欄pm.menu(label='Preset')#建立一個表格佈局,列數為3列,第一列的長度為16個單位,第二列長度為80,第三列長度為250,第三列會隨佈局大小變換pm.rowColumnLayout(numberOfColumns=3,columnWidth=[(1, 16),(2, 80),(3, 250)],adjustableColumn=3)#建立分離器pm.separator( height=5, style='in' )pm.separator( height=5, style='in' )pm.separator( height=5, style='in' )#建立一個選擇框,開啟和關閉執行命令pm.checkBox(label='',onCommand=on_file_name,offCommand=off_file_name)#建立一個文字標籤pm.text(label='File_name:',align='left')#建立一個文字的控制元件,不可選中,不可編輯,預設為工程檔名file_name = pm.textField(text=task_name,editable=False,enable=False)#建立分離器pm.separator( height=20, style='none' )pm.separator( height=20, style='none' )pm.separator( height=20, style='none' )pm.separator( height=30, style='none' )pm.separator( height=30, style='none' )#定義按下去的命令def change_name(*args): #獲取File_name文字名字 new_mdl_transform = pm.textField(file_name, query = True, text = True) #獲取選中的物件 all_obj = pm.selected() for old_mdl_transform in all_obj: #更改名字 pm.rename(old_mdl_transform,new_mdl_transform)#在第三列中建立一個佈局pm.columnLayout(columnAttach=('both', 50))#在第三列中建立一個按鈕為Apply按鈕,設定其寬度apply_button = pm.button(label='Apply',width=80)#編輯按鈕新增按鈕按下去執行的命令pm.button(apply_button, edit=True, command=change_name)#顯示這個視窗pm.showWindow()
選擇框可控制輸入文字開啟關閉
感謝:
Hal
Unclechen