Metasequoia BBS

| 新規投稿 | 通常表示 | ツリー表示 |
状態
タグ
キーワード
[856] phytonスクリプト / piro
対応済み [From old BBS] 返信
こんにちわ。
スクリプトを使ってみたのですが、文法エラーなどで何らかのエラーになった場合にメタセコイアが不安定になってしまって、保存などができなくなることがあります。再現性が定かではないのと、スクリプトの使い方とかがおかしいのかもしれないので、もう少しわかれば追記します。
また、これはちょっと微妙な要望なのですが、
スクリプトエディタで開いたり保存したりしたフォルダはほかのメタセコイア関連のファイルを開いたときのフォルダなどと分けて記憶してくれるといいなぁと思いました。

あと、メタセコイア起動、ファイルー>新規作成、何もせずに再度ファイルー>新規作成と2回繰り返したときに2回目は何もしていないのにドキュメントは変更されています。保存しますか?の確認メッセージが出ます。
2006-07-11 22:12
[870] Re: phytonスクリプト / piro
>スクリプトを使ってみたのですが、文法エラーなどで何らかのエラーになった場合にメタセコイアが不安定になってしまって、保存などができなくなることがあります。再現性が定かではないのと、スクリプトの使い方とかがおかしいのかもしれないので、もう少しわかれば追記します。

rc6では問題ないようです。ありがとうございました。
下記スクリプトでマテリアル名の設定を行っているのですが、スクリプトを実行して名前を変更してもドキュメントに変更があったとは認識できないようで、上書き保存のメニューなどが有効にならないようです。


-----
doc = MQSystem.getDocument()
num = doc.numMaterial
for x in range(0\x2cnum):
    mat = doc.material[x]
    if mat is None: continue
    if mat.textureMap != "":
      length = len(mat.textureMap)
      namewk = mat.textureMap
      mat.name = namewk[0:length-4]
2006-07-13 20:44
[877] Re: Re: phytonスクリプト / O.Mizno
スクリプトから材質を変更してもアンドゥ対象に含まれいなかったので、RC7でこれを含まれるようにしました。上書き保存もできるようになります。

あと、アンドゥ後にスクリプトから材質へアクセス(getMaterialなど)するとエラーが起こったりしていたので修正しました。たぶんこれで安定性は向上したと思うのですが、まだ何かありましたら引き続きご報告いただけると幸いです。
2006-07-16 13:28
[881] Re: Re: Re: phytonスクリプト / KMC

>あと、アンドゥ後にスクリプトから材質へアクセス(getMaterialなど)するとエラーが起こったりしていたので修正しました。

オブジェクト削除後(オブジェクトを0個にはしてません)にもエラーが出てましたのでRC7で試してみたところ、RC6以前と同じくエラーが発生しました。

---
from math import *

doc=MQSystem.getDocument()

pos=[]
for obj in doc.object:
    for vert in obj.vertex:
        if vert.select:
            pos.append(vert.getPos())
if len(pos)==2:
        
    vx=pos[1].x-pos[0].x
    vy=pos[1].y-pos[0].y
    vz=pos[1].z-pos[0].z

続きを表示...
2006-07-18 19:32
[884] Re: Re: Re: Re: phytonスクリプト / O.Mizno
>Failed to execute a script in line 7.
>Attribute not found.

現状では削除されたオブジェクトのインデックスを詰める処理は行っていないので、
削除した後のオブジェクトを取得するとNoneオブジェクトが返ります。
ですので、7行目のところに
if obj is None: continue
の一文を入れておく必要があります。

forで順に参照する場合くらいは、Noneは自動的に飛ばされても良さそうなものですが、
やり方が存在しないのか良くわからないので、当面は上記のチェックを入れるようにして下さい。
2006-07-19 12:00