「シートセット関数-BricsCAD」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
編集の要約なし
 
(同じ利用者による、間の1版が非表示)
2行目: 2行目:
==BricsCAD の シートセット 関数 について==
==BricsCAD の シートセット 関数 について==


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


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


* SheetSetManager COM インターフェース(LISP を含むすべてのプログラミング言語用)は、Windows のみで使用できる。
* SheetSetManager COM インターフェース(LISP を含むすべてのプログラミング言語用)は、Windows のみで使用できる。


== プログラマへのスペシャルインフォメーション ==
== プログラマへのスペシャルインフォメーション ==
116行目: 115行目:
|-  
|-  
|}
|}
[[Category:BricsCADのLISP]]

2023年11月25日 (土) 10:25時点における最新版

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

BricsCAD は V21より、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インターフェス


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
(組み合わせ可能、ビット単位のOR)
8