hibitekitou
昔作ったスクリプトがSIをたたき落とした
xsi |2016-01-04
昔作ったスクリプトがありまして、なにせ昔だからぱっと見ただけだとよく分からないのだけど、とりあえず実行したらPPGを開こうとしてSoftimageごとたたき落とされてる、というような感じになりました。 同じスクリプトを自宅環境で試したら落ちなかったので、環境依存の部分もあるのでしょうが、よくよく確認してみると構文的に正しくない書き方をしている事が原因だったようです。
チェックボックスのあるPPGを作りました。例えばこんなスクリプト。
from win32com.client import constants as c app = Application oProp = XSIFactory.CreateObject( "CustomProperty" ) oProp.name = "TEST PPG" boolcheckbox = oProp.AddParameter2( "boolcheckbox", c.siBool, 1) oLayout = oProp.PPGLayout oLayout.AddEnumControl( "boolcheckbox", ["", 0] , "test", c.siControlBoolean ) Err = app.InspectObj(oProp, "", "", c.siModal, False) if Err == False: LogMessage( boolcheckbox.Value ) else: LogMessage("Cancel")
問題は、AddEnumControlの部分のリスト部分(["", 0] の所)の書き方にありました。
ここのリストは[ "String", Value, "String", Value ... ] というように文字列のラベルと値の組み合わせを羅列していかなければならないのですけど、これを [ 0, 0 ] って書いていたのですね。チェックボックスだとこのリスト部分ってあんまり意味が無いみたいなのですけど(だから [0,0] にも特に意味が無い?)、環境によってSoftimageごとたたき落とす原因となってしまったようです。
正しく書かないとダメですなぁってことで。
コメント ( 0 )|Trackback ( )
コメント |
コメントはありません。 |
コメントを投稿する |
ブログ作成者から承認されるまでコメントは反映されません |