.NET

提供:GizmoLabs - だいたい CAD LISP なサイト
2017年6月15日 (木) 23:50時点におけるGizmon (トーク | 投稿記録)による版 (→‎AutoCAD .NET API の概要(.NET))

.NET Framework は、Microsoft 社が開発したプログラミング環境で、ランタイム環境に加え、Framework では、共同操作が可能で安全な Windows ベースまたは Web ベースのアプリケーション開発を容易にするクラス ライブラリが用意されている。.NET Framework については、Microsoft 社のマニュアルを参照。

AutoCAD .NET API の概要(.NET)

AutoCAD .NET API の公開されているアセンブリまたはライブラリを使用すると、アプリケーションと図面ファイルをプログラムで操作できる。公開されているこれらのオブジェクトには、C# や VB.NETなどさまざまなプログラミング言語や環境からアクセスできる。

また、コマンド プロンプト、フィーチャ ダイアログ ボックス、AutoCAD エディタ、構成要素のパブリッシュや印刷など、AutoCAD のユーザ インタフェース要素にアクセスできる。

AutoCAD では 2005 より、ObjectARX managed wrapper class を使用した .NET アプリケーション開発がサポートされていている。 使用可能な managed wrapper class の全リストは、ObjectARX SDK の『ObjectARX Developer's Guide』の「AutoCAD Managed Class Reference」と「ObjectARX Managed Wrapper Class」を参照。

managed wrapper class では、ほとんどの ObjectARX SDK が用意されており、VB .NET や C# を含め、.NET Framework がサポートしている任意の言語を使用してアプリケーションを記述できる。 managed wrapper class には、データベース機能が実装されており、図面形式(DWG)ファイルを読み取ったり書き込むアプリケーションを記述できる。


Autodesk が提示している AutoCAD 用 .NET API を実装する利点はいくつかある。

  • 基本的に .NET に対応した言語からプログラムを使用して図面にアクセスできるため、使用可能な言語の幅が広がった。
  • 他の Windows® ベースのアプリケーション(Microsoft Excel、Word など)との統合は、アプリケーションのネイティブ .NET API または公開されている ActiveX/COM ライブラリを使用することで飛躍的に容易になっている。
  • .NET Framework は、32 ビットおよび 64 ビットの両オペレーティング システム用に設計されている。
  • C++ などの従来のプログラミング言語よりも短期間の学習で高度なプログラミング インタフェースにアクセスできる。
  • 本サイト的には、CADの内部関数として動作するLISP関数を作成できる! というのもある。


オブジェクトは、AutoCAD .NET API の主要な構成要素。公開されている各オブジェクトはプログラムの 1 つの要素または図面を表し、個々のアセンブリおよび名前空間にグループ化される。AutoCAD .NET API にはさまざまなタイプのオブジェクトがある。

  • 線分、円弧、文字、および寸法などのグラフィカル オブジェクト
  • 文字や寸法スタイルなどのスタイル設定
  • 画層、グループ、ブロックなどの組織構造
  • ビューやビューポートなどの図面表示
  • 図面とアプリケーション

互換 CAD における .NET API 対応

互換CADのうち、幾つかの CAD が .NET API に対応している。(把握してるのは、BricsCAD、IJCAD、GstarCAD、IntelliCAD、NanoCAD、ZWCAD 位。) AutoCAD の .NET API 互換を目指して提供されているものもあれば、.NET を使用しているが、AutoCAD とは違う独自路線で提供されているものもある。(DWG ベースの場合、大概 ODA の API 使ってるので、名前だけの違いで中身は結構似てたりする部分もありますが。)

BricsCAD の .NET API

BricsCAD では V13 より .NET による開発がサポートされている。AutoCAD の.NET API と互換のある形(バイナリ互換ではない。)での開発が可能。

IJCAD の .NET API

IJCAD では 2014 より .NET による開発がサポートされている。AutoCAD の.NET API と互換のある形(バイナリ互換ではない。)での開発が可能。 >> バージョン履歴とサポートAPI


IntelliCAD の .NET API

IntelliCAD では Ver.7 より .NET による開発が一応サポートされている。但し(似てるけど)AutoCAD の.NET API 互換というわけではない。 >> バージョン履歴とサポートAPI

ObjectARX クラスの接頭辞と .NET 名前空間

    • 接頭辞(アンマネージ) … 名前空間(マネージ)
    • AcAp … Autodesk.AutoCAD.ApplicationServices
    • AcBr … Autodesk.AutoCAD.BoundaryRepresentation
    • AcCm … Autodesk.AutoCAD.Colors
    • AcDb … Autodesk.AutoCAD.DatabaseServices
    • AcGe … Autodesk.AutoCAD.Geometry
    • AcGi … Autodesk.AutoCAD.GraphicsInterface
    • AcLy … Autodesk.AutoCAD.LayerManager
    • AcPl … Autodesk.AutoCAD.PlottingServices
    • AcRx … Autodesk.AutoCAD.Runtime
    • AcUt … Autodesk.AutoCAD.DatabaseServices、Autodesk.AutoCAD.ApplicationServices


参考リンク