「シートセット関数-BricsCAD」の版間の差分
(ページの作成:「{{BCAD_LISP}} ==BricsCAD の シートセット 関数 について== V21より、BricsCAD は AutoCADのSheetSetManager COMインターフェースと互換性のある…」) |
|||
37行目: | 37行目: | ||
なお、生成されるのはメソッドのみ(COM定義で「プロパティ」関数が定義されていないため)。 | なお、生成されるのはメソッドのみ(COM定義で「プロパティ」関数が定義されていないため)。 | ||
==シートセットマネージャの列挙型と定数== | |||
SheetSetManager COMインターフェースの主なルート・オブジェクトの説明 | |||
{| class="wikitable" | |||
! フラグ !! 名前!! 値 | |||
|- | |||
| rowspan="2" | AcSmオブジェクトリファレンスフラグ | |||
| AcSmObjectReference_SoftPointer | |||
| 1 | |||
|- | |||
| AcSmObjectReference_HardPointer | |||
| 2 | |||
|- | |||
| | |||
|- | |||
| rowspan="5" | プロパティフラグ | |||
| EMPTY | |||
| 0 | |||
|- | |||
| CUSTOM_SHEETSET_PROP | |||
| 1 | |||
|- | |||
| CUSTOM_SHEET_PROP | |||
| 2 | |||
|- | |||
| CUSTOM_SUBSET_PROP | |||
| 4 | |||
|- | |||
| IS_CHILD | |||
| 8 | |||
|- | |||
| | |||
| (組み合わせ可能、ビット単位のOR) | |||
|} |
2022年7月3日 (日) 08:34時点における版
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インターフェス
- Root Objects
- Container Objects
- Component Objects
- Reference Objects
- Enumerator Objects
- Dwg Database Objects
- Persistent Objects
- Property Value Objects
- Other Objects
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定義で「プロパティ」関数が定義されていないため)。
シートセットマネージャの列挙型と定数
SheetSetManager COMインターフェースの主なルート・オブジェクトの説明
フラグ | 名前 | 値 |
---|---|---|
AcSmオブジェクトリファレンスフラグ | AcSmObjectReference_SoftPointer | 1 |
AcSmObjectReference_HardPointer | 2 | |
プロパティフラグ | EMPTY | 0 |
CUSTOM_SHEETSET_PROP | 1 | |
CUSTOM_SHEET_PROP | 2 | |
CUSTOM_SUBSET_PROP | 4 | |
IS_CHILD | 8 | |
(組み合わせ可能、ビット単位のOR) |