T3_5_ケース_ASS.vb 詳細説明書

1. 概要

このファイルは、ケース型自動倉庫(段ボールケース自動倉庫)の設計計算を行うためのWindowsフォームアプリケーションです。 主な責務は、複数の異なるサイズのケースを混在保管する自動倉庫の寸法・段数・列数などの入力パラメータに基づき、 倉庫全体の必要寸法(幅・長さ・高さ)、必要面積、各段の格納配置などを自動計算し、 レイアウト設計に必要な基礎データを算出することです。

ケース型自動倉庫は、段ボールケースを直接保管する倉庫システムで、 EC物流センター、卸売センター、製造工場の完成品倉庫などで広く使用されています。

本システムの特徴的な機能:

標準ケースサイズ区分

ケースNo ケース幅範囲 ケース長(固定) 間口入数
1 150~300mm 600mm 6個/間口
2 301~400mm 600mm 5個/間口
3 401~500mm 600mm 4個/間口
4 501~600mm 600mm 3個/間口

2. 主要なクラス/モジュール

2.1. ケース自動倉庫計算F クラス

目的

ケース型自動倉庫の設計計算を行うメインフォームクラス。 複数サイズ混在保管に対応し、段ごとの格納配置を最適化します。

主要なプロパティ

このクラスはSystem.Windows.Forms.Formを継承しており、 DataGridView、テキストボックス、ラベル、ボタンなどのUIコントロールを保持しています。 主な変数とコントロールは以下の通りです:

  • 要求ケース数Dgv: DataGridView - ケース仕様と要求数の入力・表示
  • 格納詳細Dgv: DataGridView - 各段の格納ケース数詳細表示
  • 棚高Dgv: DataGridView - 各段の高さ情報表示
  • 基本構成: 列数, 間口数_列当たり, 段数, 前提ケース数
  • ケース情報: ケースNo1~4の比率、数、必要間口、必要段数
  • 計算結果: 必要幅, 必要長, 必要高, 必要面積
  • 画像パス: MyJpgPath(図面表示用、現在はコメントアウト)

主要なメソッド/関数

  • ケース自動倉庫計算_Load - フォーム初期化とメイン処理の起動
  • プログラムを起動したフォルダーのパスを取得 - 画像パス取得
  • ケース自動倉庫計算_初期設定 - DataGridViewの初期化とデフォルト値設定
  • 棚数計算 - ケース数・段配置・間口計算のメインロジック
  • 格納明細 - 各段の格納ケース配置詳細を計算
  • Dgv集計 - DataGridViewの集計処理
  • レイアウト_計算 - 倉庫全体の寸法・面積計算
  • レイアウト再計算Bt_Click - 再計算ボタンクリック時の処理
  • Dgv書式 - DataGridViewの書式設定

3. 主要な関数/サブルーチンの詳細

3.1. ケース自動倉庫計算_Load

機能説明

フォームのロード時に実行されるイベントハンドラです。著作権表示・有効期限表示の設定、 画像パスの取得、初期設定、計算の順次実行を行います。

引数

引数名 説明
sender Object イベント発生元のオブジェクト
e EventArgs イベント引数

戻り値

型: なし (Sub)
説明: イベントハンドラのため戻り値なし

処理フロー

  1. 著作権ラベルと有効期限ラベルにテキストを設定
  2. プログラムを起動したフォルダーのパスを取得()を呼び出して画像パスを設定
  3. ケース自動倉庫計算_初期設定()でDataGridViewを初期化
  4. 棚数計算()でケース配置計算を実行
  5. レイアウト_計算()で倉庫寸法・面積を算出
特記事項:
3つの計算メソッドを順次実行することで、ケース仕様から倉庫全体設計までを一貫して計算します。

3.2. ケース自動倉庫計算_初期設定

機能説明

要求ケース数DataGridViewの初期化を行い、デフォルトのケース仕様と比率を設定します。 列の追加、行の作成、セルの読み取り専用設定、デフォルト値の入力を行います。

引数

なし

戻り値

型: なし (Sub)
説明: DataGridViewの初期化のみ

処理フロー

  1. DataGridViewの列をクリア
  2. 11列を追加:
    • ケース高順位
    • ケースNo(1~4)
    • ケース幅(範囲表示)
    • ケース長(600mm固定)
    • ケース高(ユーザー入力可)
    • ケース数比率%(ユーザー入力可)
    • 要求ケース数(自動計算)
    • 間口入数(6, 5, 4, 3)
    • 必要間口(自動計算)
    • 間口数A(列当たり間口数×2)
    • 必要段数(自動計算)
  3. 4行を追加(ケースNo1~4用)
  4. 固定値を設定(ケースNo、ケース幅範囲、ケース長、間口入数)
  5. デフォルトのケース高を設定(300, 400, 450, 500mm)
  6. デフォルトのケース数比率を設定(20%, 40%, 35%, 5%)
  7. 編集可能セル(ケース高、ケース数比率)の背景色をPeachPuffに設定
  8. 棚数計算()を呼び出して初期計算を実行
