📐 T3_Uty3棧板裝載與儲存規模.vb - 詳細說明

📋 概述

本檔案是一款高階的公用軟體,專為計算棧板 (PL) 上的最佳裝載模式,並估算儲存所需的棧板數量所設計。它能根據紙箱尺寸與棧板的有效空間,自動計算出最佳的裝載配置方式。

主要用途:
  • 紙箱的棧板裝載模式最佳化計算
  • 多種裝載模式(P1、P2、P1&P2、P2&P1)的比較
  • 考量裝填率後,自動選定最佳模式
  • 計算儲存所需的棧板總數
  • 裝載示意圖的視覺化呈現(2D圖形繪製)
  • 支援多種棧板尺寸
何謂棧板裝載: 在物流作業中,將貨物(紙箱)高效率地排列放置在棧板上的動作。裝載模式的不同,會對運輸與儲存效率產生巨大影響。

🔧 依賴關係

Imports System.Runtime.InteropServices
Imports Microsoft.Office.Interop
Imports OfficeOpenXml

使用技術:

🎯 主要功能

1. 棧板裝載計算

2. 裝載模式

3. 儲存棧板數計算

4. 視覺化功能

📦 裝載模式詳細說明

P1 模式(直放)

配置方式:
紙箱的長邊(長度)與棧板寬度平行,短邊(寬度)與深度平行

計算公式:
寬度方向個數 = INT(有效寬度 / 紙箱長度)
深度方向個數 = INT(有效深度 / 紙箱寬度)
單層數量 = 寬度方向個數 × 深度方向個數

P2 模式(橫放)

配置方式:
紙箱的短邊(寬度)與棧板寬度平行,長邊(長度)與深度平行

計算公式:
寬度方向個數 = INT(有效寬度 / 紙箱寬度)
深度方向個數 = INT(有效深度 / 紙箱長度)
單層數量 = 寬度方向個數 × 深度方向個數

P1&P2 模式(組合1)

配置方式:
P1 模式與 P2 模式交錯配置
以 P1 為基準,剩餘空間用 P2 填滿

特色:
最小化無效空間(Dead space),提升裝填率

P2&P1 模式(組合2)

配置方式:
P2 模式與 P1 模式交錯配置
以 P2 為基準,剩餘空間用 P1 填滿

特色:
與 P1&P2 相反的配置方式,實現另一種最佳化

🔍 主要方法詳細說明

1. 表單載入處理

Private Sub 棧板裝載計算From_Load(sender As Object, e As EventArgs)

初始化處理:

  1. 顯示使用期限與版權
  2. 確認必要檔案是否存在
  3. 設定 Excel 檔案路徑
    MyExcel1 = Dat儲存Path & "\PL裝載計算\PL裝載計算.xlsx"
    MyE1_Sheet1 = "PL規格與包裝型態"
    MyE1_Sheet2 = "紙箱數與尺寸"
  4. 讀取 PL (棧板) 資訊
  5. 將項目寫入 ComboBox 下拉選單
  6. 讀取紙箱資訊
  7. 執行 PL 裝載計算

2. 執行 PL 裝載計算

Private Sub PL裝載計算執行()

處理流程:

  1. 初始化紙箱計算完畢的旗標
  2. 執行 PL 裝載計算
  3. 裝載計算結果 Gv 的顯示設定
    • 將奇數列的背景色設為黃綠色(GreenYellow)
    • 偶數列設為淺藍色(Aquamarine)
    • 提供視覺回饋
  4. 執行全 PL 彙總
背景顏色的交替變換: 每次執行計算時,背景色都會切換,讓使用者能直觀地確認已完成重新計算。

3. PL 裝載計算

Private Sub PL裝載計算()

計算步驟:

  1. P1 模式計算
    • 計算寬度與深度方向的可裝載數
    • 算出單層數量與堆疊層數
    • 計算總裝載數
  2. P2 模式計算
    • 進行與 P1 相同的計算(配置方向相反)
  3. P1&P2 模式計算
    • 計算配置 P1 後的剩餘空間
    • 將 P2 配置在剩餘空間內
    • 算出合計單層數量
  4. P2&P1 模式計算
    • 計算配置 P2 後的剩餘空間
    • 將 P1 配置在剩餘空間內
    • 算出合計單層數量
  5. 選定最佳模式
    • 比較各模式的裝填率
    • 推薦裝填率最高的模式

4. 讀取 PL 資訊

Private Sub PL資訊讀取()

讀取資料:

何謂有效尺寸: 從棧板的實際外觀尺寸中,扣除面板厚度或支架突出部分後,實際能夠用來裝載紙箱的可用範圍。

5. 讀取紙箱資訊

Private Sub 紙箱資訊讀取()

讀取資料:

6. 選擇 PLID

Private Sub PLID選擇()

處理內容:

📊 計算公式詳細說明

