対象製品: IJCAD 2020 以降 (STD グレード以上)
IJCAD2019以前はこちら
IJCADの.Netアセンブリは、C#やVB.Netのクラスライブラリとして作成します。
1. マイクロソフトのホームページから、Visual Studio 2017 Community Edition をダウンロードします
2. ハードディスクの容量が十分ある場合は、すべてインストールすることを推奨します。
3. Visual Studio 2017 を起動します。
4. ファイルメニュー ► 新規作成 ► プロジェクト... を選択します。
5. [新しいプロジェクト]ダイアログで、.Net Framework 4.8 が選択されていることを確認し、Visual C# のクラスライブラリを選択します。
6. プロジェクト名とプロジェクトファイルを保存する場所を指定します。必要であればソリューションのフォルダも用意します。
7. OKボタンを押すと、プロジェクトのひな形(ビルド可能な最低限のコード)を作成します。
参照の追加
IJCAD が提供している API を使用するには、参照を追加する必要があります。
次の手順で、参照を追加できます。
1. ソリューションエクスプローラで、プロジェクト名を右クリックして追加 ► 参照を選びます。
2. 参照マネージャで参照ページを表示します。参照ボタンを押して、IJCAD の実行フォルダに移動します(C:\Program Files\ITJP\IJCAD 20XX Pro)。
3. gmap.dll と gmdb.dll を選択して追加します
※ 参照ページには最近利用したファイルがリスト表示されるので、リストからgmap.dllとgmdb.dllを選択しても構いません。
4. ソリューションエクスプローラの参照設定に、gmapとgmdbが追加されてます。
5. gmapとgmdbをそれぞれ右クリックしてプロパティを表示します。
6. ローカルコピーを 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 oEd = Application.DocumentManager.MdiActiveDocument.Editor;
oEd.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クラスの変数oEdを取得し、Editor.WriteMessage()関数により、コマンドプロンプトにメッセージを表示します。
ビルドと実行
標準ツールバーで構成が「Release」でプラットフォームが「Any CPU」になっていることを確認し、「ビルド」メニューから「ソリューションのビルド」を実行します。問題がなければアセンブリ ファイルが作成されます。
1. IJCAD を起動し、コマンドプロンプトに NETLOAD と入力します。[ファイル選択]ダイアログから、
csSample ► csHello ► bin ► Release ► csHello.dllを選択し、作成したファイルをロードする。作成したファイルをロードします。
2. コマンドプロンプトに HELLO と入力します。メッセージを表示して終了します。
デバッグの仕方
1. 標準ツールバーでプラットフォームが「Any CPU」で構成が「Debug」になっていることを確認し、
「ビルド」メニューから「ソリューションのビルド」を実行します。問題がなければアセンブリ ファイルが作成されます。
2. プロジェクトのプロパティを開き、デバッグページを表示します。プラットフォームが「Any CPU」で構成が「Debug」になっていることを確認します。 開始動作から「外部プログラムの開始」を選択し、IJCAD の実行ファイル(C:\Program Files\ITJP\IJCAD 20XX Pro\gcad.exe)を指定します。
3. ソースコードの適当な個所にブレークポイントを設定します。
4. IJCAD を起動し、コマンドプロンプトに NETLOAD と入力します。ファイル選択ダイアログから、作成したファイルをロードします。
5. 標準ツールバーのデバッグからデバッグの開始を選択します。
6. コマンドプロンプトに HELLO と入力します。プログラムはブレークポイントの位置で停止します。F11キーを押下し、続行するとメッセージを表示して終了します。
.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 oEd = Application.DocumentManager.MdiActiveDocument.Editor;
oEd.WriteMessage("Hello .Net World");
}
}
}