概要 - 登録アプリケーション(AutoLISP)

AutoCAD によってアプリケーションが認識されるようにするためには、名前を登録する必要があります。

拡張データを図形にアタッチするためには、拡張データにアプリケーション名が含まれている必要があり、同時にアプリケーション名が APPID シンボル テーブル内に存在していなければなりません。アプリケーションの登録は、regapp 関数を使用して行います。regapp 関数には、アプリケーション名として使用する文字列を指定します。この関数によって名前が APPID に正しく追加された場合は、アプリケーションの名前が返されます。正しく追加できなかった場合は nil が返されます。結果が nil ということは、その名前がすでにシンボル テーブルに存在していることを示します。アプリケーション名は 1 つの図面に一度だけ登録すればよいので、これは実際にはエラー状態でなく、予期される戻り値です。

アプリケーションを登録する前に、名前がまだ APPID シンボル テーブルに存在していないかどうかをチェックする必要があります。名前が APPID テーブルに存在しない場合は、アプリケーションの名前を登録する必要があります。それ以外の場合は、先に進んで、アプリケーションの図形に拡張データをアタッチすることができます。

次のコード例では、regapp の典型的な使用例を示します。

(setq appname "MYAPP_2356")                            ; Unique application name.
(if (tblsearch "appid" appname)                        ; Checks if already registered.
  (princ (strcat "\n" appname " already registered."))

  (if (= (regapp appname) nil)                         ; Some other problem.
    (princ (strcat "\nCan't register XDATA for " appname ". "))
  )
)

regapp 関数はセキュリティ機能を備えていますが、2 種類の異なるアプリケーションが同じ名前を指定したかどうかをチェックすることはできません。 名前を他と重複しないようにするための 1 つの方法は、会社名や製品名に他と重複しない数字(電話番号や現在の日時など)を付けて、それをアプリケーション名にするなどの方法を採ることです。