Home > 未分類 > [ maya python ] fileBrowserDialog

[ maya python ] fileBrowserDialog

  • Posted by: tai
  • 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のでいいんじゃんΣ

・・・・。

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に移行したので、近々時間を見つけて試してみようと思います。

有益な情報ありがとうございます!

Comment Form
Remember personal info

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

Home > 未分類 > [ maya python ] fileBrowserDialog

Return to page top