STL・DXFから型の体積を出すときの落とし穴:単位、閉じていないメッシュ、輪郭×奥行きの限界

筆者:kokoka-lab 運営者/更新日:

この記事はAIの支援を受けて作成し、内容は運営者が確認しています。誤りに気づいた場合はお問い合わせからお知らせください。

レジン計算機は、3Dデータ(STL)や図面(DXF)から体積を出せます。ただし、ファイルの中身によっては、エラーが出ないまま違う数字が表示されます。この記事は、ツールのソースコードを読み、ページが読み込む部品(three.js 0.160.0 の STLLoader、dxf-parser 1.1.2)と、ツールと同じ計算関数で試した結果です(2026-09-29)。実際のブラウザで手操作した結果ではなく、実際の型での確認もしていません。

1. STLの体積の求め方と、単位の選択

ツールは、三角形ごとに「原点を頂点とする三角錐の符号付き体積」を求めて合計し、絶対値を取ります。STLは三角形の頂点座標と法線を記録する形式で(米国議会図書館の解説)、当社が読んだ範囲では、単位を記録する項目の説明はありませんでした。ツールは、画面で選んだ「mm/cm」を信じて計算します。

ファイル画面の単位結果
一辺10の立方体mm1,000 mm³(1.00 ml)
同じファイルcm1,000,000 mm³(1,000 ml)
一辺1の立方体(cmで書き出した想定)mm約1 mm³(0.001 ml)
同じファイルcm1,000 mm³(1.00 ml)

単位を変えたあとは、同じファイルをもう一度選び直さないと反映されません(画面にも表示されます)。面の向き(法線の裏表)が全部逆でも、絶対値を取るので結果は同じでした。

2. 閉じていないメッシュは、エラーにならないことがある

STLの規則では、三角形どうしが辺を共有して面が閉じている必要があります。立方体の上面(三角形2枚)を抜いて試すと、体積は 666.7 mm³ になりました。真値の1,000 mm³ より小さい値ですが、画面には「読み込み成功」が出ます。

さらに、同じ形を、穴(上面)のある向きへ1,000mm離れた場所(座標の原点から遠い場所)に置くと、上面のない立方体は 32,666.7 mm³(32.67 ml) と出ました。面を閉じた場合は 1,000 mm³ のままです。なお、離す方向が違うと同じ値にはならず(上面と平行な方向に離すと 666.7 mm³ のまま)、穴があると、原点の位置で結果が変わります。ツールがエラーにするのは、結果が0以下か数として成立しないときだけです(向きの違う立方体を混ぜて合計が0になる例で確認)。

対策:結果の ml を、外形の寸法から出した概算(直方体に近似した値など)と必ず比べてください。桁や倍数が違えば、単位か穴を疑います。

3. 空洞や複数の立体

型のデータを読み込むと、求まるのは型の材料の体積で、レジンの量ではありません。レジンが入る「中身」の形を用意してください。

4. DXFは「閉じた輪郭×奥行き」だけ

コードから読み取れる仕様です。使うのは、閉じたポリライン(LWPOLYLINE/POLYLINE)と円のうち、面積が最大の1つだけで、面積に「奥行き」の入力値(初期値10mm)を掛けます。

図面の内容(奥行き10mmの例)ツールの面積備考
40×30の閉じた長方形1,200 mm²12.0 ml
同じ長方形を線(LINE)4本で描いた見つからずエラー線はつながらない
閉じていないポリライン見つからずエラー閉じるフラグが必要
長方形の中に半径5の円(穴)1,200 mm²穴を引かない。真値1,121.5に対し+7.0%(12.0 ml と 11.2 ml)
角R5の丸角長方形(円弧はふくらみ指定)1,150 mm²円弧を直線で結ぶ。真値1,178.5に対し−2.4%
同じ図面に100×100の外枠10,000 mm²最大の外枠が使われる
4×3の長方形(cm図面)cm選択で1,200、mm選択で12単位は選択に従う

穴あきの型や、断面が途中で変わる型は、「輪郭×奥行き」では表せません。円弧の多い輪郭は、円弧をふくらみ指定ではなく多数の直線にしておくと誤差が小さくなると考えられますが、当社は未検証です。

5. 読み込み前のチェック

  1. 単位は mm か cm か。書き出し設定で確認する。
  2. 概算と結果の桁が合うか。
  3. メッシュは閉じているか(3Dソフトの点検機能)。
  4. 図面に外枠や寸法線の輪郭が混ざっていないか。
  5. 穴や段差があるか。あるなら基本形状で分けて計算する。

出典(確認日 2026-09-29)


この記事は AI の支援を受けて作成し、内容を確認のうえ公開しています。 更新日:2026-09-29

← 記事・ガイド一覧へ