BricsCAD VBA は AutoCAD VBA との互換性が高く、プログラムについては、そのまま利用することができます。 サポートされていない部分もありますので、移植時には結果を必ず確認してください。
AutoCAD VBAマクロファイルは拡張子[DVB]のファイルになります。BricsCAD VBAはこの拡張子[DVB]ファイルをそのままロードし、利用することができます。 AutoCAD VBAマクロファイルをロードするとコマンドラインに以下のようなメッセージが表示されます。
プロジェクト 'C:\***\***.dvb' は、他のバージョンか別のアプリケーションで作成されたものです。
このプロジェクトリファレンスを更新します。
このメッセージが表示されたとき、BricsCAD VBAの統合環境のオプションの「変数の宣言を強制する」にチェックを入れていると、ThisDrawing オブジェクトのマクロに Option Explicit 宣言を追加します。 Option Explicit が既に宣言されている場合、または、ThisDrawing オブジェクトのマクロにコードが記述されている場合、マクロ実行時にコンパイルエラーとなります。
BricsCAD VBAの統合環境のオプションの「変数の宣言を強制する」にチェックを入れている場合、ThisDrawingオブジェクトのマクロを確認してください。
オブジェクト、メソッド、関数について、AutoCAD VBAマクロと同じ名前になっていますので、変更する必要はありません。 ただし、オブジェクトの型宣言が AutoCad.AcadPolyline のようにアプリケーション名をつけて宣言している場合は、変更が必要となります。 AcadPolyline のようにオブジェクト名のみの宣言としてください。
オブジェクト、メソッド、関数 などサポートされていないものを使っている場合はコンパイルエラーになります。そのときは、同等の結果が得られる別の方法を考える必要があります。
メソッド、関数の使い方によっては、実行時エラーが起こる場合があります。また、予期して、エラー処理を入れ、適切に処理している場合もあります。 AutoCAD VBAでは、実行時エラーとなるものが、BricsCAD VBA では、エラーにならない場合があります。エラー処理についても、予期する処理をしているか確認してください。
例えば、 システム変数[CLAYER]に、存在しない画層名を設定した場合、AutoCAD VBAでは実行時エラーを返します。 それを予期し、以下のようなコードを作成した場合、AutoCAD VBAでは、画層[Z0] を作成しますが、Bricscad VBAでは実行時エラーとならないため、画層[Z0]は作成されません。
Call ThisDrawing.SetVariable("CLAYER", "Z0")
Dim layerObj As AcadLayer
Set layerObj = ThisDrawing.Layers.Add("Z0")
Call ThisDrawing.SetVariable("CLAYER", "Z0")
■ システム変数 BricsCADでは、AutoCADの持つシステム変数の中でサポートしていないものがあります。 また、サポートはしているが、AutoCADでは読み書きできるが、BricsCADでは読み込み専用になっているものもあります。 SetVariableメソッドやGetVariableメソッドなどを使っている部分について、システム変数の有無などを確認してください。
例えば、 システム変数[DTextEd](AutoCAD2010以降)はサポートしていません。 システム変数[SDI]は、BricsCADでは読み込み専用のシステム変数となり、常に [0] を返します。
■ コマンド BricsCADでは、AutoCADの持つコマンドの中でサポートしていないものがあります。 また、サポートはしているが、AutoCADとは引数やオプションが異なるものもあります。 SendCommandメソッドを使っている部分について、コマンドの有無などを確認してください。
例えば、 コマンド[SaveAs]では、テンプレートとして保存するためのオプション[T]や標準仕様として保存するためのオプション[S]はサポートしていません。
|