外部の ObjectARX アプリケーションで定義された関数には独自の名前空間 VLX からアクセスすることができますが、まず関数を読み込むために vl-arx-import を実行する必要があります。
ObjectARX 関数は、データ タイプ EXRXSUBR として識別されます。たとえば次の例は、startapp を外部 ObjectARX 関数として識別します。
コマンド: (type startapp)
EXRXSUBR
次の関数は、AutoLISP ファイルからロードすると、正しく機能します。
(vl-doc-export 'StartApp2) (vl-load-com) (defun StartApp2 () (setq acadApp (vlax-get-acad-object)) (setq acadDoc (vla-Get-ActiveDocument acadApp)) (setq acadPrefs (vla-Get-Preferences acadApp)) (setq acadPrefFiles (vla-get-Files acadPrefs)) (setq hlpFile (vla-Get-HelpFilePath acadPrefFiles)) (startapp "winhlp32" hlpFile) (princ) ) (princ "\nStartApp2 is loaded, Type (StartApp2) to Run.") (princ)
ただし、StartApp2 を独自の名前空間 VLX としてコンパイルしてから、この関数を呼び出そうとすると、次のようなエラー メッセージが表示されます。
"関数定義がありません: STARTAPP"
このエラーを修正するには、次の修正コードのように、vl-arx-import 関数を使用してstartapp を読み込みます。
(vl-doc-export 'StartApp2) (vl-load-com) (vl-arx-import 'startapp) (defun StartApp2 () (setq acadApp (vlax-get-acad-object) )