木材カット最適化

定尺材と必要部材リストから最適な板取りパターン・ロス率・必要本数を算出

1820mm等の定尺材に対して必要な部材リスト(長さ×数量)を入力すると、切断ロスを最小化する板取りパターンを自動算出。

定尺材の設定

mm

必要部材リスト

計算結果

部材の長さを入力すると結果が表示される

本ツールはFirst Fit Decreasing アルゴリズムによる近似解であり、最適解を保証するものではない。実際のカット時は現物の状態を確認すること。

不具合・ご要望はお気軽に@MahiroMemoまで

PR

📘 DIYに役立つ工具・材料

ホームセンターで木材を買う前に「板取り」を考えたことはあるか

棚を1台作るのに1×4材が5本必要——そう計算して6フィート材を5本買ったら、端材がゴロゴロ余った。逆に、長さの組み合わせを工夫すれば4本で済んだかもしれない。ホームセンターのカットサービスを使うDIYerなら、一度はこんな後悔をしたことがあるだろう。

紙にメモして手計算するのも悪くないが、部材が5種類・10本を超えたあたりから頭がパンクする。しかも「切断しろ」(のこぎりの刃の厚み)を忘れると、最後の1本が足りなくなるという落とし穴もある。

木材カット最適化は、定尺材の長さと必要部材リストを入力するだけで、切断ロスを最小化する板取りパターンを自動算出するツール。必要な定尺材の本数、ロス率、各定尺材の部材配置をSVGバーで可視化する。ブラウザ完結・外部送信なし。スマホからホームセンターの売り場で使える。

なぜ木材カット最適化ツールを作ったのか

英語圏にはあるのに日本語がない

「Cut List Optimizer」「1D Cutting Stock Problem solver」——英語で検索すると、無料のWebツールがいくつか見つかる。ところが日本語で「板取り 計算」「木材 カット 最適化」と検索しても、まともなWeb無料ツールがほぼ存在しない。

見つかるのはExcelテンプレート(PCが必要)、業務用ソフト(有料・インストール必要)、あるいは「自分で紙に書いて試行錯誤してください」という解説記事ばかり。ホームセンターの売り場でスマホからサッと使えるツールが欲しい——そんなシンプルな需要に応えるものがなかった。

切断しろを忘れて泣いた経験

自分自身のDIY失敗談がもうひとつの動機だ。900mmの棚板を2枚、1820mmの1×4材から切り出そうとした。900×2=1800mmで20mmの余裕があると思ったが、丸鋸の刃厚3mmを忘れていた。900+3+900=1803mmで、ギリギリ足りたものの仕上がりがシビアになった。部材数が増えるとこの積み重ねが効いてくる。ツールが刃厚を自動加算してくれれば、こんなミスは防げる。

こだわった設計判断

  • 日本の定尺規格プリセット: 1820mm(6尺)、2440mm(8尺)、3650mm(12尺)など、ホームセンターで買える規格サイズをワンタップで選べる
  • 切断しろ(kerf)の明示的入力: 丸鋸は約3mm、手鋸は約1-2mm。デフォルト3mmで、変更も自由
  • SVG可視化: 数字の羅列だけでは板取りの感覚がつかみにくい。各定尺材の部材配置をカラーバーで表示し、端材をグレーで可視化した
  • 外部送信なし: 全計算をブラウザ内で完結。オフライン環境(店内の電波が弱い場所)でも使える

板取り計算・ビンパッキング問題の基礎知識

木材を無駄なくカットするための「板取り計算」は、数学的には1次元ビンパッキング問題と呼ばれる古典的な組合せ最適化問題だ。ここではその基本を第一原理から押さえておこう。

板取り計算 とは

板取り計算とは、決まった長さの原材料(定尺材)から、異なる長さの部材を効率よく切り出す配置を決める計算のこと。製材所では「歩留まり計算」、金属加工では「ネスティング」とも呼ばれる。

日常に置き換えると、こんなイメージだ。長さ180cmのフランスパンから、15cmのサンドイッチ用スライスを何枚取れるか——単純に割り算すれば12枚だが、ナイフの切り幅(=切断しろ)を考慮すると11枚しか取れないかもしれない。しかも「15cmを5枚と20cmを3枚」のように異なるサイズが混在すると、どの順番で切り出せばパンの余りが最小になるか、組み合わせの数が爆発的に増える。

1次元ビンパッキング問題 とは

数学的には、長さの決まった「箱(ビン)」に「荷物(部材)」を詰め込み、使う箱の数を最小化する問題。1次元なのは、幅や高さを無視して長さだけを考えるから。

