シートセット関数-BricsCAD

提供:GizmoLabs - だいたい CAD LISP なサイト
2022年7月3日 (日) 08:15時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{BCAD_LISP}} ==BricsCAD の シートセット 関数 について== V21より、BricsCAD は AutoCADのSheetSetManager COMインターフェースと互換性のある…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

BricsCAD の シートセット 関数 について

V21より、BricsCAD は AutoCADのSheetSetManager COMインターフェースと互換性のあるSheetSetManagerのCOMインターフェースを提供している。

AutoCAD の COMインターフェースは、AutoLISP から AutoCAD にアクセスできない特殊な実装だが、BricsCAD は、通常のCOMデザインルールに従って実装されているため、Lisp や VB/VBA からもアクセスが可能になっている。

  • LISPアプリケーション・コードから SheetSetManager のルート・インターフェースにアクセスするには、以下のようにする。
(vla-GetInterfaceObject cad "BricscadSm.AcSmSheetSetMgr")
  • VB/VBA/C/C++/Delphi アプリケーションは、axbricscadsm.dll を参照して SheetSetManager COM インターフェースにアクセスすることができる。
  • 経験豊富な開発者向けに「axbricscadsm.idl」も提供されている。
  • SheetSetManager COM インターフェース(LISP を含むすべてのプログラミング言語用)は、Windows のみで使用できる。

プログラマへの特別なお知らせ

AutoCAD が提供する SheetSetManager COMインターフェースは、常に *Methods* のみを使用し、Properties は使用しません。これは形式的には有効ですが、むしろプロフェッショナルではなく、実装者がCOMインターフェース設計に関する深い知識を欠いていることを示している。(LISP から移行させたかったという意図もあったと思われる。) 残念ながら、私たちは互換性の理由から、この設計に固執しなければなりませんでした。 しかし、BricsCAD の実装では、基本オブジェクトクラスとして *IDispatch* を使用しており、すべてのプログラミング言語(Lispを含む)からSheetSetManager COMインターフェースにアクセスできるようになっている。

実際、以下のSheetSetManager COMインターフェースが提供されています。

提供されている COMインターフェス


BricsCAD SheetSetManager COM インターフェースは一般的な COM デザインルールに準拠しているため、(vlax-import-type-library) によって LISP COM ラッパー関数を自動生成することが可能。

(vlax-import-type-library :tlb-filename "axbricscadsm.dll" :methods-prefix "ssm-" :properties-prefix "ssm-" :constants-prefix "ssm:")

なお、生成されるのはメソッドのみ(COM定義で「プロパティ」関数が定義されていないため)。