Softimage のデータを設定するだけでなく、Softimage からのデータを取得したり動的な情報を表示したりできる Netview ページを作成できます。たとえば、カスタム ツール用に一続きのスクリプトを記述し、Web ページ内に Dynamic HTML、フォーム、ボタンを使用したユーザ インタフェースを作成することができます。無限の可能性を秘めていますが、初めて作成する場合は、このセクションを参照してください。
Netview からスクリプトを実行する前に、スクリプトが保存されているドメインのセキュリティ レベルを[低](Low)に設定してください。低いセキュリティでは、すべてのスクリプトと ActiveX コンテンツを実行できます。Softimage と通信するために、スクリプトは XSI.Application ActiveX オブジェクトをインスタンス化する必要があります。
Windows でインターネットのセキュリティ レベルを設定するには
Windows では、次の 2 つの方法のいずれかで、特定ドメインのセキュリティ レベルを設定できます。
正確な設定手順は、使用している Windows と Internet Explorer のバージョンによって異なるため、詳細については、Internet Explorer のオンラインヘルプを参照してください。
HTML ページのボディに埋め込まれたスクリプトは、そのページが Netview にロードされると自動的に解析されて実行されます。グローバル コード(つまり、どのプロシージャにも含まれないコード)はそのグローバル コードから呼び出される関数またはサブルーチンとともに実行されます。
<body> <!-- HTML elements go here --> ... <script language="vbscript"> 'Global code 'This gets executed automatically ... sub mySub() 'This procedure is executed only when it is called ... end sub </script> <!-- More HTML elements go here --> ... </body>
埋め込みスクリプト コードをボタンやホットスポットから実行する
ユーザが HTML ページ上のボタンやホットスポットをクリックすると、スクリプト コードが実行されるよう設定できます。この処理を実現するには、プロシージャを記述してから、ボタンやホットスポットの [onclick] イベントからプロシージャを呼び出します。
たとえば、VBScript を使用して mySub を実行する HTML ボタンを作成するには、次のように記述します。
<script language="vbscript"> ... sub mySub() 'Code goes here end sub ... </script> ... <input id=bClickMe type=button value="Click Me" name=button1 language=vbscript onclick="mySub()">
データをやり取りする前に、Netview スクリプトを Softimage にリンクする必要があります。Netview のスクリプトは実際には Internet Explorer 内で実行されるため、通信する前に Softimage へのポインタを取得しておく必要があるからです。ポインタを取得するには、スクリプトで XSI.Application オブジェクトをインスタンス化する必要があります。
On Error Resume Next Set myXSI = CreateObject("XSI.Application") Set myApp = myXSI.Application if err.number <> 0 then document.write "Open this page in Softimage's Netview." end if
XSI.Application へのポインタを取得したら、それを Softimage オブジェクト モデル内の任意のオブジェクト、メソッド、またはプロパティの名前の前に付加することができます。たとえば、VBScript を使用して Softimage 内の現在の選択範囲を取得するには、次のように指定します。
Set mySel = myApp.Selection
前セクションの「Softimage と通信する」で説明したように XSI.Application オブジェクトへのポインタを取得すれば、Netview スクリプト内で Softimage オブジェクト、メソッド、プロパティを使用することができます。では、オブジェクト モデル内に同等のものがないSoftimageスクリプト コマンドを使用する必要がある場合はどうすればよいでしょうか。これを行うためのいくつかの方法があります。
XSI.Application へのポインタを取得すると、これを使用して任意の Softimage スクリプト コマンドを COM オートメーションから実行できます。たとえば、次のように記述します。
'Get a pointer to XSI.Application Set myXSI = CreateObject("XSI.Application") Set myApp = myXSI.Application 'Get the selection Set mySel = myApp.Selection 'Run a command, e.g. InspectObj myApp.InspectObj(mySel(0))
Netview ページに、Softimage からの情報を動的に表示することができます。
書き込むデータを保持する <div> エレメントを HTML のボディに作成して、そのエレメントにユニークな ID を割り当てます。たとえば、次のように記述します。
<div id="myDiv"> </div>必要に応じて、デフォルト テキストまたは他の HTML エレメントを開始 div タグと終了 div タグの間に挿入できます。
テキストの文字列を HTML 形式で作成し、<div> の innerHTML プロパティに代入するルーチンを記述します。
Sub writeSel() Set mySel= myApp.Selection if mySel.Count <> 0 then myStr = "" for each thing in mySel myStr = myStr & "<p>My name is <b>" & thing.Name & "</b>.</p>" next else myStr= "<p>Select an object first.</p>" end if myDiv.innerHTML= myStr End Sub
何らかの方法でルーチンを呼び出します。たとえば、次のように、VBScript サブルーチンを呼び出すボタンを作成します。
<input id=bWhoAmI type=button value="Who am I?" name=button1 language=vbscript onclick="writeSel()" >