対象製品: IJCAD 2015~2019 (STD グレード以上)
IJCAD2020以降はこちら
IJCADの.Netアセンブリは、C#やVB.Netのクラスライブラリとして作成します。
- Visual Studio 2010 を起動します。
- ファイルメニュー ► 新規作成 ► プロジェクト... を選択します。
- [新しいプロジェクト]ダイアログで、.Net Framework 4 が選択されていることを確認し、Visual C# のクラスライブラリを選択します。
- プロジェクト名とプロジェクトファイルを保存する場所を指定します。必要であればソリューションのフォルダも用意します。
- OKボタンを押すと、プロジェクトのひな形を作成します。
参照の追加
IJCAD が提供している API を使用するには、参照を追加する必要があります。次の手順で、参照を追加できます。
- ソリューションエクスプローラで、プロジェクト名を右クリックして「参照の追加」を選びます。
- 参照ページを表示して、IJCAD の実行フォルダに移動します(C:\Program Files\ITJP\IJCAD 201X Pro)。
- gmap.dll と gmdb.dll を選択して追加します。
- ソリューションエクスプローラの参照設定に、gmapとgmdbが追加されてます。
- gmapとgmdbをそれぞれ右クリックしてプロパティを表示します。
- ローカルコピーを False にして、gmap.dllやgmdb.dllをローカルフォルダにコピーしないようにします。
ソースコードの追加
- class1.cs に下記のコードを追加します。
-
using System; using System.Collections.Generic; using System.Linq; using System.Text; using GrxCAD.ApplicationServices; using GrxCAD.DatabaseServices; using GrxCAD.EditorInput; using GrxCAD.Runtime; namespace HelloApp { public class Class1 { [CommandMethod("HELLO")] public void helloCmd() { Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; ed.WriteMessage("Hello .Net World.\n"); } } }
- using GrxCAD.ApplicationServices は、Application オブジェクトにアクセスするのに必要です。
- using GrxCAD.DatabaseServices は上の例では使用していませんが、図面を操作するときに必要な宣言です。
- using GrxCAD.EditorInput は Editor クラスにアクセスするのに必要です。
- using Runtime は CommandMethod 属性を使用するのに必要です。
- [CommandMethod(コマンド名)] の宣言によって、次の helloCmd() 関数がHELLOコマンドの定義になります。
- コマンドは public で、引数なし戻り値なしの関数として定義します。
- IJCADから Editor クラスの変数 ed を取得し、WriteMessage() 関数により、コマンドプロンプトにメッセージを表示します。
ビルドと実行
標準ツールバーでプラットフォームが「Any CPU」で構成が「Release」になっていることを確認し、「ビルド」メニューから「ソリューションのビルド」を実行します。問題がなければアセンブリ ファイルが作成されます。
IJCAD を起動し、コマンドプロンプトに NETLOAD と入力します。ファイル選択ダイアログから、作成したファイルをロードします。
コマンドプロンプトに HELLO と入力します。メッセージを表示して終了します。
デバッグのしかた
標準ツールバーでプラットフォームが「Any CPU」で構成が「Debug」になっていることを確認し、「ビルド」メニューから「ソリューションのビルド」を実行します。問題がなければアセンブリ ファイルが作成されます。
プロジェクトのプロパティを開き、デバッグページを表示します。プラットフォームが「Any CPU」で構成が「Debug」になっていることを確認します。開始動作から「外部プログラムの開始」を選択し、IJCAD の実行ファイル(C:\Program Files\ITJP\IJCAD 201X Pro\Gcad.exe)を指定します。
ソースコードの適当な個所にブレークポイントを設定します。
IJCAD を起動し、コマンドプロンプトに NETLOAD と入力します。ファイル選択ダイアログから、作成したファイルをロードします。
コマンドプロンプトに HELLO と入力します。プログラムはブレークポイントの位置で停止します。続行するとメッセージを表示して終了します。
.Net for AutoCAD との比較
ここで、.Net for AutoCAD のプログラムと比較してみましょう。
Autodesk.AutoCAD から始まる .Net for AutoCAD の参照設定を、GrxCAD に変更すれば、.Net for AutoCAD 用に開発されたアプリケーションが、IJCAD 用に動作するようにデザインされています。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
namespace HelloApp
{
public class Class1
{
[CommandMethod("HELLO")]
public void HelloWorld()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("Hello .Net World");
}
}
}