「ObjectARX」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
編集の要約なし
39行目: 39行目:
| AutoCAD 2007/2008/2009 || Visual Studio 2005 || VC8
| AutoCAD 2007/2008/2009 || Visual Studio 2005 || VC8
|-
|-
| AutoCAD 2010/2011/2012(?) || Visual Studio 2008 || VC9
| AutoCAD 2010/2011 || Visual Studio 2008 || VC9
|-
| AutoCAD 2012/2013/2014(?) || Visual Studio 2010 || VC10
|}
|}

2012年9月24日 (月) 14:15時点における版

ObjectARX (AutoCAD Runtime Extension) は、ADS 開発環境の後継となる形で登場した C++による AutoCAD アプリケーション開発用のプログラム環境。
ObjectARX は、AutoCAD R14 から利用可能になり、多数のダイナミック リンク ライブラリ(DLL)を含むプログラミング環境で、DLL は AutoCAD と同じアドレス空間で実行され、コアとなる AutoCAD データ構造とコードを直接操作するようになっている。

これらのライブラリは、AutoCAD のオープン アーキテクチャを利用した形になっており、AutoCAD のデータベース構造や、グラフィックス システム、ジオメトリ エンジンに直接アクセスして、AutoCAD クラスと機能を実行時に拡張できる。

ObjectARX ライブラリを、AutoLISP や VBA のような他の AutoCAD プログラミング インタフェースと一緒に使用することができ、複数の API 間の統合も可能。

AutoCAD R13 以降にAutoCAD 自身の開発言語がC++ 言語に替わり、それ以降 C++ 言語によるオブジェクト指向 API を提供を開始していった経緯があり、ObjectARX が持つ C++ クラスライブラリは、AutoCAD 自身のクラスライブラリと一部を除いて同一であるため、API 中では最も強力なカスタマイズが可能になっている。

最終生成ファイルである .arx ファイルは、拡張子を変更したダイナミックリンクライブラリ(.dll )で、AutoCAD 上にロードすることで利用可能となり、AutoCAD とメモリを共有して同一プロセスで動作する。 従って、アプリケーションがクラッシュすると必然的に AutoCAD もクラッシュするので、高品質の開発技術が望まれる。

DLL を使用する事で、AutoCAD の組み込みコマンドとまったく同じように操作できる新しいコマンドを作成できる他、AutoCAD 上の操作をイベントとして取得して、イベントドリブンな処理を行うリアクタの実装や、LINE 、CIRCLE など、AutoCAD が持つオブジェクトと同じよう振舞う"カスタムオブジェクト"を定義することができる。(* 定義した"カスタムオブジェクト"の扱いには注意が必要。)

また、Visual C++ に添付されているクラスライブラリの MFC を利用して、ユーザインタフェーイス を実装したり、COM 拡張によってVBA のオブジェクトモデルを拡張できることも大きな強みとなっている。

ObjectARX の SDK は、Autodesk の Web サイト http://www.autodesk.com/objectarx から無償でダウンロード可能。

ObjectARX SDK の中身は、膨大でとても個人の片手間プロジェクトで書ききれる内容ではないので当サイトでは中身の解説はしません。また、IJCADでは使えません。

ObjectARX の構成

ObjectARX 環境の基本的なクラスと関数のグループ。

  • AcRx ・・・ アプリケーションのバインドと、ラインタイム クラス登録およびランタイム クラス識別に使うクラス
  • AcEd ・・・ ネイティブ AutoCAD コマンドの登録と AutoCAD イベント通知のためのクラス
  • AcDb ・・・ AutoCAD データベース クラス
  • AcGi ・・・ AutoCAD エンティティをレンダリングするためのグラフィックス クラス
  • AcGe ・・・ 一般的な線形代数オブジェクトやジオメトリ オブジェクト用のユーティリティ クラス


ObjectARXの開発環境

AutoCAD製品 IDE コンパイラ
AutoCAD 2000/2000i/2002 Visual Studio 6 VC 6
AutoCAD 2004/2005/2006 Visual Studio 2003(.NET) VC7
AutoCAD 2007/2008/2009 Visual Studio 2005 VC8
AutoCAD 2010/2011 Visual Studio 2008 VC9
AutoCAD 2012/2013/2014(?) Visual Studio 2010 VC10