วิธีคำนวณตัดเหล็กให้เหลือเศษน้อย (1D Cutting Optimization) สำหรับงานเครื่องเลื่อยสายพาน พร้อมตัวอย่าง Python

วิธีคำนวณตัดเหล็กให้เหลือเศษน้อย เป็นเรื่องที่ทุกโรงงานและร้านเหล็กอยากทำได้ เพราะเศษเหล็กทุกท่อนคือเงินที่จ่ายไปแล้วแต่ขายได้แค่ราคาเศษ ปัญหานี้ในทางวิศวกรรมเรียกว่า 1D Cutting Stock Problem หรือการวางแผนตัดวัสดุแบบหนึ่งมิติ ใช้ได้กับงานตัดเหล็กเส้น ท่อ เพลา และเหล็กรูปพรรณด้วยเครื่องเลื่อยสายพาน บทความนี้จะอธิบายตั้งแต่การเผื่อคลองเลื่อย (Kerf) การตัดหัวท้าย สูตร % Yield ไปจนถึงตัวอย่างคำนวณจริงด้วย Python แบบ First-Fit Decreasing ที่นำไปใช้ได้ทันที

ทำไมการวางแผนตัดเหล็กถึงสำคัญ

สมมติใบสั่งงานมีชิ้นงานหลายความยาว ถ้าช่างหยิบเหล็กมาตัดไล่ตามลำดับในใบงาน ท่อนแรกตัดความยาวแรกจนหมด แล้วค่อยต่อความยาวถัดไป เศษปลายท่อนจะเกิดขึ้นแทบทุกท่อน และหลายครั้งเศษนั้นสั้นเกินกว่าจะเอาไปใช้ต่อ แต่ถ้าจัดกลุ่มชิ้นงานให้ลงตัวกับความยาวท่อนก่อนตัด อาจประหยัดเหล็กได้หลายท่อนต่อหนึ่งงาน

ผลดีของการวางแผนตัดไม่ได้มีแค่ประหยัดเหล็ก ยังช่วยลดจำนวนครั้งที่ต้องยกเหล็กขึ้นเครื่อง ลดเวลาตั้งเครื่อง และทำให้ประเมินต้นทุนต่องานได้แม่นขึ้น ซึ่งเชื่อมโยงตรงกับ ต้นทุนต่อตัดจริงของเครื่องเลื่อยสายพาน

องค์ประกอบที่ต้องเผื่อก่อนคำนวณ

1. คลองเลื่อย (Kerf)

ทุกครั้งที่ตัด ใบเลื่อยจะกินเนื้อเหล็กไปเท่ากับความกว้างของรอยตัด ซึ่งขึ้นกับความหนาใบและระยะคัดฟัน (Set) สำหรับเครื่องเลื่อยสายพาน โดยทั่วไปคลองเลื่อยอยู่ราว 1–2.5 มม. ใบที่หนาและกว้างกว่า (สำหรับเครื่องขนาดใหญ่) จะมีคลองเลื่อยกว้างกว่า วิธีที่แม่นที่สุดคือวัดจากชิ้นงานจริง เช่น ตัดเหล็กแล้ววัดความยาวรวมที่หายไป แม้จะดูน้อย แต่ถ้าตัด 30 ชิ้นต่อท่อน ที่คลองเลื่อย 2 มม. ก็หายไป 60 มม. แล้ว

2. การตัดหัวท้าย (End trim)

ปลายเหล็กจากโรงรีดมักไม่ได้ฉาก มีรอยตัดแก๊ส รอยบุบ หรือมีสีและสนิม จึงควรตัดหัวทิ้งก่อนตัดชิ้นงานแรก ส่วนปลายท่อนสุดท้ายบางเครื่องต้องมีระยะเหลือให้ปากจับงานยึดได้ ค่านี้ขึ้นกับเครื่องแต่ละรุ่น ควรตรวจสอบจากเครื่องที่ใช้จริง

3. ค่าเผื่อความยาว (Tolerance)

