概要 - 現在の Document オブジェクトにアクセする(AutoLISP/ActiveX)

AutoCAD オブジェクト モデル階層は Application オブジェクトで始まり、そこから ActiveDocument プロパティを使用してアクティブな図面を表す Document オブジェクトにアクセスすることができます。

注: AutoLISP での ActiveX のサポートは Windows のみに制限されています。

Documents コレクションにもアクセスできるので、開いた図面の 1 つ 1 つにアクセスできます。次の AutoLISP 文は、アクティブなドキュメントを返します。

(setq acadDocument (vla-get-ActiveDocument (vlax-get-acad-object)))

Document オブジェクトには多数のプロパティがあり、非グラフィカル オブジェクト(画層、線種、グループなど)へは、似た名前のプロパティ(Layers、Linetypes、Groups など)でアクセスすることができます。図面内のグラフィカル オブジェクトへは、ModelSpace (モデル空間)と PaperSpace (ペーパー空間)プロパティでアクセスできます。ActiveSpace プロパティを使用して、図面でモデル空間とペーパー空間のどちらが現在であるかを特定することができます。

例:

(setq mSpace (vla-get-ModelSpace acadDocument))

この時点では、図面のモデル空間にオブジェクトを追加することができます。

たとえば、次の文を使用して円をモデル空間に追加できます。

(setq mycircle (vla-addCircle mSpace (vlax-3d-point '(3.0 3.0 0.0)) 2.0))