Dynamic Draw/Thought Tickler ユーザーズガイド

スクリプト

Dynamic Drawでは、部品の中にスクリプトを設定することができます。
スクリプトが設定された部品は、振る舞いが以下のように変更されます。
  • 部品の編集操作は、スクリプトによって制御されます。
  • モリプ間リンクによる変形は、スクリプトによって制御されます。
Dynamic Drawでは、予め登録したスクリプトのみ使うことができます。スクリプトが登録されるテーブルはスクリプトテーブルと呼ばれます。
スクリプトはutf-8のテキスト形式で記述されたLuaのプログラムです。
例えば、部品にスクリプトを付けるためには、以下の手順を実行します。

スクリプトテーブルを使うことには、以下のメリットがあります。
  • スクリプトテーブルのスクリプトを変更することにより、そのスクリプトが使われるすべての部品のスクリプトが一括して変更されます。
  • 部品の中に記録されるスクリプトデータの量が縮小されます。
  • 同じスクリプトを何度も使うときに、迷うことなくすばやく使うことができます。

部品に登録されるスクリプトでは、以下の関数を用意する必要があります。

OnSelectObject(session, tool, objectId)
編集ツール(ToolScriptEdit)によって部品が選択されたときに実行される。
パラメーター
session
Sessionクラスオブジェクト
OnSelectObjectからOnUnselectObjectまで維持されるトランザクションの機能を提供する。
tool
ToolScriptEditクラスオブジェクト
編集ツール
objectId
ObjDynabaseクラスオブジェクトのID
選択された部品のID。
返値
無し
OnUnselectObject(session, tool, objectId)
編集ツール(ToolScriptEdit)で部品の選択が解除されたときに実行される。
パラメーター
session
Sessionクラスオブジェクト
OnSelectObjectからOnUnselectObjectまで維持されるトランザクションの機能を提供する。
tool
ToolScriptEditクラスオブジェクト
編集ツール
objectId
ObjDynabaseクラスオブジェクトのID
選択が解除された部品のID。
返値
無し
OnStartHandleMoving(session, tool, handleId, objectId)
編集ツール(ToolScriptEdit)で編集用ハンドルのドラッグが開始したときに実行される。
パラメーター
session
Sessionクラスオブジェクト
OnSelectObjectからOnUnselectObjectまで維持されるトランザクションの機能を提供する。
tool
ToolScriptEditクラスオブジェクト
編集ツール
handleId
整数値
ドラッグされているハンドルのID。
objectId
ObjDynabaseクラスオブジェクトのID
選択された部品のID。
返値
無し
OnHandleMoving(session, tool, handleId, objectId)
編集ツール(ToolScriptEdit)で編集用ハンドルがマウスによってドラッグされているときに実行される。
パラメーター
session
Sessionクラスオブジェクト
OnSelectObjectからOnUnselectObjectまで維持されるトランザクションの機能を提供する。
tool
ToolScriptEditクラスオブジェクト
編集ツール
handleId
整数値
ドラッグされているハンドルのID。
objectId
ObjDynabaseクラスオブジェクトのID
選択された部品のID。
返値
無し
OnStopHandleMoving(session, tool, handleId, objectId, molipRec, molipHitType)
編集ツール(ToolScriptEdit)で編集用ハンドルのドラッグが終了したときに実行される。
パラメーター
session
Sessionクラスオブジェクト
OnSelectObjectからOnUnselectObjectまで維持されるトランザクションの機能を提供する。
tool
ToolScriptEditクラスオブジェクト
編集ツール
handleId
整数値
ドラッグされているハンドルのID。
objectId
ObjDynabaseクラスオブジェクトのID
選択された部品のID。
molipRec
MolipRec構造体オブジェクト
ドラッグが終了した位置に存在するモリプ
molipHitType
整数値
モリプにヒットしたときのタイプ。値にはMolipHitTypeのメンバーを指定する。
返値
無し
ResetHandles(session, tool, objectId)
編集ツール(ToolScriptEdit)で編集用ハンドルがリセットされるときに実行される。
部品の選択時、[左に90度回転]コマンドなどによる部品の変更時に実行される。
パラメーター
session
Sessionクラスオブジェクト
OnSelectObjectからOnUnselectObjectまで維持されるトランザクションの機能を提供する。
tool
ToolScriptEditクラスオブジェクト
編集ツール
objectId
ObjDynabaseクラスオブジェクトのID
選択された部品のID。
返値
無し
horzMovedMolipArray, vertMovedMolipArray = MoveMolip(session, objectId, molipId, distance)
モリプ間リンクの移動により、このスクリプトが割り当てられた部品のモリプ移動されたときに実行される。
パラメーター
session
Sessionクラスオブジェクト
MoveMolipだけで維持されるトランザクションの機能を提供する。
objectId
ObjDynabaseクラスオブジェクトのID
移動対象の部品
molipId
整数値
移動対象のモリプのID。
distance
DBLPoint構造体オブジェクト
x方向、y方向の移動距離。
返値
horzMovedMolipArray
本関数を実行した結果、x方向に移動したモリプのID配列。
vertMovedMolipArray
本関数を実行した結果、y方向に移動したモリプのID配列。