Vlax-get-acad-object

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vlax-get-acad-object)


機能
現在の CAD セッションのトップ レベルの CAD アプリケーション オブジェクトを取得する。


引数
  • なし


戻り値
CAD の VLA オブジェクト。


サンプル

<syntaxhighlight lang="lisp" line> (setq aa (vlax-get-acad-object))

  1. <VLA-OBJECT IAcadApplication 00b3b91c>

(vlax-dump-object aa)

IAcadApplication
An instance of the AutoCAD application
プロパティの値
ActiveDocument = #<VLA-OBJECT IAcadDocument 000000002f023940>
Application (RO) = #<VLA-OBJECT IAcadApplication 00000001401e91d8>
Caption (RO) = "AutoCAD 2012 - [xxx.dwg]"
Documents (RO) = #<VLA-OBJECT IAcadDocuments 000000002fdf0780>
FullName (RO) = "C
\\Program Files\\Autodesk\\AutoCAD 2012\\acad.exe"
Height = 1064
HWND (RO) = 2887386
HWND32 (RO) = 2887386
LocaleId (RO) = 1041
MenuBar (RO) = #<VLA-OBJECT IAcadMenuBar 000000002fdef828>
MenuGroups (RO) = #<VLA-OBJECT IAcadMenuGroups 0000000008566d20>
Name (RO) = "AutoCAD"
Path (RO) = "C
\\Program Files\\Autodesk\\AutoCAD 2012"
Preferences (RO) = #<VLA-VBA システムを初期化中...OBJECT IAcadPreferences 000000002f765418>
StatusId (RO) = ...インデックス化された中身が見つかりません...
VBE (RO) = #<VLA-OBJECT VBE 0000000033d77e18>
Version (RO) = "18.2s (LMS Tech)"
Visible = -1
Width = 1938
WindowLeft = -9
WindowState = 3
WindowTop = -9

T


------------------------------------------------------
Application オブジェクトとか Active Document とか
オブジェクトのルートに近いところを頻繁に呼び出すと遅くなるので、
グローバル変数にしといてコントロールするとよさげ。

(setq *acad-object* nil)  ; 初期化 (defun acad-object ()

 ; CAD オブジェクトの取得
 (cond (*acad-object*)       ; 値を返す-取ってなかったら取得
   (T (setq *acad-object* (vlax-get-acad-object)) )))

(setq *actdoc* nil)  ; 初期化 (defun active-document ()

 (cond (*actdoc*)   ; 値を返す-取ってなかったら取得
   (T (setq *actdoc* (vla-get-activedocument (acad-object))) )))

(setq *mspace* nil)  ; 初期化 (defun model-space ()

 (cond (*mspace*)       ; 値を返す-取ってなかったら取得
   (T (setq *mspace* (vla-get-modelspace (active-document))) )))

</syntaxhighlight>


関連事項