AutoCAD Mechanical には他の AutoCAD ベースの業種別ツールセットにはないアクティブ トランザクション機構が存在します。Design Automation API for AutoCAD を利用する際にも、扱う図面によっては、このアクティブ トランザクションの影響を受けるケースがあります。Design Automation API for AutoCAD の処理対象図面に AutoCAD Mechanical オブジェクトが存在する場合です。
Design Automation API for AutoCAD とオブジェクト イネーブラ でご紹介したとおり、Design Automation API for AutoCAD 環境には AutoCAD Mechanical 用のオブジェクト イネーブラが用意されているので、WorkItem 実行時に図面に AutoCAD Mechanical オブジェクトを検出すると、同オブジェクト イネーブラがロードされるようになります。
AutoCAD Mechanical 用のオブジェクト イネーブラがロードされると、この時点でアクティブ トランザクション(AutoCAD Mechanical のアクティブ トランザクション 参照)が有効化されてしまい、アドイン側の標準トランザクションのコミットが遅延する結果になってしまいます。
明示的に AutoCAD Mechanical の機能やオブジェクトを使用した経験がなくても、AutoCAD Mechanical のテンプレート図面から図面を新規作成していたり、AutoCAD Mechanical Desktop 時代からの古い対図面資産を運用していたり、また、それら図面を INSERT コマンドで図面挿入したりしていると、ディクショナリ領域に AutoCAD Mechanical のカスタム オブジェクトが埋め込まれてしまいますのでご注意ください。
Design Automation API for AutoCAD 環境に AutoCAD Mechanical 用のオブジェクト イネーブラがロードされているかは、WorkItem のレポートログで見出すことが出来ます。次の場合には、AutoCAD Mechanical オブジェクト イネーブラがロードされています。つまり、アクティブ トランザクションが有効になっています。
:
[02/25/2023 10:15:13] Version Number: S.51.Z.113 (UNICODE)
[02/25/2023 10:15:14] LogFilePath has been set to the working folder.
[02/25/2023 10:15:14] Loading Mechanical modules.....
[02/25/2023 10:15:14] Loader application completed
[02/25/2023 10:15:14] Regenerating model.
[02/25/2023 10:15:14] Auditing Mechanical Data...
[02/25/2023 10:15:14] Number of errors found: 0 Number of errors fixed: 0
[02/25/2023 10:15:14] Auditing Mechanical Data complete.
[02/25/2023 10:15:14] This drawing was created in language 'CHT' with translation information. Before working with this drawing you should translate it into system language 'ENU'. Working with the untranslated drawing may delete the translation information.
[02/25/2023 10:15:14] AutoCAD menu utilities loaded.
[02/25/2023 10:15:14] Command:
[02/25/2023 10:15:14] Command:
:
AutoCAD Mechanical オブジェクト イネーブラがロードされた環境で、WorkItem で処理した図面のオブジェクト表示が意図しないものになっていたり、特定領域のオブジェクト選択が期待した結果になっていないような場合には、アクティブ トランザクションによってグラフィックス更新が阻害されている可能性があります。AutoCAD Mechanical のアクティブ トランザクション でご案内した対応を試してみてください。
なお、Design Automation API for AutoCAD 環境でオブジェクト イネーブラを無効化させることは出来ません。また、図面でに埋め込まれた AutoCAD Mechanical のカスタム オブジェクトをアドイン側の実装で除去するのは難しいため、そのような試行はお勧めしていません。EXPORTTOAUTOCAD コマンド業種別ツールセットのカスタム オブジェクトを削除することをお薦めします。
By Toshiaki Isezaki
コメント