ถ้าแบบกำหนดความยาวมีพิกัด เช่น +1/0 มม. ควรตั้งความยาวตัดเผื่อด้านบวกเล็กน้อย และนำค่าเผื่อนี้ไปรวมในการคำนวณด้วย งานที่ต้องกลึงหน้าต่อก็ต้องเผื่อเนื้อสำหรับกลึงเช่นกัน

4. ความยาวเหล็กจริง

เหล็กเส้นที่ซื้อมาเป็น “ท่อน 6 เมตร” อาจยาวจริงคลาดเคลื่อนได้ ควรวัดความยาวจริงของล็อตที่ได้รับ เพราะต่างกันเพียงไม่กี่เซนติเมตรก็อาจทำให้ตัดได้มากหรือน้อยกว่าที่คิดไว้ 1 ชิ้น

สูตรพื้นฐานที่ต้องรู้

ความยาวใช้งานได้ต่อท่อน = ความยาวท่อน − ระยะตัดหัวท้าย

ความยาวที่ใช้ต่อชิ้น = ความยาวชิ้นงาน + คลองเลื่อย

จำนวนชิ้นต่อท่อน (ความยาวเดียว) = ปัดเศษลงของ (ความยาวใช้งานได้ ÷ ความยาวที่ใช้ต่อชิ้น)

% Yield = (ความยาวรวมของชิ้นงานที่ได้ ÷ ความยาวรวมของเหล็กที่ใช้) x 100

จำนวนท่อนขั้นต่ำทางทฤษฎี = ปัดเศษขึ้นของ (ความยาวรวมชิ้นงาน + คลองเลื่อยทั้งหมด) ÷ ความยาวใช้งานได้ต่อท่อน

ค่าจำนวนท่อนขั้นต่ำนี้มีประโยชน์มาก เพราะถ้าแผนตัดที่ได้ใช้จำนวนท่อนเท่ากับค่านี้ แปลว่าไม่มีทางทำได้ดีกว่านี้อีกแล้วในแง่จำนวนท่อน

ตัวอย่างงานความยาวเดียว: ท่อน 6 ม. เทียบท่อน 12 ม.

สมมติต้องตัดชิ้นงานยาว 470 มม. จำนวนมาก คลองเลื่อย 2 มม. และตัดหัวทิ้ง 10 มม. ความยาวที่ใช้ต่อชิ้นจึงเท่ากับ 472 มม.

รายการ ท่อน 6,000 มม. ท่อน 12,000 มม.
ความยาวใช้งานได้ (มม.) 5,990 11,990
จำนวนชิ้นต่อท่อน 12 25
เศษปลายท่อน (มม.) 326 190
% Yield 94.0% 97.9%

จะเห็นว่าท่อน 12 ม. หนึ่งท่อนตัดได้ 25 ชิ้น มากกว่าท่อน 6 ม. สองท่อนรวมกัน (24 ชิ้น) เพราะเสียระยะตัดหัวและเศษปลายท่อนเพียงครั้งเดียว ข้อมูลแบบนี้ช่วยตัดสินใจได้ว่าควรสั่งเหล็กความยาวใด แต่ก็ต้องพิจารณาเรื่องพื้นที่จัดเก็บ การขนส่ง และความยาวโต๊ะรองรับงานของเครื่องเลื่อยประกอบด้วย

First-Fit Decreasing คืออะไร

First-Fit Decreasing (FFD) เป็นวิธีจัดชิ้นงานลงท่อนเหล็กที่เรียบง่ายแต่ได้ผลดีมากในงานจริง มีขั้นตอนดังนี้

  1. เรียงชิ้นงานทั้งหมดจากยาวที่สุดไปสั้นที่สุด
  2. หยิบชิ้นที่ยาวที่สุดที่ยังไม่ได้จัด ลองใส่ลงท่อนแรกที่ยังมีที่ว่างพอ (รวมคลองเลื่อย)
  3. ถ้าไม่มีท่อนไหนพอ ให้เปิดท่อนใหม่
  4. ทำซ้ำจนครบทุกชิ้น