單層數量的計算

單層數量 = 寬度方向個數 × 深度方向個數

層數的計算

層數 = INT(有效高度 / 紙箱高度)

總裝載數的計算

總裝載數 = 單層數量 × 層數

裝填率的計算

平面裝填率 (%) = (單層數量 × 紙箱面積) / (有效寬度 × 有效深度) × 100

所需 PL 數的計算

所需 PL 數 = CEILING(總紙箱數 / 總裝載數)

※ 使用 CEILING 函數無條件進位(為防止棧板短缺)

平均裝填率的計算

平均裝填率 (%) = (總紙箱數 / (所需 PL 數 × 單層數量)) × 100

🖼️ 裝載示意圖繪製功能

繪圖方法列表

方法名稱 說明
裝載示意圖P1() 繪製 P1 模式的裝載圖
裝載示意圖P2() 繪製 P2 模式的裝載圖
裝載示意圖P1P2() 繪製 P1&P2 模式的裝載圖
裝載示意圖P2P1() 繪製 P2&P1 模式的裝載圖

繪圖的基本結構

  1. 建立 Bitmap 物件
    Dim img As New Bitmap(W + 10, H + 10)
    Dim g As Graphics = Graphics.FromImage(img)
  2. 繪製棧板外框
    g.FillRectangle(Brushes.Bisque, x1, y1, x2, y2) ' 填入米黃色
    g.DrawRectangle(Pens.Black, x1, y1, x2, y2) ' 黑色外框線
  3. 繪製有效範圍
    g.DrawRectangle(Pens.Black, x1, y1, x2, y2) ' 黑色外框線
  4. 繪製紙箱配置
    g.FillRectangle(Brushes.Azure, x1, y1, x2, y2) ' 填入淺藍色
    g.DrawRectangle(Pens.Black, x1, y1, x2, y2) ' 黑色外框線
  5. 繪製剩餘空間
    g.FillRectangle(Brushes.Thistle, x1, y1, x2, y2) ' 填入淺紫色
  6. 顯示圖片
    裝載示意圖Pb.SizeMode = PictureBoxSizeMode.Zoom
    裝載示意圖Pb.Image = img

顏色的運用

顏色 用途 代表意義
Bisque (米黃色) 棧板本體 棧板的物理範圍
Black (黑線) 外框・有效範圍 邊界線
Azure (淺藍色) 裝載的紙箱 被有效利用的空間
Thistle (淺紫色) 剩餘空間 無效空間 (Dead space)
White (白色) 背景 棧板外部的空間

📈 全 PL 彙總功能

全 PL 彙總

Private Sub 全PL彙總()

彙總內容:

最佳模式顯示 Dgv

Private Sub 最佳PL包裝計算DataGridView顯示()

顯示項目:

欄位 內容
估算試算流水號 計算模式的識別號碼
PLID 使用棧板的識別碼
紙箱No 紙箱的識別號碼
裝載模式 P1、P2、P1&P2、P2&P1
單層數量 每一層的紙箱數
層數 可堆疊的層數
總裝載數 每一棧板的總紙箱數
所需PL數 儲存所有紙箱所需的棧板數
估算平均裝填率 實際的裝填率

🎨 UI 元件

輸入控制項

控制項 說明
PLID選擇Cb 用來選擇棧板 ID 的 ComboBox
儲存PathTb 顯示 Excel 檔案路徑

DataGridView 列表

顯示用 TextBox

控制項 顯示內容
儲存所需PL數Tb 總所需棧板數量

按鈕

RadioButton(排序功能)

PictureBox

TabControl

Label

🎯 視覺回饋

變更背景顏色

執行計算時,多個控制項的背景色會同時發生變化:

狀態 背景顏色 目標控制項
初次計算 GreenYellow (黃綠色) ・裝載計算結果Gv(奇數列)
・儲存所需PL數Tb
・裝載示意圖Pb
重新計算 Aquamarine (淺藍色) ・裝載計算結果Gv(奇數列)
・儲存所需PL數Tb
・裝載示意圖Pb

操作說明標籤的顏色變化

🔄 處理流程全圖

┌─────────────────────────────────────┐
│   表單載入                          │
└──────────┬──────────────────────────┘
           │
           ├→ 顯示期限・版權
           ├→ 確認檔案是否存在
           ├→ 設定 Excel 路徑
           ├→ 讀取 PL 資訊
           │   └→ 取得棧板規格主檔資料
           ├→ 將項目寫入 ComboBox
           ├→ 讀取紙箱資訊
           │   └→ 取得紙箱尺寸・數量資料
           └→ 執行 PL 裝載計算
           │
           ▼
┌─────────────────────────────────────┐
│   選擇 PLID                         │
└──────────┬──────────────────────────┘
           │
           └→ 取得所選 PL 的資訊
           │
           ▼
