T3_1_PL_Ass計算.vb 詳細說明書

1. 概述

本檔案是為了進行棧板式自動倉儲 (PL_Ass型) 設計計算所開發的 Windows 表單應用程式。 主要職責在於根據棧板倉儲的尺寸、層數、行數等輸入參數,自動計算出整座倉庫所需的尺寸(寬度、長度、高度)、 樓面面積、虛擬樓面面積,以及防火牆數量等,以產生佈局設計所需的基礎資料。

此程式實作為具備有效期限檢查功能的試用版,會在表單載入時檢查有效期限。

2. 主要類別/模組

2.1. PL_Ass計算F 類別

目的

用來執行棧板式自動倉儲(PL_Ass型)設計計算的主表單類別。 接收各種輸入參數後,自動計算倉庫所需的尺寸、面積及層數結構等。

主要屬性

此類別繼承自 System.Windows.Forms.Form,並包含了大量的文字方塊(Tb)、 標籤(L)、按鈕(Bt)、面板(Panel)等 UI 控制項。 主要的變數如下所示:

  • PL尺寸相關: PL寬度, PL深度, PL總高, PL厚度, 貨物高度
  • 倉儲結構: 座數, 列數, 層數, 行數, PL儲存數
  • 空間相關: 相鄰間距(C), 貨架間距(C), 支柱寬度
  • 計算結果: 貨架總寬, 貨架總長, 貨架總高, 所需寬度, 所需長度, 所需高度
  • 層數結構: 最上層, 有補強材層, 無補強材層, 最低高度
  • 面積相關: 總樓面面積, 總虛擬樓面面積, 佈局面積, 防火牆數量

主要方法/函式

  • PL_Ass計算_Load - 表單初始化與啟動主程式
  • Tb讀取 - 從文字方塊讀取資料
  • PL_Ass計算 - 主要的計算邏輯
  • 計算開始Bt_Click - 點擊計算按鈕時的處理程序
  • 封面Pb_Click / 開始Bt_Click - 標籤頁切換處理
  • 關閉Bt_Click - 表單關閉處理程序

3. 主要函式/副程式詳細說明

3.1. PL_Ass計算_Load

功能說明

表單載入時執行的事件處理常式。負責設定版權顯示、有效期限顯示、 有效期限檢查、讀取初始資料,並執行初次計算。

參數

參數名稱 型別 說明
sender Object 觸發事件的物件
e EventArgs 事件參數

回傳值

型別: 無 (Sub)
說明: 因屬事件處理常式,故無回傳值

處理流程

  1. 設定版權標籤與有效期限標籤的文字
  2. 取得目前日期,並與試用版有效期限進行比較
  3. 若已過期,則顯示訊息方塊並關閉表單
  4. 若在有效期限內,則呼叫 Tb讀取() 來讀取資料
  5. 呼叫 PL_Ass計算() 執行初次計算
特別注意事項:
作為試用版功能,內建了有效期限檢查機制。若已過期,應用程式將會立即終止。

3.2. Tb讀取

功能說明

讀取各文字方塊中輸入的數值,並儲存至變數中。 同時也會進行部分計算(例如算出貨物高度)。

參數

無

回傳值

型別: 無 (Sub)
說明: 僅將數值設定至內部變數

處理流程

  1. 從文字方塊讀取 PL寬度、PL深度、PL總高、PL厚度
  2. 計算 貨物高度 = PL總高 - PL厚度,並顯示於文字方塊中
  3. 讀取座數、列數、層數
  4. 讀取相鄰間距(C)
特別注意事項:
此方法作為計算前的準備階段,將 UI 輸入值轉換為內部變數。 部分文字方塊(如 PL深度2Tb、貨物高度Tb 等)會重新顯示讀取到的數值或計算結果。

3.3. PL_Ass計算

功能說明

計算棧板式自動倉儲各種尺寸與面積的主程式。 會依序計算儲存數量、貨架尺寸、列間距、層數結構、所需空間、樓面面積、虛擬樓面面積、防火牆數量以及佈局面積等。

參數

無(使用類別內的變數)

回傳值

型別: 無 (Sub)
說明: 計算結果會顯示於各文字方塊中

