図面ファイルが保存されたときや、コマンドが実行されたときなどのイベントで、スクリプトを実行することができます。
- 通常のスクリプトと同じように、テキストファイルに作成したい処理をプログラミング言語 C# で記述する
- スクリプトのフォルダーにイベント名のフォルダーを作成して、そのフォルダー内に拡張子 .csx でファイルを保存する
スクリプトのフォルダーは、RootPro CAD の [スクリプト] メニューの [スクリプトのフォルダーを開く] をクリックして表示されるフォルダーです。
スクリプトのファイル名は、任意の名前を指定できます。
補足- Application クラスの LayerAdded イベントのスクリプトを保存する場合は、Application.LayerAdded という名前のフォルダを作成して、そのフォルダ内にスクリプトファイルを保存します。 各クラスのイベント名については、RootPro CAD SDK ヘルプを参照してください。
- イベント名のフォルダーには複数のスクリプトファイルを保存しておくことができます。イベントが発生すると、フォルダーにあるスクリプトファイルが順番に実行されます。
- ファイルの文字コードは「Unicode(UTF-8)」で保存する必要があります。メモ帳の場合は、[名前を付けて保存] ダイアログボックスの [保存] ボタンの左側にある [文字コード] ボックスを「UTF-8」に変更して保存してください。
- RootPro CAD を再起動する イベントが発生したときにスクリプトが実行されます。
【イベントスクリプトのサンプル】
レイヤを追加したときにメッセージボックスを表示するスクリプトのサンプルコードです。
スクリプトのフォルダーに「Application.LayerAdded」という名前のフォルダーを作成し、そのフォルダー内に任意のファイル名で保存すると、レイヤが追加されたときにスクリプトが実行されます。
先頭が // の行はコメントなので、入力する必要はありません。
// RootPro CAD 以外のアセンブリを参照する場合は「#r "アセンブリ名"」と記述します。 #r "System.Windows.Forms" // 他のスクリプトファイルを読み込む場合は「#load "ファイルパス名"」と記述します。 // ファイルパス名は、絶対パスまたは相対パスで指定します。 //#load "samplescript.csx" // 名前空間を指定しないで特定の型を使用したい場合は「using 名前空間名」と記述します。 using System.Windows.Forms; // RootPro CAD の各プロパティやメソッドを呼び出すためには、グローバルオブジェクトの Application を使用します。 // 現在の図面を取得する場合は、以下のように記述します。 var doc = Application.ActiveDocument; // イベントのパラメータを取得するには、グローバルオブジェクトの EventSender、EventArgs を使用します。 // EventSender は System.Object 型、EventArgs は System.EventArgs 型のオブジェクトです。 // Application クラスの LayerAdded イベントでイベントのパラメータを取得する場合は、以下のように記述します。 var e = (LayerEventArgs)EventArgs; // メッセージボックスを表示します。 // MessageBox クラスは、.Net Framework に標準で用意されている System.Windows.Forms 名前空間のクラスです。 MessageBox.Show(string.Format("レイヤ「{0}」を追加しました。", e.Layer.Name));
補足
RootPro CAD を起動後に既存のスクリプトファイルのコードを変更した場合は、RootPro CAD を再起動しないでも即時に反映されます。