天正(Tianzheng)エンティティを含む DWG 図面のサポート
このページでは、天正製ソフトウェア(天正建築、TArch、その他の天正系縦割り製品)で作成された DWG 図面が、汎用の DWG パーサーで完全に解析できない理由と、業界標準の回避策(解析・レンダリングの前にT3 形式の DWG に変換する)について説明します。
背景:天正エンティティを直接解析できない理由
通常の DWG エンティティとは異なり、天正エンティティ(壁、扉、窓、柱、寸法注釈、その他のインテリジェントな建築オブジェクト)は、天正ソフトウェアが独自に定義したデータ形式を使用しています。これらは AutoCAD のネイティブな DWG 標準形式の一部ではありません。
DWG ファイルでは、これらの天正固有のオブジェクトはカスタムエンティティ(プロキシエンティティ)として保存されます。その内部データは、天正自身の ObjectARX ランタイムにとってのみ意味を持ちます。その結果:
- 汎用の商用 DWG パーサーは、これらの独自の天正エンティティを直接解析できません。
- 汎用パーサー(MLightCAD を含む)は、そのような図面内の標準 AutoCAD エンティティのみをレンダリングでき、天正のカスタムエンティティはスキップされるか、プロキシグラフィックスとして表示されます。
業界で一般的な解決策:T3 形式への変換
業界の CAD 閲覧ソフトウェアベンダーは、この問題を同様の方法で処理しています。典型的なパイプラインは次のとおりです。
DWG with Tianzheng entities
|
| (1) Run Tianzheng runtime / conversion tool on the server
v
T3 format DWG
|
| (2) Parse with a standard DWG parser
v
Rendered drawing in the viewer- サーバー側で天正の環境または変換ツールを実行します。 天正独自のエンティティを含む図面は、天正のデータ形式を理解できるソフトウェアで処理されます。
- DWG を T3 形式に変換します。 T3(Tianzheng 3)は互換性のために設計されたエクスポート形式です。変換中に、天正固有のオブジェクトはすべて通常の DWG エンティティに分解(「爆破」)されます。たとえば、壁は線/ポリラインになり、扉や窓はブロック参照になり、天正の注釈は標準の寸法/文字エンティティになります。
- 変換されたファイルを標準の DWG パーサーで解析します。 天正独自のオブジェクトがなくなり、標準の DWG エンティティだけが残るため、汎用の DWG パーサーでも図面を正しく読み取って表示できます。
言い換えれば、T3 形式に変換した後は、図面内の天正固有のオブジェクトが通常の DWG エンティティに変わるため、汎用の DWG パーサーがそのまま動作します。
オープンソースの T3 変換ツールのリファレンス
参考として、この変換を自動化するオープンソースのコマンドラインツールを紹介します。
- t3-conv — 天正の DWG ファイルを T3 DWG ファイルに変換する Windows 用コマンドラインツールで、UI なしのバッチワークフローを提供します。
このツールは内部で実際の天正ランタイムを駆動するため、変換マシンには天正 TArch と AutoCAD がインストールされている必要があることに注意してください。詳細な要件、設定、使用方法については、プロジェクトの README を参照してください。
推奨:前処理ステップの追加
ビジネスシナリオで多数の天正図面を扱う場合は、図面が閲覧パイプラインに入る前に前処理ステップを追加することを推奨します。
Upload / Import
|
v
Detect Tianzheng entities -> If present, convert to T3 DWG
|
v
Store converted DWG
|
v
MLightCAD parsing & rendering- 受信した DWG に天正のカスタムエンティティが含まれているかどうかを検出します(たとえば、天正固有のプロキシエンティティのクラス名やアプリケーション署名を確認する)。
- 含まれている場合は、T3 変換を実行し(たとえば Windows サーバー上の
t3-convなど)、変換されたファイルを保存します。 - 変換された T3 DWG を MLightCAD に渡します。以前は表示されなかった天正オブジェクトがすべて標準エンティティとしてレンダリングされるようになります。
これにより、ビューア自体は軽量でパーサー非依存のままに保ちつつ、天正図面がエンドユーザーに完全に表示されるようになります。