หลักคิดคือจัดชิ้นยาวก่อน เพราะชิ้นยาวหาที่ลงยาก แล้วใช้ชิ้นสั้นเติมช่องว่างที่เหลือ วิธีนี้ไม่ได้รับประกันว่าจะได้คำตอบที่ดีที่สุดทุกครั้ง แต่ในงานตัดเหล็กทั่วไปมักได้ผลใกล้เคียงคำตอบที่ดีที่สุด และคำนวณได้เร็วแม้ชิ้นงานจะมีหลายร้อยชิ้น

ตัวอย่างคำนวณจริงด้วย Python

โจทย์: ตัดเพลาเหล็กกลม ท่อนยาว 6,000 มม. คลองเลื่อย 2 มม. ตัดหัวทิ้ง 10 มม. ต้องการชิ้นงานดังนี้

ความยาวชิ้นงาน (มม.) จำนวน (ชิ้น) ความยาวรวม (มม.)
2,300 6 13,800
1,450 12 17,400
980 8 7,840
620 10 6,200
รวม 36 45,240

โค้ด Python ด้านล่างใช้ได้ทันที เพียงแก้ค่า STOCK, KERF, TRIM และรายการ orders ให้ตรงกับงานของคุณ

STOCK = 6000   # ความยาวเหล็กต่อท่อน (มม.)
KERF = 2       # ความกว้างคลองเลื่อย (มม.)
TRIM = 10      # ตัดหัวทิ้ง (มม.)

orders = {2300: 6, 1450: 12, 980: 8, 620: 10}   # ความยาว: จำนวน

pieces = sorted([L for L, q in orders.items() for _ in range(q)], reverse=True)
usable = STOCK - TRIM
bars = []

for p in pieces:
    for b in bars:
        if b["rem"] >= p + KERF:
            b["cuts"].append(p)
            b["rem"] -= p + KERF
            break
    else:
        bars.append({"cuts": [p], "rem": usable - p - KERF})

for i, b in enumerate(bars, 1):
    print(f"ท่อนที่ {i}: {b['cuts']}  เศษ {b['rem']} มม.")

good = sum(pieces)
total = len(bars) * STOCK
print(f"ใช้เหล็ก {len(bars)} ท่อน  Yield = {good / total * 100:.1f}%")

ผลลัพธ์ที่ได้คือแผนตัดดังตารางนี้

ท่อนที่ ชิ้นงานที่ตัด (มม.) เศษปลายท่อน (มม.)
1–3 2,300 + 2,300 + 980 404 (ท่อนละ)
4–6 1,450 x 4 182 (ท่อนละ)
7 980 x 5 + 620 458
8 620 x 9 392

สรุปผลการคำนวณ

  • ใช้เหล็กทั้งหมด 8 ท่อน (48,000 มม.)
  • ความยาวชิ้นงานรวม 45,240 มม. คิดเป็น Yield ประมาณ 94.2%
  • ส่วนที่สูญเสีย 2,760 มม. แบ่งเป็นคลองเลื่อย 72 มม. (36 รอยตัด) ตัดหัว 80 มม. และเศษปลายท่อน 2,608 มม.
  • จำนวนท่อนขั้นต่ำทางทฤษฎี = ปัดขึ้นของ (45,240 + 72) ÷ 5,990 ≈ 7.56 ได้ 8 ท่อน แปลว่าแผนนี้ใช้จำนวนท่อนน้อยที่สุดที่เป็นไปได้แล้ว

เปรียบเทียบกับการตัดไล่ตามใบงาน

ถ้าตัดแบบไม่วางแผน คือเริ่มจากชิ้น 620 มม. จนครบ แล้วต่อด้วย 980, 1,450 และ 2,300 มม. ตามลำดับ โดยเปิดท่อนใหม่เมื่อความยาวที่เหลือไม่พอ จะต้องใช้เหล็ก 9 ท่อน Yield ลดลงเหลือประมาณ 83.8% ต่างกัน 1 ท่อนเต็ม ถ้าเป็นเพลาเหล็กกลมโต 50 มม. ซึ่งหนักประมาณ 15.4 กก./ม. เท่ากับประหยัดเหล็กได้ราว 92 กก. ในงานเดียว (คำนวณน้ำหนักเหล็กแต่ละขนาดได้จาก ตารางน้ำหนักเหล็กและสูตรคำนวณ)