處理流程

  1. 儲存數量計算:
    • 行數 = 座數 × 2
    • PL儲存數 = 行數 × 列數 × 層數
  2. 貨架總寬計算:
    • 貨架通道寬度 = PL寬度 + 200
    • 貨架總寬 = (PL寬度 + 100) × 2 + 貨架通道寬度
    • 所需寬度 = 貨架總寬 + 相鄰間距(C) × 2
  3. 列間距計算:
    • 列間距 = 支柱寬度 + PL深度 + 貨架間距(C) × 2
  4. 貨架長度計算:
    • 貨架總長 = 列間距 × 列數 + 貨架間距(C)
  5. 所需長度計算:
    • 所需長度 = 貨架總長 + 貨架後部長度 + 維修通道 + 進出貨輸送帶長度 + 搬運通道
  6. 層數結構計算:
    • 最上層 = PL總高 + 升降間距(C) + 補強材厚度 + 220(最小值為 1600)
    • 有補強材層 = PL總高 + 升降間距(C) + 補強材厚度 + 升降間距(C) + 懸臂厚度
    • 有補強材層_層數 = Int(層數 / 3)
    • 無補強材層 = PL總高 + 升降間距(C) + 懸臂厚度
    • 無補強材層_層數 = 層數 - 有補強材層_層數 - 1
  7. 貨架總高・所需高度計算:
    • 貨架總高 = 最低高度 + (有補強材層 × 有補強材層_層數) + (無補強材層 × 無補強材層_層數) + 最上層
    • 所需高度 = 貨架總高 + 天花板間距(C)
  8. 單座所需面積計算:
    • 單座所需面積 = Int(所需寬度 × 所需長度 / 1000²)
  9. 虛擬樓面計算:
    • 最上層懸臂上面高度 = 貨架總高 - 最上層
    • 虛擬樓面數 = Int(最上層懸臂上面高度 / 5000)
    • 虛擬樓面數面積 = 虛擬樓面數 × (貨架總寬 × 貨架總長)
    • 單座虛擬樓面面積 = Int(虛擬樓面數面積 / 1000²)
  10. 佈局面積計算:
    • 佈局寬度 = (貨架總寬 + 相鄰間距(C)) × 座數 + 相鄰間距(C)
    • 總樓面面積 = ((佈局寬度 × 所需長度) × 座數) / 1000²
    • 總虛擬樓面面積 = 單座虛擬樓面面積 × 座數
  11. 防火牆計算:
    • 防火牆判斷用面積 = 總樓面面積 + 總虛擬樓面面積
    • 防火牆數量 = Int(防火牆判斷用面積 / 1500)
    • 防火牆厚度 = 150
    • 佈局面積 = ((佈局寬度 + 防火牆數量 × (防火牆厚度 + 200)) × 所需長度) / 1000²
特別注意事項:
此函式為物流設備空間計算的核心處理。同時也會依據建築基準法自動計算出所需的防火牆數量。 各計算階段的中間結果會顯示於文字方塊中,方便設計人員確認計算過程。

3.4. 計算開始Bt_Click

功能說明

點擊「計算開始」按鈕時所執行的事件處理常式。 會重新讀取資料並執行重新計算,同時切換結果顯示區的背景顏色以提供視覺回饋。

參數

參數名稱 型別 說明
sender Object 觸發事件的按鈕
e EventArgs 事件參數

回傳值

型別: 無 (Sub)
說明: 因屬事件處理常式,故無回傳值

處理流程

  1. 透過 Tb讀取() 重新讀取資料
  2. 透過 PL_Ass計算() 執行重新計算
  3. 根據 計算開始_Chk 旗標,切換主要結果文字方塊的背景色(Yellow ⇔ Aquamarine)
  4. 根據 計算開始_Chk2 旗標,切換 Panel1 的背景色(LightYellow ⇔ PowderBlue)
特別注意事項:
背景顏色的切換是 UI 上的巧思,讓使用者每次按下計算按鈕時,都能在視覺上確認結果已更新。

3.5. 封面Pb_Click / 開始Bt_Click

功能說明

點擊封面圖片(Pb)或開始按鈕時, 將標籤頁控制項切換至「PL自動倉庫Tp」標籤。

