Post

StepGeomChecker V2.1 更新内容

StepGeomChecker V2.1 更新内容

StepGeomChecker V2.1 は、V2 から見て 読み込み性能、品質設定、計測まわり、選択操作、安定性 をまとめて見直した更新です。

前回の V2 では、まず使える状態まで機能を揃えることを優先していました。V2.1 ではその土台の上で、重いファイルをどう扱いやすくするか設定変更をどう素直に反映させるか計測や選択をどう安定させるか を詰めています。

V2.1 で変わったこと

今回の更新は、単に 1 つの不具合修正ではありません。差分整理では、C# 側で新規ファイル 2、本体変更 19、さらに StepBridge.cpp でも大きな更新が入っています。V2.1 では、表示品質設定をまとめて扱うファイルが追加され、C++ 側も含めて読込経路と選択処理がかなり整理されています。

特に大きいのは、表示品質をプリセットで切り替えられるようになったこと大きいモデルでの読込やキャンセル待ちを改善したことピックや計測の安定性を上げたことです。

品質設定を扱いやすくした

V2.1 では、表示品質設定をまとめて扱う仕組みが追加されました。新しく MainForm.PerformanceSettings.csPerformanceSettingsModels.cs が入り、LightweightStandardFineCustom のプリセットで読込条件を切り替えられる構成になっています。

各プリセットでは、Deflection、角度制限、スレッド数がまとまって管理されます。さらに、ファイルサイズに応じて初期値を変えるロジックも入り、大きいファイルでは軽量寄り、小さいファイルでは高品質寄りに寄せる考え方が導入されています。

UI 側では、Deflection の値変更が内部設定とずれないように同期処理が追加され、設定の永続化も行うようになりました。V2 では「UI 上で変えても動作に変わりがない」と見えやすかった部分がありましたが、V2.1 ではそこを素直に反映する方向へ修正しています。

読み込みを速く、扱いやすくした

V2.1 の大きな柱のひとつが、STEP 読み込みまわりの改善です。

DirectX 表示経路では、以前は TransferCache を意図的に使わない構成があり、キャッシュがあってもフル読込に寄りやすい状態でした。V2.1 ではこの点を見直し、DirectX + STEP でも transfer cache を通常どおり参照する構成にしています。加えて、XDE を試して classic STEP にフォールバックする二重読込も減らしやすくなっています。

性能記録では、350MB の STEP ファイル、DirectX、deflection=0.5 の条件で、AnalyzeTotal374931 ms から 11104 msLoad_Total372376 ms から 8382 ms まで短縮されています。数値としても、V2 からの差がかなり大きい更新です。

また、V2.1 では Lightweight 読込の考え方が整理され、低スペック環境や大きなモデルでも扱いやすくする方向が入っています。単に「速くする」だけでなく、ファイルの重さに応じて無理のない品質に寄せる 方針になったのが今回のポイントです。

キャンセル待ちを分かりやすくした

重い STEP を読んでいるときに Cancel を押しても、すぐには止まらず、しかも見た目上は普通に読み込み続けているように見える場面がありました。

V2.1 では、progress callback を継続 / 中断を返せる形へ見直し、LoadTessellateParts、色取得の主要区間でキャンセル要求を拾えるようにしています。さらに、XDE 読み込みは Perform(...) の一発処理をやめ、ReadFile(...) と transfer を分ける構成に変えました。これにより、どこで待っているのかがログと画面で見えやすくなっています。

表示面でも、Cancel 押下後は通常の Loading ... ではなく、キャンセル待ちであることが分かる文言 に切り替えるようにしています。大きいモデルで停止まで少し待つ場合でも、「効いていないのか、待機中なのか」が分かりやすくなりました。

計測の見え方と精度を整えた

V2.1 では、計測結果の見え方や扱いも見直しています。

特に二面間距離では、平行平面間での法線距離計算を安定化し、複雑な面形状に対するフォールバックも追加されています。あわせて、「距離」と「法線」ラベルの逆転修正、計測ステータス凡例の統一も行われています。画面上の説明と結果表示が噛み合うように整えた更新です。

数値の計算そのものだけでなく、結果を見た人が迷いにくいこと にも手を入れているのが V2.1 の特徴です。

ピックと大容量モデルの扱いを改善した

V2.1 では、マウス選択まわりにも変更があります。

C++ 側には Step_PrewarmPick() が追加され、大きいモデルでのピック処理を速く、安定して扱うための事前準備が入っています。バウンディングボックス判定を使って対象形状を絞り込み、選択処理を軽くする方向です。

また、Lightweight モードでは並列処理を無効にして安定性を優先し、Standard / Fine では並列処理を使う構成になっています。用途や環境に応じて、速さと安定性のバランスを取りやすくしています。

メモリの使い方も見直した

大きな STEP / IGES を続けて読むときは、旧モデルの表示メッシュが残ったまま新しい読込へ進み、メモリピークが高くなりやすい問題がありました。

V2.1 では、新規モデル読込前に旧表示メッシュを先行解放し、DirectX ビュー側の関連情報もまとめてクリアするようにしています。さらに、DirectX 経路で持っていた不要な CPU clone や重複コピーも減らしています。

その結果、読込中・表示中のメモリピーク低下、モデル切替時の GC 負荷低下、DirectX 経路の安定性改善を狙った構成になっています。あわせて、MeshPartsCacheTransferShapeCache には総量上限も入り、ローカルストレージを圧迫し続けにくい運用へ寄せています。

V2.1 はどんな更新か

今回の V2.1 は、派手な新機能をひとつ追加する更新というより、V2 を実際に使う中で気になりやすい部分をまとめて底上げした更新 です。

  • 読み込みを速くする
  • 品質設定を選びやすくする
  • キャンセル待ちを分かりやすくする
  • 計測表示を分かりやすくする
  • 大きいモデルでも扱いやすくする

という方向で、日常的な使い勝手を詰めています。

今後も StepGeomChecker は、3D データを軽く開いて、必要な確認をすばやく進められるツールとして改善を重ねていきます。

This post is licensed under CC BY 4.0 by the author.