特記事項:
ユーザーが変更できるのは「ケース高」と「ケース数比率」のみです。 その他の項目は自動計算または固定値です。 ケース数比率の合計は100%である必要があります。

3.3. 棚数計算

機能説明

ケース型自動倉庫の中核となる計算処理です。 前提ケース数とケース数比率から各ケースの要求数を算出し、 必要間口数、必要段数を計算します。さらにケース高順にソートして段配置の優先順位を決定します。

引数

なし(フォーム上のコントロールから値を取得)

戻り値

型: なし (Sub)
説明: 計算結果はDataGridViewに表示される

処理フロー

  1. 基本値の取得と計算:
    • 間口数合計 = 列数 × 間口数_列当たり × 段数
    • 前提ケース数を取得
    • 間口数A = 列数 × 間口数_列当たり
  2. ケース数の算出:
    • ケースNoごとにソート(昇順)
    • 各ケースの比率を取得
    • ケースNo1~3: Int(前提ケース数 × 比率 / 100 + 0.99999)で切り上げ
    • ケースNo4: 残数 = 前提ケース数 - (ケースNo1~3の合計)
    • 要求ケース数をDataGridViewに表示
  3. 必要間口数の計算:
    • ケースNo1: Int(要求数 / 6 + 0.9999)
    • ケースNo2: Int(要求数 / 5 + 0.9999)
    • ケースNo3: Int(要求数 / 4 + 0.9999)
    • ケースNo4: Int(要求数 / 3 + 0.9999)
    • 必要間口合計を算出
  4. 間口数Aの設定:
    • 全ケースに対して、間口数A = 間口数_列当たり × 2
  5. 必要段数の計算:
    • 各ケースの必要段数 = 必要間口 / 間口数A
    • 必要段数合計を算出
    • 必要段数合計 > 指定段数の場合、警告を表示してExit Sub
  6. ケース高順ソート:
    • ケース高で降順ソート(高いケースから配置)
    • ケース高順位(1~4)を設定
  7. 後続処理の呼び出し:
    • Dgv書式(要求ケース数Dgv)
    • 格納明細()
    • Dgv集計()
    • レイアウト_計算()
特記事項:
ケース高でソートすることで、高いケースから下段に配置する最適配置を実現します。 切り上げ計算(+0.9999)により、1個でも不足しないように必要間口数・段数を確保します。

3.4. 格納明細

機能説明

各段にどのケースがどれだけ格納されるかを詳細に計算し、 格納詳細DataGridViewに表示します。高さ順に段を埋めていき、 残間口を次のケースで埋める複雑なロジックを実装しています。

引数

なし

戻り値

型: なし (Sub)
説明: 格納詳細DataGridViewに結果を表示

処理フロー

  1. DataGridViewの初期化:
    • 列をクリア後、基本列(ケース高順位、ケースNo、ケース幅、ケース長、ケース高、必要間口)を追加
    • 段数分の列(01段、02段、...)を動的に追加
    • 4行を追加(ケースNo1~4用)
  2. ケース高順位1位(最も高いケース)の配置:
    • 必要間口数を取得
    • 計算段数 = Int(必要間口 / 間口数A + 0.999)
    • 残間口 = (計算段数 × 間口数A) - 必要間口
    • start段~end段まで、各段に間口数Aを配置
    • 最終段には (間口数A - 残間口) を配置
    • 残間口を次のケース用に保存
  3. ケース高順位2位の配置:
    • 前のケースの残間口を考慮
    • 必要間口 = 要求必要間口 - 残間口
    • 同様に段配置を計算
    • 新たな残間口を算出
  4. ケース高順位3位の配置:
    • 同様のロジックで配置
  5. ケース高順位4位の配置:
    • 残りの全ての間口に配置
    • 未使用間口があれば表示
特記事項:
この関数は段ごとの格納配置を可視化する非常に重要な機能です。 残間口を次のケースで埋める「隙間埋め」ロジックにより、 倉庫スペースを無駄なく活用できます。

3.5. レイアウト_計算

機能説明

倉庫全体の寸法(幅・長さ・高さ)と必要面積を計算します。 また、棚高DataGridViewに各段の高さ情報を出力します。

引数

なし(フォーム上のコントロールから値を取得)

戻り値

型: なし (Sub)
説明: 計算結果はテキストボックスとDataGridViewに表示

処理フロー

  1. 必要幅の計算:
    • 棚走行幅 = 間口幅 + クレーン通路幅(走行路用)
    • 必要幅 = 棚走行幅 × 列数 + 隣接C × 2 + 列間C × (列数 - 1)
  2. 必要長の計算:
    • 連ピッチ = 間口長 + 支柱幅 + 棚C
    • 棚全長 = 連ピッチ × 連数 + 支柱幅
    • 必要長 = 棚全長 + 入出庫CV長 + 作業エリア長 + 保護柱 + 点検通路
  3. 必要高の計算:
    • 棚高DataGridViewの各段の高さを格納詳細から取得
    • 段ごとに (ケース高 + 差込高C + ビーム厚) を計算
    • 全段の合計 + 最下段オフセット + 天井Cで必要高を算出
  4. 必要面積の計算:
    • 必要面積 = (必要幅 × 必要長) / 1000² [m²]