เทคนิคลดเศษเหล็กในงานจริง

  1. รวมใบงานก่อนตัด ยิ่งมีชิ้นงานหลายความยาวให้เลือกจัด โอกาสที่จะจัดลงตัวยิ่งสูง ถ้าเป็นไปได้ให้รวมใบงานที่ใช้วัสดุขนาดเดียวกันของหลายลูกค้าหรือหลายวันมาคำนวณพร้อมกัน
  2. ตั้งเกณฑ์เศษที่นำกลับมาใช้ได้ กำหนดว่าเศษยาวเกินกี่มิลลิเมตรให้เก็บเข้าชั้นวาง ติดป้ายขนาดและเกรด แล้วนำมาใช้ก่อนเปิดเหล็กท่อนใหม่ เศษที่สั้นกว่าเกณฑ์จึงค่อยทิ้งเป็นเศษเหล็ก
  3. เลือกความยาวท่อนให้เหมาะกับงาน บางงานซื้อท่อน 12 ม. แล้วได้ Yield ดีกว่าท่อน 6 ม. เพราะมีพื้นที่ให้จัดชิ้นงานมากกว่า ลองคำนวณเทียบทั้งสองแบบก่อนสั่งซื้อ
  4. ใช้ใบเลื่อยที่บางพอดีกับเครื่อง คลองเลื่อยที่แคบลงช่วยลดเนื้อที่หายไปต่อรอยตัด แต่ต้องเป็นใบที่เครื่องรองรับ และยังต้องมีความแข็งแรงพอสำหรับหน้าตัดที่ตัด
  5. คุมความตรงของรอยตัด ถ้าเครื่องตัดเบี้ยว ช่างมักเผื่อความยาวเพิ่ม ซึ่งเท่ากับเพิ่มเศษ แก้ที่ต้นเหตุตาม สาเหตุและวิธีแก้การตัดเบี้ยว จะช่วยลดค่าเผื่อได้
  6. ตัดแบบมัด (Bundle) สำหรับชิ้นงานความยาวเดียวกันจำนวนมาก การมัดรวมตัดช่วยลดจำนวนรอบการตัด อ่านเทคนิคได้ที่ ตัดงาน Bundle ด้วยเครื่องเลื่อยสายพาน
  7. ใช้เครื่องที่ตั้งความยาวได้แม่นยำ เครื่องกึ่งอัตโนมัติหรืออัตโนมัติที่ป้อนงานได้แม่นยำช่วยให้ตัดตามแผนได้จริง ไม่ต้องเผื่อความคลาดเคลื่อนจากการวัดด้วยมือ

เชื่อมโยงกับต้นทุนต่อตัดของเครื่องเลื่อยสายพาน

ต้นทุนงานตัดเหล็กไม่ได้มีแค่ราคาเหล็ก แต่ยังมีค่าใบเลื่อย ค่าไฟ ค่าแรง และค่าเสื่อมเครื่องต่อการตัดหนึ่งครั้ง แผนตัดที่ดีจึงต้องมองทั้งสองด้าน คือใช้เหล็กน้อยท่อนที่สุด และไม่เพิ่มจำนวนรอยตัดหรือการยกเหล็กโดยไม่จำเป็น ตัวอย่างเช่น ถ้าสองแผนใช้จำนวนท่อนเท่ากัน ให้เลือกแผนที่มีรูปแบบการตัดซ้ำกันมาก เพราะช่างตั้งความยาวน้อยครั้งกว่าและตัดแบบมัดได้ง่ายกว่า

อายุใบเลื่อยก็เป็นอีกตัวแปรสำคัญของต้นทุนต่อตัด ใบที่คมและเหมาะกับวัสดุตัดได้ตรงกว่าและตัดได้จำนวนครั้งมากกว่า อ่านวิธีคำนวณเพิ่มเติมได้ที่ อายุการใช้งานใบเลื่อยสายพานและการคำนวณต้นทุนต่อการตัด ส่วนถ้าต้องตัดท่อและโปรไฟล์เป็นหลัก ดู วิธีเลือกเครื่องเลื่อยสายพานสำหรับตัดท่อและโปรไฟล์

