STEP から GLB へ、サイズ上限内で変換:開発した機能と実測結果
STEP アセンブリの入ったフォルダーを、Web の製品ビューアーや AR、ゲームエンジン向けの小さな GLB ファイルにしなければならない。バージョン 1.0.31 からは、許容できるサイズを MB で入力するだけで、3D CAD Converter がその範囲に収まる GLB を書き出します。各部品の名前と色はそのまま残ります。処理はすべてお使いの PC 上でオフラインで行われ、何もアップロードされません。オンラインの変換サービスにはアップロードサイズの上限がありますが、ここではアップロード自体がありません。
STEP ファイル
19.7 MB65 部品のアセンブリGLB、上限なし
60.18 MB2,100,994 三角形GLB、上限 5 MB
4.85 MB129,368 三角形実測結果
| 入力 | 上限なし | 上限 15 MB | 上限 5 MB | 上限 1 MB |
|---|---|---|---|---|
| 65 部品のアセンブリ、STEP 19.7 MB | 60.18 MB2,100,994 三角形 | 14.57 MB456,292 三角形 | 4.85 MB129,368 三角形 | 到達不可。最小ファイルは 4.65 MB で、上限超過として報告 |
| 23 部品のアセンブリ、STEP 8.7 MB | 20.33 MB697,220 三角形 | 14.77 MB495,428 三角形 | 4.87 MB146,400 三角形 | 到達不可。最小ファイルは 1.69 MB で、上限超過として報告 |
| 単一部品、IGES 2.6 MB | 6.54 MB237,938 三角形 | 6.54 MB237,938 三角形すでに上限内のため変更なし | 4.57 MB157,174 三角形 | 0.96 MB26,056 三角形 |
| 単一部品、STEP 2.3 MB | 3.00 MB90,740 三角形 | 3.00 MB90,740 三角形すでに上限内のため変更なし | 3.00 MB90,740 三角形すでに上限内のため変更なし | 0.93 MB22,604 三角形 |
品質は「精密」。サイズは MB 表記で、1 MB は 1,000,000 バイトとして計算しています。すでに上限を下回っているファイルは変更されません。変換時間は、小さな部品で約 3 秒、65 部品のアセンブリで約 2 分でした。テスト機は他の処理で負荷がかかっていたため、正確な秒数は掲載しません。
品質「標準」では、65 部品のアセンブリは上限なしで 14.64 MB、上限 5 MB で 4.92 MB です。「精密」では 1 MB に届かない 23 部品のアセンブリも、「標準」なら収まります(0.95 MB、22,860 三角形)。
サイズ上限付きの GLB はどれも、上限なしの GLB と同じ部品名、階層、色を保っていました。
上限に収める仕組み
- メッシュ化は 1 回だけSTEP ファイルは、選んだ品質で 1 度だけ三角形に変換されます。
- 収まるまで再エクスポートファイルが上限を下回るまで、三角形を減らしてメッシュを書き出し直します。
- 収まる範囲で最大のディテール上限を下回る中で最も多い三角形数が得られます。選んだ品質の三角形数の 5% を下回ることはありません。
- 届かなければ、そう報告上限に届かない場合でも最小のファイルは書き出され、上限超過であることが明示されます。成功として報告されることはありません。
実際のコマンド
# アセンブリ 1 つ、最大 5 MB
cadconvert convert -i assembly.step -o assembly.glb --quality fine --max-size 5
# フォルダー全体、CSV レポート付き
cadconvert batch -i .\step -o .\glb -f glb --max-size 5 --report report.csv
# 監視フォルダー:新しい STEP ファイルが届くたびに GLB に変換
cadconvert watch -i .\incoming -o .\glb -f glb --max-size 5 --report report.csv
--max-size は MB 単位の値を取り、glTF と GLB の出力に対して convert、batch、watch で使えます。ファイルが上限を超えたまま終わった場合、CLI は終了コード 6 を返し、JSON の結果には withinBudget:false、レポートには OverBudget と記録されます。
アプリでは
「オプション」ステップの glTF カードにある 最大ファイルサイズ (MB) 欄。
AI エージェント向け
MCP ツール convert_cad に max_size_mb を指定できます。
修正:STEP アセンブリが 1 つの灰色メッシュになる問題
バージョン 1.0.31 より前は、STEP アセンブリを GLB にエクスポートすると 1 つの灰色メッシュになっていました。これは不具合で、同じリリースで修正しました。現在、STEP アセンブリは次の形で GLB に入ります。
部品ごとに名前付きノード 1 つ
STEP アセンブリと同じ階層で入ります。
部品と面の色
5 色のペンのモデルは 5 色すべてを保ちます。
面法線
GLB に書き込まれるようになりました。
バッチ全体を 1 つのレポートに
batch または watch に --report report.csv を付けるか、アプリの結果画面で CSV レポートをエクスポート をクリックします。ファイルごとに 1 行が出力され、入力と出力のファイルと形式、変換前後の三角形数、入力と出力のサイズ、サイズ上限、上限内かどうか、所要時間、結果、メッセージが記録されます。
できないこと
部品の位置はジオメトリに焼き込まれます。ノードの変換は単位行列です。
繰り返し使われる部品はインスタンス化されません。
IGES と BREP のファイルでは、色も構造も引き継がれません。
STEP の色名と透明度は引き継がれません。
メッシュ修復を使うと、面の色が失われることがあります。
--up-axis y を付けない限り、GLB は Z-up のままです。
お手持ちの STEP アセンブリでサイズ上限を試す無料体験版:10回まで変換、クレジットカード不要。Windows 10/11(64 ビット)。
無料体験版をダウンロード関連記事: glTF と GLB の形式ガイド · CLI と AI エージェントで変換を自動化 · 大きな STEP アセンブリでも処理が固まらなくなりました:3D CAD Converter 1.0.21