ビンパッキング問題(Bin Packing Problem):
  入力: ビン容量 C, 荷物サイズの集合 {s₁, s₂, ..., sₙ}
  目的: 全荷物をビンに詰め、使用ビン数を最小化
  制約: 各ビン内の荷物サイズ合計 ≤ C

この問題はNP困難に分類される。つまり、部材の数が増えると最適解を求める計算時間が指数関数的に増大する。部材が20個もあれば、全組み合わせをしらみつぶしに調べるのは現実的ではない。

切断しろ(kerf)が計算を変える

木材カットでは「切断しろ」——のこぎりの刃が通る分の材料消失——が問題を複雑にする。丸鋸で約3mm、手鋸で約1〜2mm。1カットでは微小だが、10カットで30mmのロスは無視できない。

切断しろを考慮した板取り計算では、各部材を配置するときに「部材長 + 切断しろ」を消費長さとして扱う。これにより、実際にカットしたときの材料消費を正確にシミュレーションできる。

なぜ「近似解」で十分なのか

NP困難ということは、完璧な最適解を保証するアルゴリズムは現実的な時間では動かない。しかし幸いなことに、賢い近似アルゴリズム(後述するFFDなど)を使えば、最適解とほぼ同じ結果が高速に得られる。DIY用途の部材数(数十本程度)であれば、近似解と最適解の差はほとんどの場合0〜1本に収まる。理論的にもFFDは最適解の11/9倍+6/9以内に収まることが証明されている(参考: Wikipedia - Bin packing problem)。

なぜ板取り計算が材料費を左右するのか

板取り計算を「面倒だから」と省略すると、思った以上のコストが発生する。ここでは材料ロスがどう財布と環境に響くかを具体的に見ていこう。

材料ロスの経済的インパクト

SPF 2×4材(6フィート/1820mm)の価格は1本あたり約300〜500円(2024年時点のホームセンター相場)。ウッドデッキを作る場合、根太と床板で30〜50本を購入することも珍しくない。

板取り計算なしで「余裕を見て多めに」購入すると、10〜15%の余剰が出るのが典型的。50本×400円×15% = 3,000円の無駄。一方、板取り計算でロス率を3〜5%に抑えれば、購入本数を2〜3本削減でき、材料費だけでなくカットサービス代(1カット30〜50円×削減カット数)も節約できる。

木材規格と定尺材の制約

日本のホームセンターで入手しやすいSPF材・ホワイトウッドの定尺サイズはJAS規格に準拠している。

呼称長さ主な用途
6尺1820mm棚板・小家具
8尺2440mm大型家具・柵
12尺3650mmウッドデッキ・フェンス

定尺材は「この長さでしか買えない」という制約があるため、必要な部材長さとの組み合わせ次第でロス率が大きく変動する。たとえば1820mmの定尺材から900mmの部材を2本取ると、切断しろ3mmを含めて900+3+900+3=1806mmで残り14mm。ほぼロスゼロ。しかし700mmの部材を2本取ると700+3+700=1403mmで残り417mm——22.9%が端材になる。

環境面での意義

林野庁の統計によると、国内の木材自給率は約4割。残りは輸入材に頼っている。端材を最小化する板取り計算は、材料の無駄遣いを減らし、限りある森林資源の有効活用につながる。SDGsの目標12「つくる責任 つかう責任」の観点からも、個人レベルでの材料効率化は意味がある。

「たかが端材」が積もるとどうなるか

DIYを継続的に行う人にとって、端材の蓄積は地味に大きな問題だ。100mm未満の端材は再利用が難しく、廃棄するにも処分費がかかる(自治体によっては粗大ゴミ扱い)。板取り計算で端材を減らせば、作業スペースの圧迫も防げる。逆に300mm以上の端材が出るなら、小物入れの底板やすのこの補強材として活用計画を立てておくのが現実的だ。

木材カットの板取り計算が役立つ場面

本棚・カラーボックスの自作

棚板・側板・背板など、複数サイズの板を組み合わせる収納家具。部材数が10を超えると手計算では最適な組み合わせを見つけにくい。

ウッドデッキの根太・床板計算

根太と床板でサイズが異なる2種類の部材を大量にカットする場面。定尺材のロスを数%改善するだけで、購入本数が1〜2本減ることもある。

引越し時の家具自作

新居のサイズに合わせたローテーブルやシェルフを作るとき。寸法が固定されていないからこそ、「この組み合わせならロスが少ない」という判断をツールに任せられる。

ワークショップ・木工教室の材料準備

参加者全員分の部材をまとめてカットする場合、部材リストが膨大になる。ツールで必要本数とカットパターンを事前に出しておけば、当日の作業がスムーズに進む。

基本の使い方

3ステップで板取りパターンが出る。

Step 1: 定尺材を選択する

1820mm(6尺)、2440mm(8尺)などのプリセットから定尺材の長さを選ぶ。ホームセンターの棚に並んでいる規格サイズに合わせよう。特殊な長さの場合は「カスタム」で自由入力できる。

Step 2: 切断しろと部材リストを入力する

切断しろ(刃厚)はデフォルト3mm(丸鋸想定)。手鋸なら1〜2mmに変更する。次に、必要な部材の名前・長さ(mm)・数量を入力。「+ 部材を追加」で何行でも追加できる。

Step 3: 結果を確認する

入力と同時にリアルタイムで計算結果が表示される。必要な定尺材の本数、総ロス率、部材使用合計、端材合計の数値と、各定尺材の板取りパターン(SVGバー)を確認できる。「結果をコピー」ボタンでテキスト形式のカット表をクリップボードにコピーして、メモアプリやLINEに貼り付けられる。

具体的な使用例で板取り計算を検証する

ケース1: 本棚の棚板5枚

  • 定尺材: 1820mm
  • 切断しろ: 3mm
  • 部材: 棚板 450mm × 5枚、側板 900mm × 2枚

結果: 定尺材3本で全部材がカットできる。1本目に900mm+900mm(残り17mm)、2本目に450mm×4(残り8mm)、3本目に450mm×1(残り1367mm)。3本目のロスが大きいので、棚板を1枚追加して6枚にするとロス率が改善するケースだ。

ケース2: ウッドデッキ根太+床板

  • 定尺材: 3650mm(12尺)
  • 切断しろ: 3mm
  • 部材: 根太 900mm × 6本、床板 1200mm × 8枚

大量の部材をFFDアルゴリズムが効率よく配置する。根太と床板のサイズ差を活かし、同じ定尺材に混載できるパターンを自動で見つける。

ケース3: カラーボックス風収納

  • 定尺材: 1820mm
  • 切断しろ: 3mm
  • 部材: 天板 600mm × 1、底板 600mm × 1、側板 300mm × 2、棚板 570mm × 2、背板 580mm × 1

小さな家具でも6種類の部材を効率よく詰め込むパターンを提示してくれる。

ケース4: 端材が出にくい組み合わせを探す

定尺材1820mmに対して、600mm×3=1800mm(+kerf×3=9mm → 1809mm)で残り11mm。ほぼロスなしのパターン。ツールで試してみると、この組み合わせがロス率0.6%と極めて効率的だと確認できる。

ケース5: フェンス用の縦板を大量カット

  • 定尺材: 3650mm(12尺)
  • 切断しろ: 3mm
  • 部材: 縦板 800mm × 15本

結果: 定尺材4本で全15本をカットできる。1本目〜3本目はそれぞれ800mm×4本を配置し、消費長さは(800+3)×4=3212mmで端材438mm。4本目に残り3本を配置し、消費長さは(800+3)×3=2409mmで端材1241mm。定尺材合計14,600mmに対して部材合計12,000mm、端材合計2,555mm(kerf消費45mm含む)でロス率約17.5%。もし縦板の長さを900mmに変更すると1本あたり4本しか取れず、端尺材4本で収まらない。800mmという寸法が12尺材と相性の良い長さだと分かる。

ケース6: 子供用ままごとキッチンの部材

  • 定尺材: 1820mm(6尺)
  • 切断しろ: 3mm
  • 部材: 天板 500mm × 1、側板 700mm × 2、棚板 470mm × 2、背面補強 480mm × 2、前面幕板 500mm × 1

結果: 定尺材3本が必要。1本目に700mm+700mm(消費1406mm、端材414mm)、2本目に500mm+500mm+480mm(消費1489mm、端材331mm)、3本目に480mm+470mm+470mm(消費1426mm、端材394mm)。ロス率は定尺材合計5,460mmに対して端材合計1,139mmで約20.9%。手計算だと「側板2枚+天板1枚で1820mmに入るかな?」と試行錯誤しがちだが、700+3+700+3+500=1906mmで定尺材をオーバーする。こうした微妙な超過をツールが瞬時に判定してくれるのが強みだ。

仕組み・アルゴリズム — FFDを選んだ理由と計算の流れ

候補手法の比較 — なぜ First Fit Decreasing を採用したか

板取り計算(1次元ビンパッキング問題)を解くアルゴリズムは複数存在する。開発時に検討した4つの手法を比較する。

手法最適性計算速度実装の複雑さブラウザ適性
First Fit Decreasing(採用)近似(最適の≈1.22倍以内)O(n log n) — 瞬時低い最適
Best Fit Decreasing近似(FFDと同等)O(n log n) — 瞬時やや高い良好
分枝限定法(厳密解)最適解保証指数時間 — 部材20個超で遅延高い不向き
動的計画法最適解保証擬多項式時間高い条件付き

Best Fit Decreasing(BFD) はFFDと同じく降順ソート後に配置するが、「残り容量が最小のビン」を選ぶ点が異なる。理論的な近似率はFFDとほぼ同等で、実測でも差が出るのは稀。ただし「残り容量が最小のビンを探す」処理が必要になるため、実装がやや複雑になる。FFDの「最初に見つけたビンに入れる」というシンプルさの方が、バグの入り込む余地が少ない。

分枝限定法は最適解を保証するが、最悪計算量が指数関数的。部材が30個を超えるとブラウザがフリーズするリスクがある。DIY用途で「最適の1本差」を追求するために数秒待つのは実用的ではない。

動的計画法も最適解を求められるが、定尺材の長さが大きいとメモリ消費が膨大になる(1820mmを1mm単位で扱うだけで配列が巨大化する)。ブラウザ上でのリアルタイム計算には不向きだ。

結論として、計算速度・実装のシンプルさ・近似精度のバランスが最も優れているFFDを採用した。実用的な部材数(数十本)であれば、FFDの結果が最適解と一致するケースが大半を占める。

FFDアルゴリズムの計算フロー

First Fit Decreasing の手順は以下の通り:

FFD アルゴリズム:
  1. 全部材を長さの降順にソートする
  2. 各部材について:
     a. 既存のビン(定尺材)を先頭から走査
     b. 「部材長 + 切断しろ」が残り長さに収まる最初のビンに配置
     c. 収まるビンがなければ、新しいビンを追加して配置
  3. 全部材の配置が完了したら結果を出力

「降順ソート」がポイントだ。大きい部材を先に配置することで、小さい部材が隙間にフィットしやすくなる。昇順や入力順で配置するFirst Fitと比べて、FFDは使用ビン数を大幅に削減できる。

具体的な計算例 — ステップバイステップ

以下の条件で板取りをシミュレーションしてみよう:

定尺材: 1820mm
切断しろ: 3mm
部材リスト:
  棚板A  900mm × 2本
  棚板B  450mm × 3本
  背板   580mm × 1本

Step 1: 降順ソート

900mm, 900mm, 580mm, 450mm, 450mm, 450mm

Step 2: 配置

部材 900mm → ビン1に配置(残り: 1820 − 900 − 3 = 917mm)
部材 900mm → ビン1に配置(残り: 917 − 900 − 3 = 14mm)
部材 580mm → ビン1に入らない → ビン2に配置(残り: 1820 − 580 − 3 = 1237mm)
部材 450mm → ビン2に配置(残り: 1237 − 450 − 3 = 784mm)
部材 450mm → ビン2に配置(残り: 784 − 450 − 3 = 331mm)
部材 450mm → ビン2に配置(残り: 331 − 450 − 3 → 入らない)
         → ビン3に配置(残り: 1820 − 450 − 3 = 1367mm)

Step 3: 結果

ビン1: [900mm, 900mm] 端材 14mm
ビン2: [580mm, 450mm, 450mm] 端材 331mm
ビン3: [450mm] 端材 1367mm
────────────────────
定尺材 3本、端材合計 1,712mm
ロス率: 1,712 / (1,820 × 3) × 100 ≈ 31.4%
部材使用率: 68.6%

ビン3の端材が1,367mmもある。ここに別の用途の部材を追加できれば、ロス率をさらに改善できるだろう。

切断しろ(kerf)の処理

本ツールでは、各部材を定尺材に配置する際に「部材の長さ + 切断しろ」を消費長さとして計算する。これにより、丸鋸の刃厚分のロスが自動的に考慮される。端材の長さは「定尺材の長さ − 部材消費長の合計」で算出される。最後の部材にも切断しろが加算されるため保守的な見積もりになるが、「足りない」よりは「少し余る」方が安全だ。

英語ツールとの違い——mm単位の日本規格に対応

既存の英語ツール

英語圏のCut List OptimizerやCutListOptimizerProは高機能だが、プリセットがインチ/フィート基準だったり、定尺材のデフォルトが96インチ(2438mm)だったりと、日本のホームセンター規格とは微妙にずれている。