特記事項:
ケース高が段ごとに異なるため、各段の高さを個別に計算して積算します。 これにより、混載保管に最適化された高さ設計が可能です。

3.6. レイアウト再計算Bt_Click

機能説明

「レイアウト再計算」ボタンがクリックされた時に実行されるイベントハンドラです。 ケース数比率の合計が100%であることをチェックし、再計算を実行します。

引数

引数名 説明
sender Object イベント発生元のボタン
e EventArgs イベント引数

戻り値

型: なし (Sub)
説明: イベントハンドラのため戻り値なし

処理フロー

  1. ケース数比率の合計を計算(4行分をループで加算)
  2. 合計が100でない場合、エラーメッセージを表示してExit Sub
  3. 合計が100の場合、棚数計算()を実行
  4. 必要寸法Tpの背景色を切り替え(LightYellow ⇔ PowderBlue)
特記事項:
ケース数比率の合計が100%でないとエラーになります。 これはケース数の配分が正しく行われることを保証するための重要なバリデーションです。

3.7. Dgv集計 / Dgv書式

機能説明

DataGridViewの集計行追加や書式設定を行うユーティリティメソッドです。

主な機能

  • Dgv集計: 各DataGridViewに合計行を追加
  • Dgv書式: セルの書式設定(文字サイズ、配置、色など)
特記事項:
DataGridViewを見やすく、使いやすくするためのユーティリティ関数群です。

4. 依存関係

注意:
コード内で参照されている変数(会社、著作権、試用版有効期限、計算開始_Chk2、MyJpgPathなど)は、 別のモジュールまたは共通設定ファイルで定義されていると推測されます。

5. 改訂履歴

改訂日 バージョン 改訂内容 担当者
2025年 1.0 詳細説明ドキュメント初回作成 -

6. 計算ロジックサマリー

ケース数配分計算

必要間口数計算

必要段数計算

段配置アルゴリズム

ケース高順配置ルール

  1. 要求ケース数DataGridViewをケース高で降順ソート(高い順)
  2. 最も高いケース(順位1)から順に下段から配置
  3. 各ケースの配置:
    • 計算段数 = Int(必要間口 / 間口数A + 0.999)
    • 最終段以外: 各段に間口数A個を配置
    • 最終段: 間口数A - 残間口 を配置
    • 残間口を次順位のケースに引き継ぎ
  4. 次順位のケースは、前の残間口を活用して配置開始
  5. 最下位ケースで全間口を埋める

このアルゴリズムの利点:
高いケースを下段に配置することで構造的に安定し、 低いケースを上段に配置することで天井高を抑えられます。 また、残間口の引き継ぎにより、スペースを無駄なく活用できます。

倉庫寸法計算

単位に関する注意:
入力値は一般的にmm単位で扱われており、面積計算時に1000²で除算してm²に変換しています。

7. 使用方法と設計ガイド

入力項目

  1. 倉庫基本構成:
    • 列数: 倉庫の列数(通常1~4列)
    • 間口数_列当たり: 1列あたりの間口数(通常3~5間口)
    • 段数: 倉庫の段数(通常10~20段)
    • 前提ケース数: 保管したい総ケース数
  2. ケース仕様(DataGridView):
    • ケース高: 各ケースの高さ(mm)
    • ケース数比率: 各ケースの比率(%、合計100%)
  3. 寸法パラメータ:
    • 間口幅、間口長、支柱幅、棚C、クレーン通路幅
    • 列間C、隣接C、入出庫CV長、作業エリア、保護柱、点検通路
    • 差込高C、ビーム厚、最下段オフセット、天井C

出力結果の見方

設計のポイント

  1. ケース数比率の設定:
    • 実際の在庫構成に基づいて比率を設定
    • 比率の合計は必ず100%にする
  2. 段数の決定:
    • 必要段数合計が指定段数を超えないように調整
    • 超過する場合は列数または段数を増やす
  3. ケース高の設定:
    • 実際のケースサイズを正確に入力
    • 高いケースから優先的に下段に配置される
  4. 段配置の確認:
    • 格納詳細DataGridViewで各段の配置を確認
    • 未使用間口がある場合は無駄があることを示す
実務上の注意:
本ツールで算出される寸法は倉庫本体のみであり、実際の建屋設計では 事務所、設備スペース、将来拡張余地、消防設備などを別途考慮する必要があります。
また、混載保管の場合、ケースサイズが頻繁に変わる運用には適さない場合があります。 ケース仕様が固定的な運用(定番商品の保管など)に最適です。

8. ケース倉庫とバケット倉庫の違い

項目 ケース倉庫 バケット倉庫
保管対象 段ボールケース プラスチックバケット
サイズ範囲 150~600mm(幅可変) 300~600mm(定型)
混載対応 4種類混在可能 標準4型式+自由寸法
配置アルゴリズム ケース高順に段配置最適化 段高一定で配置
間口入数 サイズ別(6, 5, 4, 3個) バケット型式による
用途 EC物流、配送センター 部品倉庫、薬品庫

ケース倉庫の特徴