┌─────────────────────────────────────┐
│   點擊 PL 裝載計算執行按鈕          │
└──────────┬──────────────────────────┘
           │
           ▼
┌─────────────────────────────────────┐
│   PL 裝載計算                       │
└──────────┬──────────────────────────┘
           │
           ├─ P1 模式計算
           │   ├→ 算出寬度方向個數
           │   ├→ 算出深度方向個數
           │   ├→ 單層數量 = 寬度 × 深度
           │   ├→ 算出層數
           │   └→ 總裝載數 = 單層數量 × 層數
           │
           ├─ P2 模式計算
           │   └→ (與 P1 相同,配置方向相反)
           │
           ├─ P1&P2 模式計算
           │   ├→ 配置 P1
           │   ├→ 計算剩餘空間
           │   └→ 將 P2 配置於剩餘空間
           │
           ├─ P2&P1 模式計算
           │   ├→ 配置 P2
           │   ├→ 計算剩餘空間
           │   └→ 將 P1 配置於剩餘空間
           │
           ├─ 計算各模式裝填率
           └─ 選定最佳模式
           │
           ▼
┌─────────────────────────────────────┐
│   繪製裝載示意圖                    │
└──────────┬──────────────────────────┘
           │
           ├─ 繪製棧板外框
           ├─ 繪製有效範圍
           ├─ 繪製紙箱配置
           └─ 繪製剩餘空間
           │
           ▼
┌─────────────────────────────────────┐
│   全 PL 彙總                        │
└──────────┬──────────────────────────┘
           │
           ├─ 算出所需 PL 數
           ├─ 計算平均裝填率
           └─ 顯示結果・視覺回饋

💡 應用場景

1. 新商品物流設計

2. 倉庫空間規劃

3. 提升運輸效率

4. 降低成本

5. 模擬測試

📊 DataGridView 設定

共通設定

特殊設定(裝載計算結果 Gv)

.AlternatingRowsDefaultCellStyle.BackColor = Color.GreenYellow
' 或
.AlternatingRowsDefaultCellStyle.BackColor = Color.Aquamarine

設定奇數列的背景色,每次執行計算時顏色皆會切換。

⚠️ 注意事項與限制

計算上的限制

  • 整數運算: 小數部分無條件捨去(會產生無效空間)
  • 重量限制: 注意不可超過最大載重量
  • 高度限制: 在有效高度內計算層數
  • 穩定性: 實際裝載時也必須考量堆疊穩定性

實務上的注意事項

  • 保留彈性: 計算值為理論值。實務上需保留約 10% 的彈性空間
  • 防止倒塌: 若層數較多,請考量使用固定器具(如棧板膜)
  • 重量平衡: 將較重的紙箱配置在下層
  • 預留通道: 需將堆高機的作業空間列入考量

資料輸入注意事項

  • 單位全數統一為 mm(公釐)
  • 重量請輸入 kg(公斤)
  • 必須滿足「有效尺寸 ≤ PL 尺寸」
  • 請精確測量紙箱尺寸

🔗 相關模組

本公用軟體與以下 Tera 計算系統進行整合:

💾 檔案・資料結構

Excel 檔案

檔案路徑: Dat儲存Path & "\PL裝載計算\PL裝載計算.xlsx"

工作表1: PL規格與包裝型態
- 棧板規格主檔資料

工作表2: 紙箱數與尺寸
- 紙箱尺寸・數量資料

資料連線

Provider=Microsoft.ACE.OLEDB.12.0
Data source=[檔案路徑]
Extended properties="Excel 8.0;HDR=YES;IMEX=1"

🎓 裝載的基礎知識

裝載模式的選擇方法

  1. P1 模式: 當紙箱為長方形,且長邊大約是短邊的 2 倍時最為有效
  2. P2 模式: 當 P1 的裝填率偏低時的替代方案
  3. P1&P2 模式: 欲將無效空間降至最低時
  4. P2&P1 模式: 當 P1&P2 裝填率偏低時的替代方案

裝填率參考指標

裝填率 評分
90%以上 非常良好
80~90% 良好
70~80% 標準
60~70% 偏低(應考慮改善)
60%未滿 太低(需改善)

改善要點

📚 總結

T3_Uty3棧板裝載與儲存規模.vb 是一款能支援棧板裝載最佳化與儲存規劃的高階計算工具。

主要特色

適用領域

提升計算精確度的要點

實務上的重要提醒: 計算結果為理論值。實際營運時,考量到安全性、穩定性與作業便利性,建議規劃約 10% 的安全彈性空間。

📞 支援資訊

文件建立日期: 自動產生

目標檔案: T3_Uty3棧板裝載與儲存規模.vb

語言: Visual Basic .NET (VB.NET)

總行數: 2609行

核心技術: Windows Forms, EPPlus, Graphics繪圖, 最佳化計算