本ツールの差別化ポイント

  • mm単位・日本規格のプリセット: 1820mm(6尺)、2440mm(8尺)、3650mm(12尺)など
  • 切断しろ(kerf)の明示的サポート: 英語ツールでもkerf対応はあるが、「刃厚」という日本語での説明付き
  • UIが日本語: 部材名を日本語で入力できるので、カット表をそのままホームセンターのカットサービスに見せられる
  • モバイルファースト設計: 売り場でスマホから使うことを前提としたUI

木材の規格サイズと定尺材の豆知識

SPF材・ホワイトウッドの定尺

ホームセンターで最も手に入りやすいSPF材(1×4、2×4等)の定尺は6フィート(1820mm)と12フィート(3650mm)が主流。8フィート(2440mm)も置いている店舗がある。1×4材の実寸は19mm×89mm、2×4材は38mm×89mmで、名称と実寸が異なるので注意(参考: SPF材とは - コメリ)。

カット料金の相場

ホームセンターのカットサービスは1カット30〜50円が相場。10カットで300〜500円。自分で丸鋸を持っていれば無料だが、精度はホームセンターのパネルソーに軍配が上がることが多い。カット数を減らす板取りパターンは、カット料金の節約にもつながる。

端材の活用

ロスで出た端材も、100mm以上あれば小物入れの底板やすのこの補強材に使える。300mm以上なら小さな棚板やDIY用の治具として活用できる。端材ゼロを目指すよりも、「端材で何が作れるか」を考える方が現実的だ。

板取り計算で失敗しないための Tips

切断しろを忘れない

最も多い失敗パターン。丸鋸の刃厚(約3mm)は各カットごとに消費される。10カットなら30mmのロスが生じる。ツールのデフォルト値(3mm)を活用して、計算段階で刃厚を織り込もう。

木目方向を考慮する

本ツールは1次元(長さ方向)の最適化のみ対応している。幅のある板材で木目方向を揃えたい場合は、同じ方向で取れる部材同士をグループ化してから入力すると、実際のカットに近い結果が得られる。

余裕をもった本数で購入する

FFDの結果が「3本」でも、節や反りで使えない部分がある可能性を考慮して、1本多めに購入しておくのが安全。端材があれば次のDIYプロジェクトで使い回せる。

端材の長さも確認する

板取りパターンの端材が500mm以上ある場合、別の用途に流用できないか検討してみよう。逆に端材が極端に短い場合(10mm以下)は、加工精度の問題で実際にはカットできないこともある。

よくある質問

Q: 計算結果は最適解(最小本数)が保証される?

本ツールはFirst Fit Decreasing (FFD) アルゴリズムによる近似解を提示している。理論的に最適解の約1.22倍以内に収まることが証明されているが、常に最小本数になるとは限らない。ただし、実用的な部材数(50本程度まで)であれば、最適解と同じ結果になるケースがほとんどだ。

Q: 幅×長さの2次元板取りに対応している?

現在は長さ方向のみの1次元最適化に対応している。合板のような幅×長さの2次元板取り(ネスティング)は未対応。2次元対応は将来的な拡張として検討中だ。

Q: 入力した部材データはどこかに送信される?

一切送信されない。全ての計算はブラウザ内(JavaScript)で完結しており、サーバーへのデータ送信は行っていない。ページを閉じるとデータは消える。

Q: 切断しろ(kerf)はどう計算に反映される?

各部材を定尺材に配置する際、「部材の長さ + 切断しろ」を消費長さとして計算している。例えば450mmの部材を切断しろ3mmで配置すると、453mmを消費する。最後の部材にも切断しろが加算されるため、保守的な見積もりになる。実際には最後のカットでは刃の分だけ余裕が生まれる場合がある。

Q: 部材数に上限はある?

技術的な上限はないが、100個を超えると計算に時間がかかる場合がある。一般的なDIY用途であれば数十個程度で十分に対応できる。

まとめ

木材カット最適化は、定尺材と部材リストからFFDアルゴリズムで板取りパターンを算出し、必要な本数とロス率をリアルタイム表示するブラウザツールだ。

切断しろの自動加算、日本規格のプリセット、SVGバーによる可視化で、ホームセンターの売り場からスマホで使える設計になっている。ウッドデッキや本棚の自作、ワークショップの材料準備まで、木材カットの計画に活用してほしい。

構造計算が必要な場面では鋼材断面のコンシェルジュ棚板たわみチェッカーも試してみて。


不具合や要望があれば、X (@MahiroMemo)から気軽に教えてほしい。

M

Mahiro

Mahiro Appの開発者。ウッドデッキ自作で板取り計算に紙とペンで苦戦した経験から、FFDアルゴリズムをブラウザツールに落とし込んだ。

運営者情報を見る

© 2026 木材カット最適化