
カットリストオプティマイザー vs Excel:スプレッドシートでは不十分なとき
カットリストを整理する必要があるとき、ほとんどの人が最初に手を伸ばすのはExcelです。それは理にかなっています — すでに使い方を知っていて、どのパソコンにも入っていて、寸法付きのパーツ一覧表はスプレッドシートで解決できる問題のように思えます。しかし、それらのパーツがシートにどう収まるかを考えようとした瞬間、Excelは壁にぶつかります。
木工フォーラムでも、加工のQ&Aボードでも、Excelのヘルプコミュニティでもどこでも、同じスレッドが立ち上がります。誰かがパーツ名、長さ、幅、数量を記入したスプレッドシートを投稿し、こう尋ねます。「Excelに、これらのパーツを原板から最も効率よく切り出す方法を教えさせるにはどうすればいいですか?」
回答は「ソルバーを使え」から「VBAマクロを書け」、「それは無理だ — 専用ソフトを使え」まで様々です。真実はその中間にあり、Excelがどこで役に立たなくなるかを正確に理解することが、本格的なカットリスト最適化ツールが必要かどうかを判断する鍵となります。
Excelが得意なこと
まずExcelの実力を認めましょう。カットリスト計画の第一段階 — パーツリストの作成そのもの — においては、Excelは十分に機能します。むしろ優れています。
すべてのパーツについて、名前、長さ、幅、厚さ、数量、材料の種類、木目の方向、メモを一覧にできます。数式を使って総面積、エッジバンディングの総延長、材料費の見積もりを計算できます。材料別やキャビネット別にパーツを並べ替え、フィルタリング、グループ化できます。スプレッドシートをチームと共有することもできます。
必要なのがパーツリスト — 何を切るかの構造化された一覧表 — だけであれば、Excelで十分です。だからこそCutGrid(および他のほとんどのカットリスト最適化ツール)は、ExcelやCSVから直接インポートできるようになっています。スプレッドシートはリストを作成するのに最適な場所です。ただし、レイアウトを最適化するのに適した場所ではありません。
Excelが行き詰まる場面
「これらのパーツをシートにどう配置すべきか?」と問い始めた瞬間、スプレッドシートの数式の領域を離れ、組み合わせ最適化の領域に踏み込んでいます。それがなぜ重要なのかを説明します。
2Dネスティング問題はNP困難
これは単なる専門用語ではなく、実際的な意味があります。「NP困難」とは、可能な配置の数が非常に速く増大するため、控えめな入力であっても、どんなコンピュータも合理的な時間内にすべてを試すことができないことを意味します。
簡単な例を挙げましょう。1枚のシートに20個のパーツがある場合、各パーツは任意の位置に置くことができ、ほとんどは90°回転させることもできます。可能な配置の数は天文学的 — 宇宙の原子の数をはるかに超えます。最良の配置を見つけるには、総当たりではなくヒューリスティクスを使って解空間をインテリジェントに探索する専門的なアルゴリズムが必要です。
ExcelのソルバーアドインはシンプルなLP(線形計画)問題を扱えます。しかし、回転・カーフギャップ・木目方向・複数シートを伴う2Dビンパッキングは線形問題ではありません。ソルバーはそもそもモデル化できないか、何時間も実行して平凡な結果しか出せません。
ビジュアルレイアウトがない
仮にExcelで最適な配置を計算できたとしても、それを描画する必要があります。カットリスト最適化ツールはビジュアルな切断図を生成します — 各パーツが各シートのどこに配置されるかを、寸法・パーツラベル・切断順序とともに色分けして示すマップです。これが印刷してのこぎりに持っていくものです。
Excelでは、グラフや外部の描画ツールで手動で長方形を描く必要があります。すべてのシートについて。寸法を変更したりパーツを追加するたびに。
カーフ補正がない
のこぎりの刃が材料を通過するとき、材料の一部が削り取られます — これがカーフです。一般的なパネルソーのカーフは3〜3.5 mmです。カットリスト最適化ツールは、隣接するすべてのパーツのペアの間にこのギャップを自動的に挿入します。
Excelでは、すべての寸法計算にカーフ代を手動で追加する必要があります。複数のシートにわたって40個のパーツがある場合、それは数十の追加数式 — それぞれが潜在的なエラーの原因 — を意味します。そして刃を交換してカーフ値を変更した場合、すべての数式を更新する必要があります。
アルゴリズムの選択肢がない
専用の最適化ツールでは、使用する機器に応じてギロチンアルゴリズムとスタンダード(シェルフ)アルゴリズムを選択できます。ギロチンはすべての切断が端から端まで通ることを保証します(パネルソー用)。スタンダードは柔軟な配置を可能にします(CNC用)。Excelはギロチンカットが何かを知りません。
マルチシート最適化がない
実際のプロジェクトでは複数のシートを使用します。40パーツのキッチンキャビネットプロジェクトでは、MDFが3〜4枚必要になることがあります。最適化ツールは、1枚ずつではなく全シートにわたる総廃材を最小化するために、どのパーツをどのシートに配置するかを決定します。
Excelでは、パーツをシートに手動で割り当て、収まるかどうかを手動で確認し、収まらない場合は手動で再配置する必要があります。1つの寸法を変更すると、割り当て全体をやり直す必要が生じることもあります。
端材の追跡がない
シートの切断が終わると、端材が残ります — 現在のプロジェクトには小さすぎるが、次のプロジェクトにはぴったりかもしれない使用可能な材料の切れ端です。カットリスト最適化ツールはこれらの端材をストックライブラリで追跡し、将来のプロジェクトで再利用します。
Excelはあなたの端材の存在を知りません。
VBAマクロによるアプローチ
一部の工夫好きなユーザーは、Excelで基本的な1D切断最適化を試みるVBAマクロを作成しています。これらは線形材料 — バーやパイプから長さを切り出す — において機能します。問題が一次元である場合です。
典型的なVBAアプローチは、パーツを長さ順(最長から)に並べ替え、最初適合減少アルゴリズムを使ってストック長に割り当て、必要な総ストック量とバーごとの廃材を報告します。アルミプロファイル、木材スタッド、鋼管などのシンプルな線形切断では、これはそれなりに機能します。
しかし、重大な制限があります:
1Dのみ。 2Dシートネスティング用のVBAマクロは非常にまれで、非常に壊れやすいです。2次元目、回転、カーフを追加するとアルゴリズムの複雑さが劇的に跳ね上がります。
ビジュアル出力がない。 マクロはテキストリストを出力します — 「バー1:2400を切断、1800を切断、廃材300」— しかし図はありません。レイアウトを頭の中で再構築する必要があり、エラーを招きます。
壊れやすいコード。 VBAマクロは、スプレッドシートの構造を変更したり、列名を変更したり、別バージョンのExcelでファイルを開いたりすると壊れます。デバッグが難しく、自分で書いた場合を除いてメンテナンスが不可能です。
カーフなし、トリムなし、木目なし。 ほとんどのVBAマクロはのこぎりのカーフ、シートのトリムマージン、木目方向を無視します。これらのパラメータを追加するとコードが大幅に複雑になります — そのレベルのVBAを書けるユーザーのほとんどは、スタンドアロンアプリケーションを作成した方が良いでしょう。
パフォーマンス。 VBAは遅いです。CutGridが1秒以内に完了する複雑な2D最適化が、VBAマクロでは数分かかるか、Excelがクラッシュする可能性があります。
ソルバーによるアプローチ
Excelの組み込みソルバーは正当な最適化ツールです。線形計画問題を解くことができ、非線形問題用の進化的ソルバーも備えています。一部のユーザーはソルバーを使ってカットリスト最適化をモデル化しようとしました。
設定は複雑です:決定変数(各パーツの配置場所)、制約(重複なし、シート境界内、カーフギャップ)、目的関数(廃材の最小化)を定義します。非常に小さな問題 — 1枚のシートに5〜8個のパーツ — では、ソルバーが合理的な解を見つけることがあります。
それより大きなものになると、ソルバーは限界に達します。無料版は200個の決定変数に制限されています。有料版(OpenSolverやソルバーアドイン)でさえ、2Dパッキングの非線形制約に苦労します。そして依然としてビジュアルレイアウトは得られません — 座標の表だけです。
実際の比較:同じプロジェクト、2つのツール
具体的に考えてみましょう。18 mmのバーチ合板から5つの本棚セットを作っています。原板:2440 × 1220 mm。カーフ:3 mm。トリム:10 mm。
あなたのカットリスト:
パーツ | 長さ (mm) | 幅 (mm) | 数量 | 合計 |
|---|---|---|---|---|
側面パネル | 1800 | 300 | 10 | 10 |
天板/底板 | 564 | 300 | 10 | 10 |
棚板 | 564 | 280 | 15 | 15 |
背面レール | 564 | 80 | 10 | 10 |
幅木 | 600 | 100 | 5 | 5 |
合計:50パーツ。
Excelの場合: パーツを一覧にします(2分)。全パーツの総面積を計算します:約10.2 m²。各シートは2.98 m²。つまり最低でも3.4枚 — カーフとトリムを考慮すると最低4枚、おそらく5枚必要です。しかし実際に何枚必要かはわかりません。パーツがどう収まるかが見えないからです。5〜6枚と見積もって購入するかもしれません。見積もりが外れたら、また材木屋に戻ることになります。
CutGridの場合: 同じパーツを入力します(またはExcelファイルをインポート — 30秒)。カーフを3 mm、トリムを10 mmに設定します。「最適化」をクリックします。1秒以内に、CutGridはレイアウトを生成します:4枚のシート、材料利用率86%、各パーツが各シートのどこに配置されるかを示す明確な図付きで。PDFをエクスポートしてのこぎりのところへ向かいます。
違い:Excelは「おそらく5枚、もしかしたら6枚」と教えてくれました。CutGridは「正確に4枚、こう切ってください、そして保存できる端材はこれです」と教えてくれました。シート1枚節約、4,000〜8,000円が手元に戻ります。
Excelがまだ正しい選択である場合
公平に言えば、Excelが本当に十分な状況もあります:
最適化ではなく、パーツリストを作成している場合。 寸法付きのパーツを一覧にして材料面積を計算するだけなら、Excelで十分です。その後、最適化ステップのためにそのリストをCutGridにインポートしてください。
パーツが5個以下の場合。 小さな棚や簡単な箱を切断する場合、頭の中でシートへのパーツの配置を考えられるでしょう。些細なプロジェクトでは最適化ツールは不必要な複雑さを加えるだけです。
シンプルなマクロで1D線形切断を行っている場合。 バーやパイプから長さを切り出す場合 — 問題が一次元で、動作するVBAマクロがある場合 — Excelは合理的な結果を出せます。シンプルなVBAマクロと専用の線形最適化ツールの差は、2Dシート最適化における差よりも小さいです。
現場にいてスマートフォンしかない場合。 Google Sheetsでの簡単なスプレッドシートで材料量を見積もることは、何もないよりはましです。しかしCutGridもスマートフォンを含む任意のブラウザで動作するため、この優位性は薄れています。
ハイブリッドワークフロー:Excel + 最適化ツール
多くの工房では、両方のツールを組み合わせるアプローチが最善です。機能するワークフローを紹介します:
ステップ1:ExcelでカットリストをExcelで作成する。 スプレッドシートをその得意なことに使いましょう:データの整理。パーツを一覧にし、数量を計算し、材料を追跡し、コストを見積もります。長年使ってきたテンプレートがあれば、引き続き使ってください。
ステップ2:CutGridにインポートする。 ExcelファイルをXLSXまたはCSVとして保存します。CutGridにインポートします。パーツ、寸法、数量、材料の種類が直接転送されます — 再入力不要です。
ステップ3:最適化してエクスポートする。 カーフ、トリム、アルゴリズムを設定します。最適化を実行します。切断図を工場フロア用のPDFとして、またはCNC用のDXFとしてエクスポートします。
ステップ4:Excelファイルを更新する。 最適化後、既存のワークフローにデータが必要な場合は — コストレポート、発注書、在庫更新 — 結果をExcelにエクスポートします。
このワークフローは既存のプロセスを尊重しながら、Excelにできない唯一のこと — 空間最適化 — を追加します。
スプレッドシートが太刀打ちできない理由の数学
この問題がスプレッドシートにとってなぜそれほど難しいのか興味があれば、直感的な説明をします。
1D問題(バーから長さを切り出す)では、可能な配置の数は階乗的に増大します — 20個のパーツには20!(約24京)の可能な順列があります。しかし最初適合減少のような優れたヒューリスティクスは、各長さをどのバーに入れるかを決めるだけでよいため、効率的に解くことができます。
2D問題(シートから長方形を切り出す)では、各パーツにX座標、Y座標、回転があります。制約(重複なし、境界内、カーフギャップ)は、単純な順列に還元できない複雑な幾何学的問題を生み出します。決定変数の数は3n(パーツごとに3変数)で増加し、制約はn²(すべてのパーツのペアが重複してはならない)で増加します。
50個のパーツでは、150個の決定変数と2,500個の非重複制約があります。Excelのソルバーは数十の変数を持つ問題向けに設計されており、数百には対応していません。そしてサイズを処理できたとしても、幾何学的制約は非線形です — ソルバーが苦手とする「どちらか/または」の条件を含みます。
これが専用のカットリスト最適化ツールが存在する理由です。シェルフヒューリスティクス、遺伝的アルゴリズム、シミュレーテッドアニーリング、ハイブリッドアプローチなどの専門的なアルゴリズムを使用し、まさにこのクラスの問題のために特別に構築されています。数時間ではなく数秒で最適に近い解を見つけます。
重要なポイント
Excelはパーツリストの作成に優れています。 データ入力、計算、整理に引き続き使用してください。世界最高のスプレッドシートツールであることには理由があります。
Excelはレイアウト最適化ツールではありません。 パーツがシートにどう収まるかを決める必要が生じた瞬間、別のツールが必要です。2Dネスティング問題は数学的に難しい — ソルバーには難しすぎ、VBAマクロには難しすぎ、セルのグリッドには視覚的すぎます。
本当の無駄はソフトウェアのコストではなく、余分なシートにあります。 CutGridのサブスクリプションはバーチ合板1枚より安いです。最適化ツールがプロジェクトごとに1枚でも節約できれば、すぐに元が取れます。
再入力ではなく、インポートを。 CutGridはExcelとCSVをネイティブで読み込みます。スプレッドシートが入力、最適化ツールがエンジン、切断図が出力です。
まだカットリストにExcelを使っていますか?
スプレッドシートをCutGridにインポートして、違いを確認してください。パーツリストはそのまま — より賢いレイアウトが得られるだけです。