Vla-getinterfaceobject

提供:GizmoLabs - だいたい CAD LISP なサイト
2013年11月25日 (月) 13:46時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-getinterfaceobject ''vla-object'' ''ProgID'') ; 機能 : プログラム ID を受け取り、それを インプロセス サーバーと...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-getinterfaceobject vla-object ProgID)


機能
プログラム ID を受け取り、それを インプロセス サーバーとして CAD にロードを試みる。


引数
  • vla-object … Application の VLA オブジェクト
  • ProgID … インタフェース オブジェクトのプログラム ID


戻り値
ProgID のVLAオブジェクト
  • 注記: オブジェクトが CAD にロードされても、タイプ ライブラリには表示されない。オブジェクトには独自のタイプ ライブラリがある。このメソッドにより ActiveX オートメーション サーバに接続できる。
  • 可能な場合は、バージョン依存 ProgID を使用する。 GetInterfaceObject メソッドがバージョンに依存しない ProgID を使用している場合は、バージョン依存 ProgID を使用するようにメソッドを変更する事が推奨される。

ex.たとえば、AutoCAD.AcadLayerStateManager を AutoCAD.AcadLayerStateManager.18 に。


サンプル

(defun gz:explorer ( Dir / Shell result )
  (vl-load-com)
  (setq Shell  (vla-getInterfaceObject (vlax-get-acad-object) "Shell.Application"))

  (setq result (vl-catch-all-apply 'vlax-invoke (list Shell 'Explore Dir)))
  (vlax-release-object Shell)

  (not (vl-catch-all-error-p result))
)


関連事項