コミュニティ
pythonのモジュールファイルを作成しようと思ったのですが、ボタンの中身が作動してくれません。
defで作成したボタンの中身の関数が読み込まれてないようなのですがどうすればよいでしょうか。
素人コードでお恥ずかしいのですが、添付させていただきます。
# coding: utf-8
import maya.cmds as cmds
def TRSclerner():
#--------------- 以下、GUI関連 ---------------
#ウィンドウを作成
cmds.window("RK_TRSclerner",resizeToFitChildren = True ,widthHeight=(200, 55))
#ラジオボタンの非表示
def textOn(*args):
cmds.textField("Search", edit=True , enable = False)
def textHide(*args):
cmds.textField("Search", edit=True , enable = True)
#ラジオボタン作成
cmds.columnLayout()
cmds.rowLayout(numberOfColumns=3)
modeSelectRadio = cmds.radioCollection()
cmds.radioButton("modeSelectButton1",label="all" ,onCommand = textOn)
cmds.radioButton("modeSelectButton2", label="select",select = True ,onCommand = textOn)
cmds.radioButton("modeSelectButton3", label = "name", onCommand = textHide)
cmds.setParent('..')
#テキストボックス作成
cmds.rowLayout(numberOfColumns=2)
cmds.text( label='Search for:' ,)
textBox = cmds.textField("Search",width = 235,enable = False)
cmds.setParent('..')
#ボタン作成
cmds.rowLayout(numberOfColumns=3, columnWidth3=(40, 60, 40))
cmds.button("Apply and Close",width=100,command="ApplyAndCloseCM()")
cmds.button("Apply",width=100,command="ApplyCM()")
cmds.button("Close",width=100,command="CloseCM()")
cmds.setParent('..')
#ウィンドウを開く
cmds.showWindow("RK_TRSclerner")
#--------------- 以上、動作関連 ---------------
#ボタンの中身
def CloseCM():
cmds.deleteUI("RK_TRSclerner")
def ApplyAndCloseCM():
ApplyCM()
CloseCM()
def ApplyCM():
if "modeSelectButton1" == cmds.radioCollection(modeSelectRadio, q=True, select=True):
#すべてのメッシュオブジェクトを取得する
mesh = cmds.ls(type="mesh")
trans = cmds.listRelatives(mesh,parent = True)
elif "modeSelectButton2" == cmds.radioCollection(modeSelectRadio, q=True, select=True):
#選択しているメッシュオブジェクトを取得する
SerchTrans = cmds.ls(selection = True)
mesh = cmds.listRelatives(SerchTrans,shapes = True)
trans = cmds.listRelatives(mesh,parent = True)
elif "modeSelectButton3" == cmds.radioCollection(modeSelectRadio, q=True, select=True):
#検索したメッシュオブジェクトを取得する
SerchTrans = cmds.ls( cmds.textField("Search", q=True, text=True) + "*",type="transform")
mesh = cmds.listRelatives(SerchTrans,shapes = True)
trans = cmds.listRelatives(mesh,parent = True)
else:
print("モードを選択してください")
#移動・回転・スケールアトリビュートをロック解除、フリーズ、リセット、再ロック
for i in trans:
cmds.setAttr(i + ".translateX" , lock = False)
cmds.setAttr(i + ".translateY" , lock = False)
cmds.setAttr(i + ".translateZ" , lock = False)
cmds.setAttr(i + ".rotateX" , lock = False)
cmds.setAttr(i + ".rotateY" , lock = False)
cmds.setAttr(i + ".rotateZ" , lock = False)
cmds.setAttr(i + ".scaleX" , lock = False)
cmds.setAttr(i + ".scaleY" , lock = False)
cmds.setAttr(i + ".scaleZ" , lock = False)
cmds.makeIdentity(i,apply = True)
cmds.move(0, 0, 0, i + '.scalePivot', i + '.rotatePivot', rpr=1)
cmds.setAttr(i + ".translateX" , lock = True)
cmds.setAttr(i + ".translateY" , lock = True)
cmds.setAttr(i + ".translateZ" , lock = True)
cmds.setAttr(i + ".rotateX" , lock = True)
cmds.setAttr(i + ".rotateY" , lock = True)
cmds.setAttr(i + ".rotateZ" , lock = True)
cmds.setAttr(i + ".scaleX" , lock = True)
cmds.setAttr(i + ".scaleY" , lock = True)
cmds.setAttr(i + ".scaleZ" , lock = True)
解決済! 解決策の投稿を見る。
回答者: SOTOMEA. 解決策の投稿を見る。
こんにちは
def TRSclerner():
#--------------- 以下、GUI関連 ---------------
#ウィンドウを作成
cmds.window("RK_TRSclerner",resizeToFitChildren = True ,widthHeight=(200, 55))
.
.
.
cmds.showWindow("RK_TRSclerner")
#ラジオボタンの非表示
def textOn(*args):
cmds.textField("Search", edit=True , enable = False)
def textHide(*args):
cmds.textField("Search", edit=True , enable = True)
#ボタンの中身
def CloseCM():
cmds.deleteUI("RK_TRSclerner")
def ApplyAndCloseCM():
ApplyCM()
CloseCM()
def ApplyCM()
.
.
.