🚛 T3_Uty1トラック軌跡計算.vb - 詳細説明
📋 概要
このファイルは、トラック(大型車両・セミトレーラー)の旋回軌跡計算を行うユーティリティソフトウェアです。トラックが旋回する際の最小通路幅、クリアランス、車体の各部位の座標を精密に計算し、視覚的に軌跡図を描画します。
主な用途:
- 物流施設の通路幅設計
- 構内道路の旋回スペース計算
- 駐車場・ヤード設計の検証
- 荷捌きスペースの最適化
- 安全な車両動線の確保
🔧 依存関係
Imports OfficeOpenXml
EPPlusライブラリを使用してExcelファイルからトラック仕様データを読み込みます。
🎯 主要機能
1. トラック軌跡計算機能
- 多様な車種に対応(2t~大型トラック、セミトレーラー)
- 旋回時の内輪差計算
- オーバーハング(前後のはみ出し)計算
- クリアランス(必要通路幅)の自動算出
2. 三角関数による精密計算
- 三角関数を用いた車体各部位の座標計算
- 角度とラジアンの相互変換
- 回転中心からの距離(半径)計算
- 複数の計算手法の検証機能
3. 視覚化機能
- トラック旋回軌跡の図形描画
- 車体寸法図の表示
- 説明図の切り替え表示
- 拡大図・全体図の表示
📊 対応車種
| 車種 |
説明 |
用途 |
| 2T 標準キャブ 標準ボディ |
小型トラック |
市街地配送、小規模物流 |
| 2T ワイドキャブ ロングボディ |
小型トラック(長尺) |
長尺物・多積載配送 |
| 2T ワイドキャブ 超ロングボディ |
小型トラック(最長) |
大容量配送 |
| 4T カーゴ ワイド フルキャブ |
中型トラック(ワイド) |
中距離輸送 |
| 4T カーゴ 標準幅 フルキャブ |
中型トラック(標準) |
一般的な中型配送 |
| 16T カーゴ 6×2 |
大型トラック(3軸) |
大量輸送 |
| 15T カーゴ 8×4 |
大型トラック(4軸) |
重量物輸送 |
| 11T カーゴ 前二軸 |
大型トラック(前二軸) |
特殊重量物 |
| 20fコンテナ車 |
20フィートコンテナ専用 |
国際物流・港湾輸送 |
| 40fコンテナ車 |
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 トラック車体座標計算()
計算項目:
- 前輪中心座標: 旋回の基準点
- 後輪中心座標: 内輪差計算の基点
- 車両前端座標: オーバーハング計算
- 車両後端座標: 後方クリアランス
- 車体四隅の座標: 軌跡包絡線の計算
- 最小回転半径: 旋回性能の評価
計算基準: 車両ピッチ(ホイールベース)を基準に、各部位の相対位置を三角関数で算出します。
4. クリアランス計算
Private Sub クリアランス計算()
計算内容:
- 内側クリアランス: 内輪差による最小幅
- 外側クリアランス: 車体外側の必要幅
- 総通路幅: 安全に旋回できる最小幅
- 前方オーバーハング: 前端のはみ出し量
- 後方オーバーハング: 後端のはみ出し量
総通路幅 = 外側旋回半径 - 内側旋回半径 + 安全マージン
5. 軌跡図描画
Private Sub トラック軌跡図_直進旋回()
描画要素:
- 車体外形の描画(矩形)
- 前輪・後輪の旋回軌跡(円弧)
- 車体四隅の軌跡(包絡線)
- 牽引ピン位置(セミトレーラーの場合)
- 通路幅の表示
- クリアランス表示
描画技術: Graphics.DrawLine, DrawRectangle, DrawEllipse, DrawArc等を使用して軌跡を描画します。
📐 三角関数計算
計算の基礎理論
トラック軌跡計算では、以下の三角関数を多用します:
基本三角関数
sin(θ) = 対辺 / 斜辺
cos(θ) = 隣辺 / 斜辺
tan(θ) = 対辺 / 隣辺
逆三角関数
θ = arcsin(y / r) ← y と r から角度を求める
θ = arccos(x / r) ← x と r から角度を求める
θ = arctan(y / x) ← y と x から角度を求める
三平方の定理
r² = x² + y²
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点の計算(第1象限)
- 着床時P1の計算(第2象限)
- 180° - 角度で着床時角度を算出
- 第2象限ではx座標が負になる
- P2点の計算(着床時 -15°)
- P3点の計算(移動後の位置)
- P1からのオフセット(xs, ys)を加算
- 新しい半径と角度を算出
- P4点の計算(P3から -15°)
象限の考慮: 第1象限と第2象限では座標の符号が異なるため、計算時に注意が必要です。
📥 データ読み込み
1. トラック寸法データ
Private Sub トラック寸法読込()
読み込みデータ:
- 車種名
- 全長
- 全幅
- ホイールベース(車両ピッチ)
- 前輪トレッド
- 後輪トレッド
- 前オーバーハング
- 後オーバーハング
- 最小回転半径
ファイルパス: Dat保存Path & "\トラック軌跡計算\トラック寸法.xlsx"
シート名: トラック軌跡図データ
DataGridView: トラック寸法Dgv
2. セミトレーラー寸法データ
Private Sub セミトレーラー寸法読込()
読み込みデータ:
- トラクタ寸法
- トレーラー寸法
- 連結部寸法
- 牽引ピン位置
- 旋回特性データ
ファイルパス: Dat保存Path & "\トラック軌跡計算\トラック寸法.xlsx"
シート名: セミトレーラー軌跡図データ
DataGridView: セミトレーラー寸法Dgv
🎨 UI コンポーネント
入力パラメータ
| コントロール |
説明 |
用途 |
| 車種選択Cb |
車種選択コンボボックス |
計算対象のトラック選択 |
| 中心座標XTb, YTb |
旋回中心の座標 |
描画位置の調整 |
| 車両ピッチTb |
ホイールベース |
旋回計算の基準値 |
| 倍率Tb |
図面の縮尺 |
描画サイズの調整 |
| 直進Tb |
直進距離 |
旋回前の直進長さ |
三角関数計算用入力
| コントロール |
説明 |
| 半計rTb |
半径(斜辺) |
| yTb |
y座標(対辺) |
| xsTb, ysTb |
移動距離(オフセット) |
| 斜辺Tb |
斜辺の長さ |
| 対辺Tb |
対辺の長さ |
| 隣辺Tb |
隣辺の長さ |
RadioButton(表示切替)
- 車体寸法図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
🔧 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
📊 三角関数表の生成
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 g As Graphics = 回転Pb.CreateGraphics()
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