「シートセット関数-BricsCAD」の版間の差分
21行目: | 21行目: | ||
== 提供されている COMインターフェス == | == 提供されている COMインターフェス == | ||
* [[ | * Root Objects | ||
* [[Container Objects]] | ** [[IAcSmSheetSetMgr]] | ||
* [[Component Objects]] | ** [[IAcSmDatabase]] | ||
* [[Reference Objects]] | * Container Objects | ||
* [[Enumerator Objects]] | ** [[IAcSmSheetSet]] | ||
* [[Dwg Database Objects]] | ** [[IAcSmSheetViews]] | ||
* [[Persistent Objects]] | ** [[IAcSmSheetSelSets]] | ||
* [[Property Value Objects]] | ** [[IAcSmViewCategories]] | ||
* [[Other Objects]] | ** [[IAcSmCalloutBlocks]] | ||
** [[IAcSmResources]] | |||
** [[IAcSmProjectPointLocations]] | |||
* Component Objects | |||
** [[IAcSmSheet]] | |||
** [[IAcSmSubset]] | |||
** [[IAcSmSheetView]] | |||
** [[IAcSmSheetSelSet]] | |||
** [[IAcSmViewCategory]] | |||
** [[IAcSmComponent]] | |||
** [[IAcSmProjectPointLocation]] | |||
* Reference Objects | |||
** [[IAcSmObjectId]] | |||
** [[IAcSmObjectReference]] | |||
** [[IAcSmFileReference]] | |||
* Enumerator Objects | |||
** [[IAcSmEnumDatabase]] | |||
** [[IAcSmEnumSheetSelSet]] | |||
** [[IAcSmEnumSheetView]] | |||
** [[IAcSmEnumComponent]] | |||
** [[IAcSmEnumPersist]] | |||
** [[IAcSmEnumFileReference]] | |||
** [[IAcSmEnumViewCategory]] | |||
** [[IAcSmEnumProperty]] | |||
** [[IAcSmEnumAcDbBlockRecordReference]] | |||
** [[IAcSmEnumProjectPointLocation]] | |||
* Dwg Database Objects | |||
**[[IAcSmAcDbDatabase]] | |||
**[[IAcSmAcDbObjectReference]] | |||
**[[IAcSmAcDbLayoutReference]] | |||
**[[IAcSmNamedAcDbObjectReference]] | |||
**[[IAcSmAcDbBlockRecordReference]] | |||
**[[IAcSmAcDbViewReference]] | |||
* Persistent Objects | |||
**[[IAcSmPersist]] | |||
**[[IAcSmPersistProxy]] | |||
* Property Value Objects | |||
**[[IAcSmCustomPropertyBag]] | |||
**[[IAcSmCustomPropertyValue]] | |||
* Other Objects | |||
**[[IAcSmPublishOptions]] | |||
**[[IAcSmFiler]] | |||
2022年7月24日 (日) 21:17時点における版
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 においても互換性の理由から、この設計に固執する必要があった。 しかし、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) |