📋 概述
本檔案為進行卡車(大型車輛・半拖車)轉向軌跡計算的公用軟體。其能精確計算卡車轉向時的最小通道寬度、安全間距(Clearance)以及車體各部位的座標,並以視覺化方式繪製軌跡圖。
主要用途:
- 物流設施的通道寬度設計
- 廠區道路的轉向空間計算
- 停車場・堆場設計的驗證
- 理貨空間的最佳化
- 確保安全的車輛動線
🔧 依賴關係
Imports OfficeOpenXml
使用 EPPlus 函式庫從 Excel 檔案讀取卡車規格資料。
🎯 主要功能
1. 卡車軌跡計算功能
- 支援多種車型(2噸~大型卡車、半拖車)
- 轉向時的內輪差計算
- 懸垂量(Overhang,前後突出部分)計算
- 自動算出安全間距(所需通道寬度)
2. 運用三角函數的精密計算
- 運用三角函數計算車體各部位的座標
- 角度與弧度的互相轉換
- 距旋轉中心之距離(半徑)計算
- 多種計算方法的驗證功能
3. 視覺化功能
- 卡車轉向軌跡的圖形繪製
- 車體尺寸圖的顯示
- 說明圖的切換顯示
- 放大圖・全景圖的顯示
📊 支援車型
| 車型 | 說明 | 用途 |
|---|---|---|
| 2T 標準駕駛室 標準車斗 | 小型卡車 | 市區配送、小規模物流 |
| 2T 寬駕駛室 長車斗 | 小型卡車(加長) | 長型物品・多裝載量配送 |
| 2T 寬駕駛室 超長車斗 | 小型卡車(最長) | 大容量配送 |
| 4T 載貨 寬版 全駕駛室 | 中型卡車(寬版) | 中距離運輸 |
| 4T 載貨 標準寬 全駕駛室 | 中型卡車(標準) | 一般中型配送 |
| 16T 載貨 6×2 | 大型卡車(3軸) | 大量運輸 |
| 15T 載貨 8×4 | 大型卡車(4軸) | 重物運輸 |
| 11T 載貨 前雙軸 | 大型卡車(前雙軸) | 特殊重物 |
| 20尺貨櫃車 | 20呎貨櫃專用 | 國際物流・港口運輸 |
| 40尺貨櫃車 | 40呎貨櫃專用 | 大型國際物流 |
🔍 主要方法詳細說明
1. 表單載入處理
Private Sub 卡車軌跡圖_Load(sender As Object, e As EventArgs)
初始化處理:
- 顯示使用期限與版權
- 確認必要檔案是否存在
- 讀取卡車尺寸資料
- 讀取半拖車尺寸資料
- 設定車型選擇下拉選單
- 設定畫面預設值
- 三角函數計算用的初始設定
2. 計算開始處理
Private Sub 計算開始Bt_Click_1(sender As Object, e As EventArgs)
計算流程:
- 套用設定值(視需要)
- 讀取畫面資料
- 計算卡車車體座標
- 計算安全間距
- 調整卡車縮放尺寸
- 計算轉向前的停車位置
- 繪製直線與轉向軌跡
- 視覺回饋(更改背景顏色)
3. 卡車車體座標計算
Private Sub 卡車車體座標計算()
計算項目:
- 前輪中心座標: 轉向的基準點
- 後輪中心座標: 內輪差計算的基點
- 車輛前端座標: 懸垂量計算
- 車輛後端座標: 後方安全間距
- 車體四角座標: 軌跡包絡線的計算
- 最小迴轉半徑: 轉向性能評估
計算基準: 以車輛軸距(Wheelbase)為基準,利用三角函數算出各部位的相對位置。
4. 安全間距計算
Private Sub 安全間距計算()
計算內容:
- 內側安全間距: 內輪差造成的最小寬度
- 外側安全間距: 車體外側的所需寬度
- 總通道寬度: 能安全轉向的最小寬度
- 前方懸垂量: 前端突出量
- 後方懸垂量: 後端突出量
總通道寬度 = 外側迴轉半徑 - 內側迴轉半徑 + 安全餘裕
5. 軌跡圖繪製
Private Sub 卡車軌跡圖_直行轉向()
繪製元素:
- 車體外形的繪製(矩形)
- 前輪・後輪的轉向軌跡(圓弧)
- 車體四角的軌跡(包絡線)
- 牽引銷位置(若為半拖車)
- 顯示通道寬度
- 顯示安全間距
繪圖技術: 使用 Graphics.DrawLine, DrawRectangle, DrawEllipse, DrawArc 等方法來繪製軌跡。
📐 三角函數計算
計算的基礎理論
卡車軌跡計算中會大量使用以下的三角函數:
基本三角函數
sin(θ) = 對邊 / 斜邊
cos(θ) = 鄰邊 / 斜邊
tan(θ) = 對邊 / 鄰邊
cos(θ) = 鄰邊 / 斜邊
tan(θ) = 對邊 / 鄰邊
反三角函數
θ = arcsin(y / r) ← 從 y 與 r 求出角度
θ = arccos(x / r) ← 從 x 與 r 求出角度
θ = arctan(y / x) ← 從 y 與 x 求出角度
θ = arccos(x / r) ← 從 x 與 r 求出角度
θ = arctan(y / x) ← 從 y 與 x 求出角度
畢氏定理
r² = x² + y²
x = √(r² - y²)
y = √(r² - x²)
x = √(r² - y²)
y = √(r² - x²)
已實作的計算函數
| 函數名稱 | 計算內容 | 回傳值 |
|---|---|---|
| X座標計算1(角度, r) | 從角度與 r 計算 x 座標 | x = cos(弧度) × r |
| X座標計算3(r, y) | 從 r 與 y 計算 x 座標 | x = √(r² - y²) |
| Y座標計算1(角度, r) | 從角度與 r 計算 y 座標 | y = sin(弧度) × r |
| R座標計算3(y, x) | 從 x 與 y 計算半徑 r | r = √(x² + y²) |
| 弧度計算1(r, y) | 從 r 與 y 計算弧度 | θ = arcsin(y / r) |
| 弧度計算4(角度) | 從角度計算弧度 | 弧度 = (π / 180) × 角度 |
| 角度計算(弧度) | 從弧度計算角度 | 角度 = (180 / π) × 弧度 |
三角函數計算的執行
Private Sub 三角函數計算()
計算步驟:
- 計算 P1 點(第一象限)
- 從 r 與 y 算出 x
- 算出弧度與角度
- 計算著地時的 P1(第二象限)
- 以 180° - 角度算出著地時的角度
- 在第二象限 x 座標將為負值
- 計算 P2 點(著地時 -15°)
- 從著地角度減去 15°
- 算出新座標
- 計算 P3 點(移動後的位置)
- 加上距離 P1 的偏移量(xs, ys)
- 算出新半徑與角度
- 計算 P4 點(P3 -15°)
- 從 P3 角度減去 15°
- 算出最終座標
象限的考量: 由於第一象限與第二象限的座標正負號不同,計算時必須特別注意。
📥 資料讀取
1. 卡車尺寸資料
Private Sub 卡車尺寸讀取()
讀取資料:
- 車型名稱
- 全長
- 全寬
- 軸距(車輛軸距)
- 前輪輪距
- 後輪輪距
- 前懸垂量
- 後懸垂量
- 最小迴轉半徑
檔案路徑: Dat儲存Path & "\卡車軌跡計算\卡車尺寸.xlsx"
工作表名稱: 卡車軌跡圖資料
DataGridView: 卡車尺寸Dgv
工作表名稱: 卡車軌跡圖資料
DataGridView: 卡車尺寸Dgv
2. 半拖車尺寸資料
Private Sub 半拖車尺寸讀取()
讀取資料:
- 牽引車尺寸
- 拖車尺寸
- 連結部尺寸
- 牽引銷位置
- 轉向特性資料
檔案路徑: Dat儲存Path & "\卡車軌跡計算\卡車尺寸.xlsx"
工作表名稱: 半拖車軌跡圖資料
DataGridView: 半拖車尺寸Dgv
工作表名稱: 半拖車軌跡圖資料
DataGridView: 半拖車尺寸Dgv
🎨 UI 元件
輸入參數
| 控制項 | 說明 | 用途 |
|---|---|---|
| 車型選擇Cb | 車型選擇下拉選單 | 選擇欲計算的卡車 |
| 中心座標XTb, YTb | 轉向中心的座標 | 調整繪圖位置 |
| 車輛軸距Tb | 軸距 | 轉向計算的基準值 |
| 倍率Tb | 圖面的縮放比例 | 調整繪圖尺寸 |
| 直行Tb | 直行距離 | 轉向前的直行長度 |
三角函數計算用輸入
| 控制項 | 說明 |
|---|---|
| 半徑rTb | 半徑(斜邊) |
| yTb | y 座標(對邊) |
| xsTb, ysTb | 移動距離(偏移量) |
| 斜邊Tb | 斜邊的長度 |
| 對邊Tb | 對邊的長度 |
| 鄰邊Tb | 鄰邊的長度 |
選項按鈕(顯示切換)
- 車體尺寸圖Rb: 顯示車體尺寸說明圖
- 計算說明圖1Rb: 轉向通道寬度說明圖1
- 計算說明圖2Rb: 轉向通道寬度說明圖2
- 計算說明圖3Rb: 轉向通道寬度詳細圖
- 設定值Rb: 自動設定預設值
- 全景圖Rb / 放大圖Rb: 切換安全間距圖的顯示
PictureBox(圖片顯示)
- 車體Pb: 顯示車體尺寸圖・說明圖
- 車間2安全間距Pb: 安全間距說明圖
- 旋轉Pb: 卡車軌跡圖的繪製畫布
DataGridView
- 卡車尺寸Dgv: 顯示卡車規格資料
- 半拖車尺寸Dgv: 顯示半拖車規格資料
- 座標計算Dgv: 顯示座標計算結果
- 三角函數表Dgv: 三角函數計算結果
按鈕
- 計算開始Bt: 執行軌跡計算
- 三角函數_說明開始Bt: 執行三角函數計算
- 說明2A執行Bt: 三角函數的詳細計算
- 三角函數表_重新顯示Bt: 重新顯示三角函數表
- 關閉Bt: 關閉表單
🖼️ 圖片資源
使用以下 JPG 圖片作為說明圖:
| 檔案名稱 | 說明 |
|---|---|
| 車體尺寸圖2.jpg | 卡車車體各部尺寸說明圖 |
| 卡車轉向通道寬度1.jpg | 轉向通道寬度基本說明圖 |
| 卡車轉向通道寬度2.jpg | 轉向通道寬度詳細說明圖 |
| 卡車轉向通道寬度2-1.jpg | 安全間距全景圖 |
| 卡車轉向通道寬度2-2.jpg | 安全間距放大圖 |
圖片資料夾: MyPath & "\卡車軌跡圖Jpg"
顯示方式: 使用 PictureBox.BackgroundImageLayout = ImageLayout.Zoom 來顯示圖片。
📐 計算範例:算出轉向通道寬度
步驟1: 前輪迴轉半徑
前輪迴轉半徑 = 最小迴轉半徑
步驟2: 後輪迴轉半徑
後輪迴轉半徑 = √(前輪迴轉半徑² - 車輛軸距²)
步驟3: 車體外側點的迴轉半徑
外側迴轉半徑 = √((前輪迴轉半徑 + 車寬/2)² + 前懸垂量²)
步驟4: 車體內側點的迴轉半徑
內側迴轉半徑 = 後輪迴轉半徑 - 車寬/2
步驟5: 所需通道寬度
所需通道寬度 = 外側迴轉半徑 - 內側迴轉半徑
安全餘裕: 在實際設計時,建議在計算值上加上 10~20% 的安全餘裕。
🔍 特殊處理
1. 縮放調整
Private Sub 卡車縮放尺寸()
配合繪圖畫布的大小縮放卡車尺寸。可透過倍率參數進行調整。
2. 依車型設定預設值
Private Sub 畫面預設設定()
根據選擇的車型,自動設定最佳的繪圖參數(中心座標、倍率、直行距離)。
| 車型 | 倍率 | 直行距離 | 車輛軸距 |
|---|---|---|---|
| 2T 標準 | 0.02 | 1600mm | 3000mm |
| 2T 長版 | 0.02 | 2900mm | 3000mm |
| 4T 載貨 | 0.02 | 4250~4500mm | 3000mm |
| 大型卡車 | 0.02 | 5450~5600mm | 4000mm |
3. 轉向前停車位置計算
Private Sub 卡車軌跡圖_轉向前的停車位置()
計算開始轉向前的卡車停車位置,並繪製呈直線狀態的車體。
🎯 視覺回饋
更改 GroupBox 背景顏色
執行計算時,GroupBox4 的背景顏色會交替變化:
- LightYellow (淡黃色): 計算執行狀態
- PowderBlue (淡藍色): 正常狀態
If 計算開始_Chk2 = 0 Then
GroupBox4.BackColor = Color.LightYellow
計算開始_Chk2 = 1
Else
GroupBox4.BackColor = Color.PowderBlue
計算開始_Chk2 = 0
End If
GroupBox4.BackColor = Color.LightYellow
計算開始_Chk2 = 1
Else
GroupBox4.BackColor = Color.PowderBlue
計算開始_Chk2 = 0
End If
🔧 DataGridView 設定
共通設定
- RowHeadersVisible = False: 隱藏列標題
- ColumnHeadersVisible = False: 隱藏行標題
- AllowUserToAddRows = False: 停用使用者新增資料列
- ReadOnly = True: 唯讀模式
- Frozen: 凍結首列與首欄
儲存格樣式
| 樣式 | 設定 |
|---|---|
| cstyle1 | Alignment = MiddleCenter |
| cstyle2 | Alignment = MiddleRight, Format = "N0" |
| cstyle3 | Alignment = MiddleRight, Format = "N1" |
欄寬設定
卡車尺寸Dgv:
- 欄1(車型名稱): 寬 110px
- 其他欄位: 寬 50px
- 欄1(車型名稱): 寬 110px
- 其他欄位: 寬 50px
📊 產生三角函數表
Private Sub 三角函數表()
以列表方式顯示三角函數的計算結果:
顯示項目
- 角度(0° ~ 360°)
- 弧度
- sin 值
- cos 值
- tan 值
可運用於工程計算的驗證或教學用途。
📐 已實作的三角函數方法
座標計算函數
| 方法 | 說明 | 公式 |
|---|---|---|
| X座標計算1(角度, r) | 從角度與半徑算 X 座標 | x = r × cos(角度的弧度) |
| X座標計算3(r, y) | 從半徑與 Y 座標算 X 座標 | x = √(r² - y²) |
| Y座標計算1(角度, r) | 從角度與半徑算 Y 座標 | y = r × sin(角度的弧度) |
| R座標計算3(y, x) | 從 X 座標與 Y 座標算半徑 | r = √(x² + y²) |
角度・弧度轉換函數
| 方法 | 說明 | 公式 |
|---|---|---|
| 弧度計算1(r, y) | 從半徑與 Y 座標算弧度 | θ = arcsin(y / r) |
| 弧度計算4(角度) | 從角度算弧度 | 弧度 = 角度 × π / 180 |
| 角度計算(弧度) | 從弧度算角度 | 角度 = 弧度 × 180 / π |
🎨 圖形繪製
使用的繪圖方法
- Graphics.DrawLine: 繪製直線(車體輪廓)
- Graphics.DrawRectangle: 繪製矩形(車體本體)
- Graphics.DrawEllipse: 繪製橢圓・圓形(輪胎、轉向軌跡)
- Graphics.DrawArc: 繪製圓弧(轉向軌跡的一部分)
- Graphics.DrawPolygon: 繪製多邊形(複雜形狀)
Pen (畫筆) 設定
Dim BPen As New Pen(Color.Black, 1) ' 黑色,線寬 1
Dim RPen As New Pen(Color.Red, 2) ' 紅色,線寬 2
Dim BPen_Dash As New Pen(Color.Blue, 1)
BPen_Dash.DashStyle = DashStyle.Dash ' 虛線
Dim RPen As New Pen(Color.Red, 2) ' 紅色,線寬 2
Dim BPen_Dash As New Pen(Color.Blue, 1)
BPen_Dash.DashStyle = DashStyle.Dash ' 虛線
繪圖畫布
Dim g As Graphics = 旋轉Pb.CreateGraphics()
g.Clear(旋轉Pb.BackColor) ' 清除畫布
' 繪圖處理
g.Dispose() ' 釋放資源
g.Clear(旋轉Pb.BackColor) ' 清除畫布
' 繪圖處理
g.Dispose() ' 釋放資源
🔄 處理流程全圖
┌─────────────────────────────────────┐
│ 表單載入 │
└──────────┬──────────────────────────┘
│
├→ 顯示期限・版權
├→ 檔案確認
├→ 讀取卡車尺寸
├→ 讀取半拖車尺寸
├→ 設定車型選擇Cb
├→ 畫面預設設定
└→ 三角函數用初始設定
│
▼
┌─────────────────────────────────────┐
│ 點擊計算開始按鈕 │
└──────────┬──────────────────────────┘
│
├→ 套用設定值(視需要)
├→ 讀取畫面資料
│
▼
┌─────────────────────────────────────┐
│ 卡車車體座標計算 │
└──────────┬──────────────────────────┘
│
├─ 前輪中心座標
├─ 後輪中心座標
├─ 車輛前端座標
├─ 車輛後端座標
├─ 車體四角座標
└─ 最小迴轉半徑
│
▼
┌─────────────────────────────────────┐
│ 安全間距計算 │
└──────────┬──────────────────────────┘
│
├─ 內側安全間距
├─ 外側安全間距
├─ 總通道寬度
├─ 前方懸垂量
└─ 後方懸垂量
│
▼
┌─────────────────────────────────────┐
│ 縮放調整 │
└──────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 轉向前停車位置計算 │
└──────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 直行與轉向軌跡繪製 │
└──────────┬──────────────────────────┘
│
├─ 繪製車體外形
├─ 繪製前輪軌跡
├─ 繪製後輪軌跡
├─ 繪製車體四角軌跡
└─ 顯示通道寬度
💡 應用場景
1. 物流設施設計
- 決定倉庫內的通道寬度
- 碼頭配置的最佳化
- 卡車停靠區的配置規劃
2. 廠區設計
- 決定廠區道路寬度
- 十字路口・彎道的設計
- 確保安全的動線
3. 停車場設計
- 大型車停車格的尺寸
- 出入口寬度計算
- 保留足夠的迴轉空間
4. 教育與培訓
- 駕駛員教育的視覺化教材
- 促進對內輪差的理解
- 安全駕駛教育
⚠️ 注意事項
關於計算精確度
- 計算結果為理論值。可能與實際車輛動態略有不同。
- 未考量輪胎變形與懸吊下壓的影響。
- 未包含路面傾斜或不平整造成的影響。
安全餘裕
- 設計時請在計算值上加入安全餘裕(10~20%)。
- 實際運用時,必須將駕駛員的技術水準列入考量。
- 請一併考量雨天或載重狀態所帶來的差異。
資料更新
卡車尺寸資料需配合最新的車輛規格進行定期更新。
🔗 相關模組
本公用軟體可與以下 Tera 計算系統進行整合:
- T3_4 出貨空間: 卡車台數計算的驗證
- 倉庫佈局設計: 確認通道寬度的合理性
- 物流動線規劃: 安全的動線設計
📚 總結
T3_Uty1卡車軌跡計算.vb 是一款精確計算並視覺化卡車轉向軌跡的專業工具。
主要特色
- ✅ 支援多種車型(小型~大型卡車、半拖車)
- ✅ 透過三角函數進行精密的座標計算
- ✅ 自動算出安全間距(所需通道寬度)
- ✅ 視覺化繪製軌跡圖
- ✅ 教學用的三角函數計算功能
- ✅ 顯示詳細的說明圖表
適用領域
- 物流設施・倉庫的設計
- 廠區道路的規劃
- 停車場・堆場的配置
- 駕駛員教育・安全培訓
重要: 將計算結果套用於實際設計時,請務必加入安全餘裕,並交由專家進行確認。
📞 支援資訊
文件建立日期: 自動產生
目標檔案: T3_Uty1卡車軌跡計算.vb
語言: Visual Basic .NET (VB.NET)
總行數: 1398行
核心技術: Windows Forms, Graphics繪圖, 三角函數計算, EPPlus