コミュニティ
Maya - 日本語
製品テクニックや情報を共有、質問、解答したり、情報を検索など使い方は様々です。お役立てください。
キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

【python】モジュールの作成

1件の返信1
解決済み
返信
メッセージ1/2
kudoQ464S
221 件の閲覧回数, 1 件の返信

【python】モジュールの作成

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)
	    

 

 

1件の返信1
メッセージ2/2
SOTOMEA
次のアカウントへの返信: kudoQ464S

こんにちは

 

def TRSclerner()の中で記述しているdefを、全て外に出して記述した場合はどうでしょう。
 
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()
    .
    .
    .

 



Sotome

お探しの情報が見つからないときは、コミュニティで質問しましょう。困っている人がいたら、情報を教えてあげましょう。

フォーラムに投稿  

State of Design & Make 2024

EE RESOURCES