參數

參數名稱 型別 說明
sender Object 觸發事件的控制項
e EventArgs 事件參數

回傳值

型別: 無 (Sub)
說明: 因屬事件處理常式,故無回傳值

處理流程

  1. 將 TabControl1 的 SelectedTab 屬性設定為 PL自動倉庫Tp
特別注意事項:
作為應用程式的導覽功能,提供從封面畫面轉換至計算畫面的功能。

3.6. 關閉Bt_Click

功能說明

點擊「關閉」按鈕時關閉表單。

參數

參數名稱 型別 說明
sender Object 觸發事件的按鈕
e EventArgs 事件參數

回傳值

型別: 無 (Sub)
說明: 因屬事件處理常式,故無回傳值

處理流程

  1. 使用 Me.Close() 來關閉表單
特別注意事項:
這是一個簡單的表單關閉處理程序。

4. 依賴關係

  • System.Windows.Forms - Windows 表單應用程式的基本功能
  • System.Drawing - 用於 UI 顏色設定(Color 型別)
  • System - 用於基本型別與 DateTime 處理
  • 全域變數模組(推測) - 參照版權、公司名稱、試用版有效期限等全域變數
注意:
程式碼中參照的變數(公司、版權、試用版有效期限、計算開始_Chk 等), 推測是定義在其他模組或共通設定檔中。

5. 修訂歷史

修訂日期 版本 修訂內容 負責人
2025年 1.0 初次建立詳細說明文件 -

6. 計算公式摘要

儲存數量

  • 行數 = 座數 × 2
  • PL儲存數 = 行數 × 列數 × 層數

貨架尺寸

  • 貨物高度 = PL總高 - PL厚度
  • 貨架通道寬度 = PL寬度 + 200
  • 貨架總寬 = (PL寬度 + 100) × 2 + 貨架通道寬度
  • 所需寬度 = 貨架總寬 + 相鄰間距(C) × 2
  • 列間距 = 支柱寬度 + PL深度 + 貨架間距(C) × 2
  • 貨架總長 = 列間距 × 列數 + 貨架間距(C)
  • 所需長度 = 貨架總長 + 貨架後部長度 + 維修通道 + 進出貨輸送帶長度 + 搬運通道

層數結構

  • 最上層 = PL總高 + 升降間距(C) + 補強材厚度 + 220 (最小值為 1600)
  • 有補強材層 = PL總高 + 升降間距(C) + 補強材厚度 + 升降間距(C) + 懸臂厚度
  • 有補強材層_層數 = Int(層數 / 3)
  • 無補強材層 = PL總高 + 升降間距(C) + 懸臂厚度
  • 無補強材層_層數 = 層數 - 有補強材層_層數 - 1

高度

  • 貨架總高 = 最低高度 + (有補強材層 × 有補強材層_層數) + (無補強材層 × 無補強材層_層數) + 最上層
  • 所需高度 = 貨架總高 + 天花板間距(C)

面積

  • 單座所需面積 = Int(所需寬度 × 所需長度 / 1000²) [m²]
  • 最上層懸臂上面高度 = 貨架總高 - 最上層
  • 虛擬樓面數 = Int(最上層懸臂上面高度 / 5000)
  • 虛擬樓面數面積 = 虛擬樓面數 × (貨架總寬 × 貨架總長)
  • 單座虛擬樓面面積 = Int(虛擬樓面數面積 / 1000²) [m²]
  • 佈局寬度 = (貨架總寬 + 相鄰間距(C)) × 座數 + 相鄰間距(C)
  • 總樓面面積 = ((佈局寬度 × 所需長度) × 座數) / 1000² [m²]
  • 總虛擬樓面面積 = 單座虛擬樓面面積 × 座數 [m²]

防火牆

  • 防火牆判斷用面積 = 總樓面面積 + 總虛擬樓面面積 [m²]
  • 防火牆數量 = Int(防火牆判斷用面積 / 1500)
  • 佈局面積 = ((佈局寬度 + 防火牆數量 × (150 + 200)) × 所需長度) / 1000² [m²]
關於單位的注意:
輸入值通常以 mm 為單位進行處理,在計算面積時會除以 1000² 將其轉換為 m²。