- 2007/12/05 14:50
- 未分類
maya pythonのfileBrowserDialogコマンドを使って、例えばこんなことをしてみました。
import maya.cmds as mc
mc.fileBrowserDialog( fc=test, an=’Test’, fileType=’directory’, mode=4, dialogStyle=1 )
def test( *args ):
print( args )
さて、どうなるでしょうか。
引数のfcはファイル(またはディレクトリ)を選んでOKとしたときに実行されるコマンドで、
fileBorwserDialogなら、選んだアイテムのパスが渡されます。
上のスクリプトは、ダイアログでアイテムを選択し、OKを押したらtestが実行される、というつもりで書いています。
が、これはエラーになります。
非常に不可解なのでいろいろprintしたりしてみました。
そしたらどうやらfcに渡すのはMELコマンドでないといけなさそう、というのがわかりました。
というか、MELなら上手く通りました。
もしかしたら他に回避策があるのかもしれないので、誰か親切な方のコメントに期待したいのですw
今回は、maya.melモジュールのeval関数を使用し、
MELの関数をPythonから定義する、という方法でなんとかしました。
つまり、なんとなくこんな感じです。
import maya.cmds as mc
import maya.mel as mm
evalStr = ‘global proc test( string $path, string $dummy ){ print( $path ); }’
mm.eval( evalStr )
mc.fileBrowserDialog( fc=”test”, an=’Test’, fileType=’directory’, mode=4, dialogStyle=1 )
これで一応、狙ったとおりに実行することができるようになりました。
うーん、、、なんつーか、、もしMELコマンドしか実行できないんだとすれば、、これはバグだろう。。。
僕のミスor見落としだったらサーセンwww
その時はどなたかご指摘をお願いします。。。
—————————————————————–追記
あ、何もMayaの関数定義しなくても、pythonのでいいんじゃんΣ
・・・・。
- Newer: [ 雑記 ] ただの雑記
- Older: [ WSH ] ffmpegを利用してmovをつくる。
Comments:2
- soesin 2008/07/01
私も丁度今、同じ件で悩んでいてググっていたら、このページにたどり着きました。
どうやらバグみたいですね。
http://images.autodesk.com/apac_japan_main/files/jpn_maya2008sp1.pdf
ここによると、SP1で治っているそうです。- tai 2008/07/02
>soesinさん
はじめまして。お!なるほど、これが直ったらいろいろと話がシンプルになって助かります。
先日2008のextension2に移行したので、近々時間を見つけて試してみようと思います。有益な情報ありがとうございます!
Trackbacks:0
- Trackback URL for this entry
- http://blog.taikomatsu.com/2007/12/05/maya-python-filebrowserdialog/trackback/
- Listed below are links to weblogs that reference
- [ maya python ] fileBrowserDialog from memlog