請輸入板材尺寸、鋸路、木紋方向,以及要裁出的零件的寬、高、片數(零件最多 8 種,寬和高都空白的列會被忽略)。厚度和板材單價可以留空。
這個頁面可以做什麼
- 只要輸入板材的尺寸(可從 3 × 6 尺 1820 × 910 mm、4 × 8 尺 2440 × 1220 mm 等下拉選單選擇或手動輸入),以及要裁出的零件的寬、高、片數(最多 8 種),馬上就知道要買幾張板材
- 會考慮鋸路(鋸片的厚度,預設 3 mm)和木紋方向(零件能否轉 90°)。只有同一種零件時用「橫 × 直」的格子計算(也會比較轉向,以及在剩下的長條轉向排入的方案);多種零件則依高度排成一層一層的分層排列法合併裁切
- 顯示每張板材「哪裡放什麼」的彩色裁切配置圖,以及「第 1 張板材:頂板 × 2+側板 × 2,剩料 0.286 m²」這樣的配置表。也會和每種零件各用不同板材裁切時的張數比較,看出合併裁切能省幾張
- 同時列出剩料面積、利用率(零件總面積 ÷ 板材總面積),以及由面積求出的理論最少張數(下限),並顯示配置是否等於下限。輸入板材單價(選填)還會算出概算費用
- 公式的淺顯解說,以及 Excel、Google 試算表、Python 可直接複製的公式,也都整理在這個頁面
這個計算有什麼用?
例如用 3 × 6 尺(1820 × 910 mm)的夾板做頂板 900 × 450 mm × 2 片、側板 700 × 400 mm × 4 片、層板 600 × 350 mm × 3 片的書櫃,每種零件分開買要 3 張板材,但依高度一層一層排入的合併裁切只要 2 張(第 1 張:頂板 × 2+側板 × 2,第 2 張:側板 × 2+層板 × 3)。
夾板很占空間、不好放進車裡,買多了也沒地方放,所以採購前先決定好張數和配置就不會浪費。想讓木紋對齊的裝飾夾板選「對齊」計算,結構用夾板或要整面上漆的板子選「不限」減少張數。
居家修繕賣場或木材行的代客裁切(裁板機)只能「從板材一端直直切到另一端」,常以每刀計價,有些店也會限制每張板材的裁切次數。本頁的配置圖符合這種切法(直通裁切),照著圖交代「先在從上面算 450 mm 的位置橫切一刀,再把上面那塊從左邊算 900 mm 的位置直切……」,到店裡就不會手忙腳亂(鋸路是鋸片削掉的部分,所以裁切位置就是零件尺寸本身)。
先數好裁切的刀數,就能估出費用,也能確認是否在次數上限內。鋸路請依店家裁板機的鋸片厚度(多在 3 mm 左右,可以向店家確認)修改。另外,有些店不接寬度很窄(幾 cm 以下)的裁切,或斜切、切到一半停下的裁切,細長零件多時先確認比較安心。
把 3 × 6 尺板四等分的 455 × 455 mm 零件,不計鋸路看起來能裁 8 片,但鋸路 3 mm 時橫 \(\lfloor 1823 \div 458 \rfloor = 3\) 片、直 \(\lfloor 913 \div 458 \rfloor = 1\) 片,只能裁 3 片。只要改成 450 × 450 mm,就能裁橫 4 片 × 直 2 片=8 片。
像這樣,在設計階段把零件尺寸稍微改一下,板材張數可能差很多。把層板深度縮 5 mm、桌面分成 2 片等調整,採購前先用這個計算機試試,就能省下材料費。
家具工廠、木作師傅、招牌店(鋁複合板、壓克力板)、鈑金工廠(鐵板)的材料費占成本很大的比例,所以平常就在管理要怎麼從板材裁出零件(排版、開料)和利用率。本頁的「利用率」是零件總面積除以板材總面積,實務上也是同樣的定義。
實際的工廠要配置好幾百種零件,所以會用專用的開料軟體(排版軟體)。分層排列法是二維長方形排列教科書等級的啟發式方法,也是這類軟體思路的基礎之一。
「從固定規格的板子裁出長方形」的東西,都能用和夾板相同的公式計算,例如壓克力板、PVC 板(4 × 8 尺、3 × 6 尺等規格)、台灣天花板常用的矽酸鈣板與石膏板(3 × 6 尺)、裝飾板、木心板、清水模板等。玻璃這種用刀劃線再折斷的材料,鋸路請設為 0(磁磚用手動切割器時也是 0,用水刀切割機就是刀片厚度),沒有木紋的材料選「不限」,張數就會減少。
不過玻璃和薄壓克力容易破,有花紋的裝飾板有花紋方向的限制,請配合材料的特性修改鋸路和轉向的設定。
公式與圖示
符號與用語解說
符號
| \(W\) | 板材的寬(mm),也就是買來的一張夾板的橫向長度。取自 Width(寬)的字首,為了和零件寬 \(w\) 區別用大寫。 |
| \(H\) | 板材的高(mm),也就是一張夾板的直向長度。取自 Height(高)的字首,為了和零件高 \(h\) 區別用大寫。木紋選「不限」時交換寬和高張數也不變(選「對齊」時要和零件方向一致)。 |
| \(w\)、\(w_i\) | 零件(要裁出的板)的寬(mm)。\(w_i\) 的 \(i\) 是「第 \(i\) 種零件」的編號(因為有頂板、側板、層板等好幾種)。 |
| \(h\)、\(h_i\) | 零件的高(mm)。分層排列法的式子中,\(h_1,\ h_2,\ \ldots\) 也用來表示「各層的高度」(層高=該層最高零件的高)。 |
| \(k\) | 鋸路(鋸片厚度,mm)。每切一次就會損失這麼多的板子。取自 kerf(英文的「鋸口」)的字首。 |
| \(c\) | 只排同一種零件時,沿板材寬方向橫排的片數,用 \(\lfloor (W + k) \div (w + k) \rfloor\) 求出。取自 column(行)的字首。 |
| \(r\) | 只排同一種零件時,沿板材高方向直排的片數,用 \(\lfloor (H + k) \div (h + k) \rfloor\) 求出。取自 row(列)的字首。 |
| \(m\)、\(m_i\) | 只排同一種零件時,一張板材能裁的片數,用橫排片數 \(c\) 乘以直排片數 \(r\) 的 \(m = c \times r\) 求出。 |
| \(q_i\) | 零件 \(i\) 的需要片數,取自 quantity(數量)的字首。 |
| \(B_i\) | 只裁零件 \(i\) 所需的板材張數,用 \(\lceil q_i \div m_i \rceil\) 求出。 |
| \(B_{\text{分}}\) | 每種零件各用不同板材裁切(分開買)時的合計張數,是各零件 \(B_i\) 全部加起來的值。 |
| \(B\) | 合併裁切(分層排列法等配置)所需的板材張數,是本頁的主角。 |
| \(n\) | 同一層橫排的零件片數。零件之間有 \(n - 1\) 次的鋸路,用於排進同一層的條件式。取自 number(數)的字首。 |
| \(s\) | 一張板材上疊的層數。層與層之間有 \(s - 1\) 次的鋸路,用於疊得下層的條件式。取自 shelf(層架)的字首。 |
| \(A_{\text{剩}}\) | 剩料面積(mm²、m²)。買的板材總面積減去零件總面積的值,也包含被鋸路變成木屑的部分。\(A\) 取自 Area(面積)的字首。 |
| \(Y\) | 利用率(%)。零件總面積除以板材總面積再乘以 100 的值,取自 Yield(產出率)的字首。 |
| \(B_{\min}\) | 由面積求出的理論最少張數(下限),用 \(\lceil \sum_i q_i (w_i + k)(h_i + k) \div ((W + k)(H + k)) \rceil\) 求出,合併裁切的張數 \(B\) 等於它就是最佳。min 是 minimum(最小)的縮寫。 |
| \(\Delta\) | 能省的張數,就是 \(B_{\text{分}} - B\)。希臘字母 delta 常用來表示「差」(對應 difference 的字首 d)。 |
| \(u\) | 每張板材的單價(NT$),取自 unit price(單價)的字首。 |
| \(T\) | 概算費用(NT$),取自 total(合計)的字首。只有板材本身,不含裁切費、運費。 |
| \(\lfloor x \rfloor\) | 高斯符號(地板函數),把小數部分無條件捨去變成整數的符號(例如:\(\lfloor 3.02 \rfloor = 3\)、\(\lfloor 2 \rfloor = 2\))。能裁的片數要「捨去放不下的部分」,所以用這個符號。 |
| \(\lceil x \rceil\) | 天花板函數,把小數部分無條件進位變成整數的符號(例如:\(\lceil 1.56 \rceil = 2\)、\(\lceil 2 \rceil = 2\))。買的張數要「不夠就多買一張」,所以用這個符號。 |
| \(\sum\) | 表示「全部加起來」的符號。\(\sum_i q_i w_i h_i\) 就是對每種零件 \(i\) 計算 \(q_i w_i h_i\)(片數 × 寬 × 高)再全部相加。希臘字母 sigma,相當於 Sum(合計)的字首 S。 |
用語
| 板材 | 用來裁出零件的整張大板,例如夾板、木心板、MDF、裝飾板、壓克力板、鐵板等以固定規格尺寸販售的板材。本頁把它當成寬 \(W\) × 高 \(H\) 的長方形。 |
| 取料 | 決定要怎麼從板材裁出所需零件的作業,也叫開料、裁切規劃。本頁是同時考慮寬和高的二維取料;角材、管子這類只考慮長度的一維取料,請用「木材裁切計算機」。 |
| 鋸路 | 用鋸子切時,板子被鋸片厚度削掉而損失的長度。圓鋸或裁板機的鋸片厚度多在 1.5~3 mm,再加上切口崩邊和畫線的寬度,一般抓 3 mm 左右估算。知道使用的鋸片厚度(鋸片上刻印的 kerf 值)時,請輸入該值。切幾次就累積幾次,裁很多小零件時影響越大。 |
| 木紋 | 木材纖維方向在板面形成的花紋。裝飾夾板或實木板,零件的木紋不全部同方向看起來會不自然,所以取料時零件可能不能轉 90°。本頁用「木紋方向」選擇能否轉向。結構用夾板或要整面上漆的板子選「不限」即可。 |
| 直通裁切 | 從板材一端直直切到另一端的切法(英文 guillotine cut)。切下來的板子再從一端切到另一端,重複下去裁出零件。賣場或木材行代客裁切用的裁板機只能這樣切,所以本計算機的配置也限定為能直通裁切的形狀(分層排列法)。允許切到一半停下的切法(L 形切口)有時能排得更密,但家用圓鋸也不好切,所以不採用。 |
| 分層排列法 (FFDH) |
把零件依高度由高到低排列,從上往下依序做出橫跨板材的「層」並排入的配置步驟。是 First Fit Decreasing Height(依高度由大到小,放進第一個放得下的層)的縮寫,屬於二維長方形排列的代表性啟發式方法。裁切線從一端通到另一端,所以可以直接請店家代客裁切。步驟簡單、結果也不錯,但不一定總是最少張數。 |
| 剩料 | 裁出零件後剩下的材料,例如板材邊緣剩下的細長板,或層右邊剩下的碎料。剩料越少材料浪費越少,利用率越高。大塊剩料可以拿去做小層板或補強材。 |
| 利用率 | 材料中能當成品(零件)使用的比例,也叫得料率。本頁是「零件總面積 ÷ 買的板材總面積」,剩料和鋸路越少就越接近 100%。 |
| 下限 | 「再怎麼巧妙也不可能比這更小」的值。本頁的理論最少張數是由面積求出的下限,配置的張數等於它就知道是最佳。不等於時,二維取料也常因形狀限制無法減到下限。 |
| 最佳解 | 所有可能方法中最好的答案。本頁指「板材張數最少的配置」。合併裁切的張數等於下限就是最佳解;不等於時,本計算機不會搜尋全部組合,所以無法確定是不是最佳解。 |
| 啟發式方法 | 「不保證一定是最佳解,但用固定步驟快速得到好答案的方法」(heuristic)。取料這類組合問題,零件一多可能的擺法就爆炸性增加、無法全部試,所以實務上也常用啟發式方法。本頁的分層排列法和格子計算都是其中之一。 |
| 夾板 | 把薄木片(單板)以木紋互相垂直的方式多層黏合的板子,也叫合板。不容易翹曲、能做成大片,廣泛用於 DIY 的層架、箱子和打底。有柳安夾板、松木結構夾板、裝飾夾板等;台灣常以「分」稱厚度,3 分約 9 mm、4 分約 12 mm。 |
| 清水模板 | 灌混凝土時當模板用的夾板,表面有塗裝,能讓混凝土表面平整。尺寸依產品而不同,用模板裁切時,請把板材尺寸改成實際的寬、高再計算。 |
| 3×6 尺 | 3 尺 × 6 尺(約 910 × 1820 mm)的板材規格。夾板、木心板、石膏板、矽酸鈣板最常見的尺寸之一。1 台尺約 303 mm,3 尺約 910 mm、6 尺約 1820 mm;店家和產品的實際尺寸會差幾 mm(例如 915 × 1830 mm)。 |
| 4×8 尺 | 4 尺 × 8 尺(約 1220 × 2440 mm)的板材規格。台灣的夾板、木心板很常用這個尺寸,比 3 × 6 尺大,想一整片裁出大桌面或整面牆板時使用。實際尺寸依產品略有不同,請確認購買產品的尺寸再輸入。 |
| 木心板 | 中間是實木條、兩面貼薄木片的三層板,台灣做系統櫃以外的木作櫃常用。厚度多為 18 mm(6 分),尺寸有 3 × 6 尺、3 × 7 尺、4 × 8 尺、2 × 8 尺等。 |
建議先了解的基礎知識
為了讓您「理解意思」地使用這個頁面的計算,這裡整理了事先了解會更好懂的基礎知識。
| 有餘數的除法(國小三~四年級,8~10 歲) |
|
| 概數(國小四年級,9~10 歲) |
|
| 長方形的面積(國小四年級,9~10 歲) |
|
| 百分率(國小五~六年級,10~12 歲) |
|
| 用文字符號列式與不等式(國中,12~15 歲) |
|
用 Excel 計算的方法
| 板材寬(mm) | 1820 |
| 板材高(mm) | 910 |
| 零件寬(mm) | 600 |
| 零件高(mm) | 400 |
| 鋸路(mm) | 3 |
| 橫排的片數 | =INT((B1+B5)/(B3+B5)) |
| 直排的片數 | =INT((B2+B5)/(B4+B5)) |
| 一張板材能裁的片數 | =B6*B7 |
| 零件的需要片數 | 8 |
| 一張板材能裁的片數 | 6 |
| 需要的板材張數 | =ROUNDUP(B1/B2,0) |
| 板材張數 | 2 |
| 板材寬(mm) | 1820 |
| 板材高(mm) | 910 |
| 所有零件的面積合計(mm²) | 1920000 |
| 剩料面積(mm²) | =B1*B2*B3-B4 |
| 剩料面積(m²) | =B5/1000000 |
| 利用率(%) | =B4/(B1*B2*B3)*100 |
| 所有零件的(寬+鋸路)×(高+鋸路)合計(mm²) | 2589931 |
| (板材寬+鋸路)×(板材高+鋸路)(mm²) | 1664399 |
| 理論最少張數 | =ROUNDUP(B1/B2,0) |
| 分開買時的張數 | 3 |
| 合併裁切的張數 | 2 |
| 板材單價(NT$) | 500 |
| 能省的張數 | =B1-B2 |
| 概算費用(NT$) | =B3*B2 |
「INT(值)」是把小數部分無條件捨去變成整數的函數(公式中的 ⌊ ⌋),「ROUNDUP(值,0)」是無條件進位的函數(公式中的 ⌈ ⌉)。
第 1 個表格的 B8 是 6 片(橫 3 片 × 直 2 片),第 2 個表格的 B3 是 2 張,第 3 個表格的 B6 是 1.3924 m²、B7 是 57.96…%(600 × 400 mm 裁 8 片、板材 2 張的例子),第 4 個表格的 B3 是 2 張,第 5 個表格是省 1 張、費用 NT$1,000。
分層排列法的配置本身,是把零件依高度重新排序、從上往下依序放進各層的手工作業,所以試算表適合用來確認「能裁的片數」「剩料」「下限」,配置圖用本頁或下方的 Python 程式碼產生最可靠。
用 Google 試算表計算的方法
| 板材寬(mm) | 1820 |
| 板材高(mm) | 910 |
| 零件寬(mm) | 600 |
| 零件高(mm) | 400 |
| 鋸路(mm) | 3 |
| 橫排的片數 | =INT((B1+B5)/(B3+B5)) |
| 直排的片數 | =INT((B2+B5)/(B4+B5)) |
| 一張板材能裁的片數 | =B6*B7 |
| 零件的需要片數 | 8 |
| 一張板材能裁的片數 | 6 |
| 需要的板材張數 | =ROUNDUP(B1/B2,0) |
| 板材張數 | 2 |
| 板材寬(mm) | 1820 |
| 板材高(mm) | 910 |
| 所有零件的面積合計(mm²) | 1920000 |
| 剩料面積(mm²) | =B1*B2*B3-B4 |
| 剩料面積(m²) | =B5/1000000 |
| 利用率(%) | =B4/(B1*B2*B3)*100 |
| 所有零件的(寬+鋸路)×(高+鋸路)合計(mm²) | 2589931 |
| (板材寬+鋸路)×(板材高+鋸路)(mm²) | 1664399 |
| 理論最少張數 | =ROUNDUP(B1/B2,0) |
| 分開買時的張數 | 3 |
| 合併裁切的張數 | 2 |
| 板材單價(NT$) | 500 |
| 能省的張數 | =B1-B2 |
| 概算費用(NT$) | =B3*B2 |
用 Python 計算的方法
import math
sheet_w, sheet_h = 1820, 910 # 板材的寬、高(mm)。3 × 6 尺
kerf = 3 # 鋸路(鋸片厚度,mm)
rotate = True # 木紋不限(零件可以轉 90°)時為 True
unit_price = 500 # 每張板材的單價(NT$)
# 要裁出的零件:(名稱, 寬mm, 高mm, 片數)
parts = [("頂板", 900, 450, 2), ("側板", 700, 400, 4), ("層板", 600, 350, 3)]
# 每種零件分開買時的張數(橫 × 直的格子。可以轉向時也試交換方向)
def per_sheet(w, h):
return ((sheet_w + kerf) // (w + kerf)) * ((sheet_h + kerf) // (h + kerf)) # 無條件捨去(公式中的 ⌊ ⌋)
sheets_separate = 0
for name, w, h, qty in parts:
m = max(per_sheet(w, h), per_sheet(h, w) if rotate else 0)
sheets_separate += math.ceil(qty / m) # 無條件進位(公式中的 ⌈ ⌉)
# 合併裁切:分層排列法(依高度由高到低,放進第一個放得下的層。可以轉向時長邊橫放)
pieces = []
for name, w, h, qty in parts:
pw, ph = (max(w, h), min(w, h)) if rotate else (w, h)
pieces += [(name, pw, ph)] * qty
pieces.sort(key=lambda p: (-p[2], -p[1]))
sheets = [] # 每張板材 {"y": 下一層的位置, "shelves": [{"y", "h", "x", "parts"}]}
for name, pw, ph in pieces:
for sheet in sheets:
shelf = next((s for s in sheet["shelves"] if ph <= s["h"] and pw <= sheet_w - s["x"]), None)
if shelf is None and ph <= sheet_h - sheet["y"]:
shelf = {"y": sheet["y"], "h": ph, "x": 0, "parts": []}
sheet["shelves"].append(shelf)
sheet["y"] += ph + kerf
if shelf is not None:
shelf["parts"].append((name, shelf["x"], shelf["y"], pw, ph))
shelf["x"] += pw + kerf
break
else:
sheets.append({"y": ph + kerf, "shelves": [{"y": 0, "h": ph, "x": pw + kerf, "parts": [(name, 0, 0, pw, ph)]}]})
# 剩料、利用率、面積的下限
parts_area = sum(qty * w * h for name, w, h, qty in parts)
total_area = len(sheets) * sheet_w * sheet_h
lower_bound = math.ceil(sum(qty * (w + kerf) * (h + kerf) for name, w, h, qty in parts) / ((sheet_w + kerf) * (sheet_h + kerf)))
print(f"每種零件分開買:{sheets_separate} 張")
print(f"合併裁切(分層排列法):{len(sheets)} 張(面積的下限 {lower_bound} 張)")
for i, sheet in enumerate(sheets, 1):
for shelf in sheet["shelves"]:
print(f" 板材{i} 層(y={shelf['y']}):" + "、".join(f"{n}@x={x} {pw}x{ph}" for n, x, y, pw, ph in shelf["parts"]))
print(f"剩料面積:{(total_area - parts_area) / 1e6:.3f} m² 利用率:{parts_area / total_area * 100:.1f}%")
print(f"概算費用:NT${unit_price * len(sheets)}")
用 LaTeX 等數學式語言的寫法(可直接複製)
c = ⌊(W + k) ÷ (w + k)⌋, r = ⌊(H + k) ÷ (h + k)⌋, m = c × r
c = \left\lfloor \frac{W + k}{w + k} \right\rfloor,\quad r = \left\lfloor \frac{H + k}{h + k} \right\rfloor,\quad m = c \times r
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>c</mi>
<mo>=</mo>
<mo>⌊</mo>
<mfrac>
<mrow><mi>W</mi><mo>+</mo><mi>k</mi></mrow>
<mrow><mi>w</mi><mo>+</mo><mi>k</mi></mrow>
</mfrac>
<mo>⌋</mo>
<mo>,</mo>
<mi>r</mi>
<mo>=</mo>
<mo>⌊</mo>
<mfrac>
<mrow><mi>H</mi><mo>+</mo><mi>k</mi></mrow>
<mrow><mi>h</mi><mo>+</mo><mi>k</mi></mrow>
</mfrac>
<mo>⌋</mo>
<mo>,</mo>
<mi>m</mi>
<mo>=</mo>
<mi>c</mi>
<mo>×</mo>
<mi>r</mi>
</mrow>
</math>
c = |__ (W + k) / (w + k) __|, r = |__ (H + k) / (h + k) __|, m = c * r
c = Floor[(W + k)/(w + k)]; r = Floor[(H + k)/(h + k)]; m = c*r
c := floor((W + k)/(w + k)); r := floor((H + k)/(h + k)); m := c*r;
c = floor((W + k)/(w + k)); r = floor((H + k)/(h + k)); m = c*r;
c = ⌊(W + k)/(w + k)⌋, r = ⌊(H + k)/(h + k)⌋, m = c × r
Bᵢ = ⌈qᵢ ÷ mᵢ⌉, B分 = B₁ + B₂ + …
B_i = \left\lceil \frac{q_i}{m_i} \right\rceil,\quad B_{\text{分}} = \sum_i B_i
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>B</mi><mi>i</mi></msub>
<mo>=</mo>
<mo>⌈</mo>
<mfrac><msub><mi>q</mi><mi>i</mi></msub><msub><mi>m</mi><mi>i</mi></msub></mfrac>
<mo>⌉</mo>
<mo>,</mo>
<msub><mi>B</mi><mtext>分</mtext></msub>
<mo>=</mo>
<munder><mo>∑</mo><mi>i</mi></munder>
<msub><mi>B</mi><mi>i</mi></msub>
</mrow>
</math>
B_i = |~ q_i / m_i ~|, B_"分" = sum_i B_i
Total[Ceiling[q/m]]
B := add(ceil(q[i]/m[i]), i = 1 .. n);
B = sum(ceil(q ./ m));
B_i = ⌈q_i/m_i⌉, B_分 = ∑_i B_i
w₁ + w₂ + … + wₙ + (n − 1)k ≤ W, h₁ + h₂ + … + hₛ + (s − 1)k ≤ H
\sum_{j=1}^{n} w_j + (n - 1)k \leq W,\quad \sum_{t=1}^{s} h_t + (s - 1)k \leq H
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<munderover><mo>∑</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover>
<msub><mi>w</mi><mi>j</mi></msub>
<mo>+</mo>
<mo>(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo>)</mo><mi>k</mi>
<mo>≤</mo>
<mi>W</mi>
<mo>,</mo>
<munderover><mo>∑</mo><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mi>s</mi></munderover>
<msub><mi>h</mi><mi>t</mi></msub>
<mo>+</mo>
<mo>(</mo><mi>s</mi><mo>−</mo><mn>1</mn><mo>)</mo><mi>k</mi>
<mo>≤</mo>
<mi>H</mi>
</mrow>
</math>
sum_(j=1)^n w_j + (n - 1) k <= W, sum_(t=1)^s h_t + (s - 1) k <= H
Total[w] + (Length[w] - 1)*k <= W && Total[h] + (Length[h] - 1)*k <= H
add(w[j], j = 1 .. n) + (n - 1)*k <= W; add(h[t], t = 1 .. s) + (s - 1)*k <= H;
sum(w) + (numel(w) - 1)*k <= W && sum(h) + (numel(h) - 1)*k <= H
∑_(j=1)^n w_j + (n − 1)k ≤ W, ∑_(t=1)^s h_t + (s − 1)k ≤ H
A剩 = B × W × H − Σ qᵢ wᵢ hᵢ, Y = Σ qᵢ wᵢ hᵢ ÷ (B × W × H) × 100
A_{\text{剩}} = B\,W\,H - \sum_i q_i w_i h_i,\quad Y = \frac{\sum_i q_i w_i h_i}{B\,W\,H} \times 100
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>A</mi><mtext>剩</mtext></msub>
<mo>=</mo>
<mi>B</mi><mo>⁢</mo><mi>W</mi><mo>⁢</mo><mi>H</mi>
<mo>−</mo>
<munder><mo>∑</mo><mi>i</mi></munder>
<msub><mi>q</mi><mi>i</mi></msub><msub><mi>w</mi><mi>i</mi></msub><msub><mi>h</mi><mi>i</mi></msub>
<mo>,</mo>
<mi>Y</mi>
<mo>=</mo>
<mfrac>
<mrow><munder><mo>∑</mo><mi>i</mi></munder><msub><mi>q</mi><mi>i</mi></msub><msub><mi>w</mi><mi>i</mi></msub><msub><mi>h</mi><mi>i</mi></msub></mrow>
<mrow><mi>B</mi><mo>⁢</mo><mi>W</mi><mo>⁢</mo><mi>H</mi></mrow>
</mfrac>
<mo>×</mo>
<mn>100</mn>
</mrow>
</math>
A_"剩" = B W H - sum_i q_i w_i h_i, Y = (sum_i q_i w_i h_i) / (B W H) * 100
{B*W*H - Total[q*w*h], Total[q*w*h]/(B*W*H)*100}
Awaste := B*W*H - add(q[i]*w[i]*h[i], i = 1 .. n); Y := add(q[i]*w[i]*h[i], i = 1 .. n)/(B*W*H)*100;
Awaste = B*W*H - sum(q .* w .* h); Y = sum(q .* w .* h)/(B*W*H)*100;
A_剩 = BWH − ∑_i q_i w_i h_i, Y = (∑_i q_i w_i h_i)/(BWH) × 100
Bmin = ⌈Σ qᵢ (wᵢ + k)(hᵢ + k) ÷ ((W + k)(H + k))⌉
B_{\min} = \left\lceil \frac{\sum_i q_i (w_i + k)(h_i + k)}{(W + k)(H + k)} \right\rceil
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>B</mi><mi>min</mi></msub>
<mo>=</mo>
<mo>⌈</mo>
<mfrac>
<mrow><munder><mo>∑</mo><mi>i</mi></munder><msub><mi>q</mi><mi>i</mi></msub><mo>(</mo><msub><mi>w</mi><mi>i</mi></msub><mo>+</mo><mi>k</mi><mo>)</mo><mo>(</mo><msub><mi>h</mi><mi>i</mi></msub><mo>+</mo><mi>k</mi><mo>)</mo></mrow>
<mrow><mo>(</mo><mi>W</mi><mo>+</mo><mi>k</mi><mo>)</mo><mo>(</mo><mi>H</mi><mo>+</mo><mi>k</mi><mo>)</mo></mrow>
</mfrac>
<mo>⌉</mo>
</mrow>
</math>
B_min = |~ (sum_i q_i (w_i + k)(h_i + k)) / ((W + k)(H + k)) ~|
Ceiling[Total[q*(w + k)*(h + k)]/((W + k)*(H + k))]
Bmin := ceil(add(q[i]*(w[i] + k)*(h[i] + k), i = 1 .. n)/((W + k)*(H + k)));
Bmin = ceil(sum(q .* (w + k) .* (h + k))/((W + k)*(H + k)));
B_min = ⌈(∑_i q_i (w_i + k)(h_i + k))/((W + k)(H + k))⌉
Δ = B分 − B, T = u × B
\Delta = B_{\text{分}} - B,\quad T = u \times B
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>Δ</mi>
<mo>=</mo>
<msub><mi>B</mi><mtext>分</mtext></msub>
<mo>−</mo>
<mi>B</mi>
<mo>,</mo>
<mi>T</mi>
<mo>=</mo>
<mi>u</mi>
<mo>×</mo>
<mi>B</mi>
</mrow>
</math>
Delta = B_"分" - B, T = u * B
{bSep - b, u*b}
Delta := Bsep - B; T := u*B;
Delta = Bsep - B; T = u*B;
Δ = B_分 − B, T = u × B
請 ChatGPT 幫忙計算的方法
你是夾板取料(開料)的計算助理。請務必實際執行 Python 程式碼來進行下面的計算,並只根據執行結果的數值回答(不要用心算或推測回答)。 從 1820 × 910 mm(3 × 6 尺)的夾板,在鋸路 3 mm、零件可以轉 90° 的條件下,裁出頂板 900 × 450 mm × 2 片、側板 700 × 400 mm × 4 片、層板 600 × 350 mm × 3 片。 請分別求出下列數值。 1. 每種零件只排同一種時,一張板材能裁的片數(⌊(1820+3) ÷(寬+3)⌋ × ⌊(910+3) ÷(高+3)⌋,也計算交換寬和高的方向,取較多的) 2. 每種零件各用不同板材裁切時的板材合計張數(需要片數 ÷ 能裁片數無條件進位的合計) 3. 把零件依高度由高到低排列,從上往下做出橫跨板材的層並排入的分層排列法(First Fit Decreasing Height,同一層內每次往右前進寬+鋸路,層與層之間每次往下前進高+鋸路)配置時的板材張數,以及每張板材上零件的位置 4. 剩料面積(板材總面積 − 零件總面積)和利用率(%) 5. 由面積求出的理論最少張數(全部零件的(寬+3)×(高+3)合計除以 (1820+3) × (910+3) 再無條件進位) 請列出計算用的程式碼和執行結果的數值。
使用方法
-
1輸入數值在輸入欄中輸入要計算的數值
-
2計算按下「計算」按鈕
-
3查看結果計算結果會立即顯示。計算的思路和公式的解說,也都能在同一個頁面查看
DataChef 的特色
不需專業知識,操作直覺又簡單
無須登錄任何個人資料
按下「下載」後自動刪除檔案
無須標註來源出處
亦無須事先取得商用授權