「Vlax-get-acad-object」の版間の差分
細編集の要約なし |
細編集の要約なし |
||
18行目: | 18行目: | ||
(setq aa (vlax-get-acad-object)) | (setq aa (vlax-get-acad-object)) | ||
#<VLA-OBJECT IAcadApplication 00b3b91c> | #<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))) ))) | |||
</pre> | </pre> | ||
[[Category:AutoLISP]] | [[Category:AutoLISP]] |
2013年11月30日 (土) 16:23時点における版
- 構文
- (vlax-get-acad-object)
- 機能
- 現在の CAD セッションのトップ レベルの CAD アプリケーション オブジェクトを取得する。
- 引数
-
- なし
- 戻り値
- CAD の VLA オブジェクト。
- サンプル
(setq aa (vlax-get-acad-object)) #<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))) )))