3

次のように、Pythonスクリプトを介してプログラムをインスタンス化しようとしています

os.startfile( '"C:/Program Files/Autodesk/3ds Max 2010/3dsmax.exe"' )

3dsMaxは読み込みに時間がかかるので、読み込みが完了するまで待ちたいと思います。タスクマネージャーをチェック3dsmax10.exeしてリストにあるかどうかを確認しますが、プロセスが開始されるとすぐにリストに表示されます(明らかに)。それで、それが完全にロードされたかどうかを調べる方法はありますか?

どんな助けでも大歓迎です

ありがとう

4

3 に答える 3

2

これは少しハックな (堅牢ではない) ソリューションです。コマンド ラインで MAXScript スクリプトを使用して 3ds Max を起動します。例えば

c:\3dsmax\3dsmax -U MAXScript myscript.ms

Parceval が示唆するように、このスクリプトは MAXScript コマンドを使用して新しいファイルを作成できます。

createFile c:\tmp\myfile.txt

次に Python で、ファイルが存在するまで待ちます (最初にファイルを削除することを忘れないでください)。したがって、完全に:

while not os.path.exists(c:\tmp\myfile.txt):
   time.sleep(1)
于 2010-10-20T18:36:06.417 に答える
1

完全な読み込みは少し主観的です。私が覚えている限りでは、3DS MAX はプラグインの読み込みを実行します。これは読み込み時間の絶対的な大部分を占め、スプラッシュ スクリーンを表示します。そして、読み込みが完了した後でのみ、メイン ウィンドウが表示されます。

この事実を利用して、WinAPI を使用して既存のウィンドウを常に監視し、メイン ウィンドウがいつ表示されたかを知ることができます。タイトル テキストまたは wnd-class を使用して、とりわけそれを見つけます。

于 2010-05-28T09:01:27.603 に答える
1

シンプルな maxscript スクリプトをmaxhome \Scripts\Startup に置くことができます。このスクリプトは、max が開始を終了したときに開始されます。このスクリプトは、ファイルを作成したり、com または tcp を介して Python スクリプトと通信したりできます。

于 2010-07-30T17:05:35.617 に答える