คำถามที่พบบ่อย (FAQ)

คลองเลื่อยของเครื่องเลื่อยสายพานกว้างเท่าไหร่?

โดยทั่วไปอยู่ราว 1–2.5 มม. ขึ้นกับความหนาใบและระยะคัดฟัน ใบสำหรับเครื่องขนาดใหญ่มักหนากว่าและมีคลองเลื่อยกว้างกว่า วิธีที่แม่นที่สุดคือตัดทดลองแล้ววัดจริงจากชิ้นงาน

% Yield เท่าไหร่ถึงเรียกว่าดี?

ขึ้นกับลักษณะงาน งานที่มีชิ้นงานหลายความยาวให้จัดผสมกันมักทำ Yield ได้สูงกว่างานที่มีความยาวเดียว ควรใช้ค่าจำนวนท่อนขั้นต่ำทางทฤษฎีเป็นตัวเทียบว่าแผนตัดของเราห่างจากค่าที่ดีที่สุดแค่ไหน

First-Fit Decreasing ให้คำตอบที่ดีที่สุดเสมอไหม?

ไม่เสมอไป FFD เป็นวิธีแบบฮิวริสติกที่เร็วและให้ผลดีในงานส่วนใหญ่ ถ้าต้องการคำตอบที่ดีที่สุดจริงๆ สำหรับงานขนาดใหญ่ สามารถใช้การโปรแกรมเชิงเส้นจำนวนเต็ม (Integer Programming) หรือซอฟต์แวร์วางแผนตัดโดยเฉพาะ

ใช้ Excel แทน Python ได้ไหม?

ได้สำหรับงานง่ายที่มีความยาวไม่กี่แบบ โดยคำนวณจำนวนชิ้นต่อท่อนด้วยสูตรปัดเศษลง แต่ถ้ามีหลายความยาวผสมกัน Python หรือโปรแกรมเฉพาะจะจัดชิ้นงานได้ดีกว่าและเร็วกว่ามาก

ควรเก็บเศษเหล็กยาวเท่าไหร่ไว้ใช้ต่อ?

ให้ดูจากชิ้นงานสั้นที่สุดที่ผลิตเป็นประจำ บวกระยะที่ปากจับของเครื่องต้องใช้ ถ้าเศษสั้นกว่านั้นมักไม่คุ้มพื้นที่จัดเก็บ ควรกำหนดเป็นมาตรฐานของโรงงานให้ชัดเจน

ตัดท่อหรือเหล็กรูปพรรณต้องคำนวณต่างจากเพลาไหม?

หลักการคำนวณเหมือนกันทุกประการ เพราะเป็นงานตัดตามความยาวเหมือนกัน สิ่งที่ต่างคือค่าตัดหัวท้ายที่อาจต้องเผื่อมากขึ้นเมื่อปลายท่อนบุบหรือเสียรูป และการตัดเฉียงองศาที่ทำให้แต่ละรอยตัดใช้ความยาวมากกว่ารอยตัดฉาก ควรนำความยาวส่วนเฉียงไปรวมในความยาวชิ้นงานก่อนคำนวณ

สรุป

การคำนวณตัดเหล็กให้เหลือเศษน้อยเริ่มจากการเผื่อคลองเลื่อยและหัวท้ายให้ถูกต้อง แล้วใช้วิธีอย่าง First-Fit Decreasing จัดชิ้นงานลงท่อน ตรวจผลด้วยสูตร % Yield และจำนวนท่อนขั้นต่ำทางทฤษฎี จากตัวอย่างในบทความ แค่วางแผนก่อนตัดก็ลดเหล็กได้ 1 ท่อนเต็มและเพิ่ม Yield จากราว 83.8% เป็น 94.2%

แผนตัดที่ดีต้องคู่กับเครื่องที่ตัดได้ตรงและใบเลื่อยที่เหมาะกับวัสดุ หากต้องการคำแนะนำเรื่องเครื่องเลื่อยสายพานหรือใบเลื่อยสายพาน Eberle สำหรับงานตัดเหล็กเส้น ท่อ และเพลา ติดต่อ CNE Service ได้เลย

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *