T3_2_PLFixedRack.vb Detailed Explanation

1. Overview

This file is a Windows Forms application designed to perform design calculations for a Pallet Type Fixed Rack (PL Fixed Rack Type)[cite: 9]. Its primary responsibility is to automatically calculate the necessary overall dimensions (width, length, height), floor area, virtual floor area, etc., based on input parameters such as pallet fixed rack dimensions, number of tiers, and columns, thereby producing the fundamental data required for layout design[cite: 9].

The fixed rack method realizes space-efficient warehouse design by utilizing a double-sided rack structure (a combination of single-sided and double-sided racks)[cite: 9]. It is implemented as a trial version with an expiration date check feature, verifying the expiration date upon form load[cite: 9].

2. Main Classes / Modules

2.1. PLFixedRackF Class

Purpose

The main form class that performs design calculations for pallet type fixed racks[cite: 9]. It accepts various input parameters and automatically calculates necessary dimensions, areas, tier configurations, etc., for a warehouse using a combination of single and double racks[cite: 9].

Key Properties

This class inherits from System.Windows.Forms.Form and holds numerous UI controls such as TextBoxes (Tb), Labels (L), Buttons (Bt), and GroupBoxes (Gb)[cite: 9]. The main variables are as follows:

  • PL Dimensions: PL Width, PL Depth, PL Total Height, PL Thickness, Load Height[cite: 9]
  • Warehouse Configuration: Number of Sets, Columns, Bays, Tiers, PL Storage Capacity[cite: 9]
  • Rack Configuration: Single Rack, Double Rack, Number of Single Racks, Number of Double Racks, Rack Depth[cite: 9]
  • Space Clearances: Adjacent C, Auxiliary Aisle, Handling Aisle, Ceiling C, Rack C, Pillar Width, Rear C[cite: 9]
  • Tier Configuration: Top Tier Height, Intermediate Tier Height, Bottom Tier Height, Number of Intermediate Tiers[cite: 9]
  • Calculation Results: Rack Total Length, Rack Total Height, Required Width, Required Length, Required Height, Required Area[cite: 9]
  • Area Calculations: Required Area, Total Virtual Floor Area[cite: 9]

Key Methods / Functions

  • PLFixedRackCalc_Load - Form initialization and startup of main processes[cite: 9]
  • ReadTb - Reads data from TextBoxes[cite: 9]
  • CalculationBreakdown - Main calculation logic[cite: 9]
  • VirtualFloorCalc - Calculation of virtual floor area[cite: 9]
  • CalcStartBt_Click - Processing when the calculation button is clicked[cite: 9]
  • CoverPb_Click / StartBt_Click - Tab switching processing[cite: 9]
  • CloseBt_Click - Form close processing[cite: 9]

3. Details of Main Functions / Subroutines

3.1. PLFixedRackCalc_Load

Function Description

Event handler executed when the form loads[cite: 9]. It sets the copyright and expiration date displays, performs the expiration check, loads initial data, and executes initial calculations (Calculation Breakdown and Virtual Floor Calculation)[cite: 9].

Arguments

Argument Name Type Description
sender Object The source object of the event[cite: 9]
e EventArgs Event arguments[cite: 9]

Return Value

Type: None (Sub)
Description: No return value as it is an event handler[cite: 9]

Processing Flow

  1. Set text for the copyright label and expiration date label[cite: 9].
  2. Get the current date and compare it with the trial version's expiration date[cite: 9].
  3. If expired, display a message box and close the form[cite: 9].
  4. If within the valid period, call ReadTb() to load data[cite: 9].
  5. Call CalculationBreakdown() to execute main calculations[cite: 9].
  6. Call VirtualFloorCalc() to calculate the virtual floor area[cite: 9].
Special Notes:
An expiration date check is implemented as a trial version feature[cite: 9]. The application terminates immediately if expired[cite: 9].

3.2. ReadTb

Function Description

Reads the values entered in each TextBox and stores them in variables[cite: 9]. It also performs some preliminary calculations (such as calculating the Load Height and number of Columns)[cite: 9].

Arguments

None[cite: 9]

Return Value

Type: None (Sub)
Description: Only sets values to internal variables[cite: 9]

Processing Flow

  1. Read PL Width, PL Depth, PL Total Height, and PL Thickness from TextBoxes[cite: 9].
  2. Calculate Load Height = PL Total Height - PL Thickness, and display it in the TextBox[cite: 9].
  3. Read Sets, Bays, and Tiers[cite: 9].
  4. Calculate Columns = Sets × 2, and display it in the TextBox[cite: 9].
  5. Read Adjacent C, Auxiliary Aisle, Handling Aisle, Ceiling C, Rack C, Pillar Width, Beam Thickness, Lift C, and Rear C[cite: 9].
Special Notes:
This method acts as a preparation step before calculation, converting UI input values into internal variables[cite: 9]. The number of columns is automatically calculated, so the user only inputs the number of Sets[cite: 9].

3.3. CalculationBreakdown

Function Description

The main process that calculates various dimensions and areas of the pallet fixed rack warehouse[cite: 9]. It sequentially calculates storage capacity, dimensions of single/double racks, bay pitch, tier configuration, required spaces, floor area, etc[cite: 9].

Arguments

None (uses variables within the class)[cite: 9]

Return Value

Type: None (Sub)
Description: Calculation results are displayed in respective TextBoxes[cite: 9]

Processing Flow

  1. Storage Capacity Calculation:
    • Columns = Sets × 2[cite: 9]
    • PL Storage Capacity = Columns × Bays × 2 × Tiers[cite: 9]
  2. Required Width Calculation:
    • Rack Depth = PL Depth[cite: 9]
    • Single Rack = PL Depth + Adjacent C[cite: 9]
    • Double Rack = PL Depth + Rear C + PL Depth[cite: 9]
    • Number of Single Racks = 2 (Both ends)[cite: 9]
    • Number of Double Racks = (Columns - 2) / 2[cite: 9]
    • Required Width = Single Rack × Number of Single Racks + Double Rack × Number of Double Racks + Handling Aisle × Sets[cite: 9]
  3. Bay Pitch and Required Length Calculation:
    • Bay Pitch = PL Width × 2 + Rack C × 3 + Pillar Width[cite: 9]
    • Rack Total Length = Bay Pitch × Bays + Pillar Width[cite: 9]
    • Required Length = Rack Total Length + Adjacent C + Auxiliary Aisle[cite: 9]
  4. Rack Total Height and Required Height Calculation:
    • Top Tier Height = PL Total Height + Beam Thickness[cite: 9]
    • Intermediate Tier Height = PL Total Height + Lift C + Beam Thickness[cite: 9]
    • Number of Intermediate Tiers = Tiers - 2[cite: 9]
    • Bottom Tier Height = PL Total Height + Lift C[cite: 9]
    • Rack Total Height = Top Tier Height + (Intermediate Tier Height × Number of Intermediate Tiers) + Bottom Tier Height[cite: 9]
    • Required Height = Rack Total Height + Lift C[cite: 9]
  5. Layout Area Calculation:
    • Required Area = Int(Required Length × Required Width / 1000² + 0.5) [m²][cite: 9]
Special Notes:
The fixed rack method improves space efficiency by combining single-sided and double-sided racks[cite: 9]. Calculations assume a standard configuration with single racks at both ends (2 units) and double racks in the central area[cite: 9].

3.4. VirtualFloorCalc

Function Description

Calculates the virtual floor area according to building standards[cite: 9]. If the top tier beam's upper surface height is 5000mm or more, it must be included in the floor area as a virtual floor, so this area is calculated[cite: 9].

Arguments

None (uses variables within the class)[cite: 9]

Return Value

Type: None (Sub)
Description: Calculation results are displayed in the Virtual Floor Area Tb[cite: 9]

Processing Flow

  1. Calculate Top Tier Beam Upper Surface Height = Rack Total Height - PL Total Height[cite: 9]
  2. If Top Tier Beam Upper Surface Height is less than 5000mm:
    • Virtual Floor Area = 0, processing ends[cite: 9]
  3. If Top Tier Beam Upper Surface Height is 5000mm or more:
    • Total Virtual Floor Area = Int(Rack Total Length × (Rack Depth × 2) / 1000² + Rack Total Length × (Double Rack × Number of Double Racks) / 1000² + 0.5) [m²][cite: 9]
    • Sum of the aisle portions of single racks (2 units) and the entire area of double racks[cite: 9]
Special Notes:
Under building standards, areas 5m or higher are treated as virtual floors[cite: 9]. This calculation confirms compliance with building regulations such as fire compartments and evacuation rules[cite: 9].

3.5. CalcStartBt_Click

Function Description

Event handler executed when the "Start Calculation" button is clicked[cite: 9]. It reloads the data, executes the recalculation, and toggles the background color of the result display area to provide visual feedback[cite: 9].

Arguments

Argument Name Type Description
sender Object The button that triggered the event[cite: 9]
e EventArgs Event arguments[cite: 9]

Return Value

Type: None (Sub)
Description: No return value as it is an event handler[cite: 9]

Processing Flow

  1. Reload data using ReadTb()[cite: 9].
  2. Execute main calculations using CalculationBreakdown()[cite: 9].
  3. Calculate virtual floor area using VirtualFloorCalc()[cite: 9].
  4. Toggle the background color of CalculationBreakdownGb and CalcResultGb based on the CalcStart_Chk flag (LightYellow ⇔ PowderBlue)[cite: 9].
Special Notes:
Toggling background colors is a UI enhancement designed to let users visually confirm that results have been updated every time the calculation button is pressed[cite: 9].

3.6. CoverPb_Click / StartBt_Click

Function Description

Switches the tab control to the "PL Fixed Rack Calc Tp" tab when the cover image (Pb) or the start button is clicked[cite: 9].

Arguments

Argument Name Type Description
sender Object The control that triggered the event[cite: 9]
e EventArgs Event arguments[cite: 9]

Return Value

Type: None (Sub)
Description: No return value as it is an event handler[cite: 9]

Processing Flow

  1. Set the SelectedTab property of TabControl1 to PLFixedRackCalcTp[cite: 9].
Special Notes:
Provides application navigation, transitioning from the cover screen to the calculation screen[cite: 9].

3.7. CloseBt_Click

Function Description

Closes the form when the "Close" button is clicked[cite: 9].

Arguments

Argument Name Type Description
sender Object The button that triggered the event[cite: 9]
e EventArgs Event arguments[cite: 9]

Return Value

Type: None (Sub)
Description: No return value as it is an event handler[cite: 9]

Processing Flow

  1. Close the form using Me.Close()[cite: 9].
Special Notes:
A simple form closing process[cite: 9].

4. Dependencies

  • System.Windows.Forms - For basic Windows Forms application functionality[cite: 9]
  • System.Drawing - For UI color settings (Color type)[cite: 9]
  • System - For basic types and DateTime processing[cite: 9]
  • Global Variable Module (Assumed) - To reference global variables such as copyright, company name, and trial expiration date[cite: 9]
Note:
Variables referenced within the code (Company, Copyright, TrialExpirationDate, CalcStart_Chk, etc.) are assumed to be defined in another module or a common configuration file[cite: 9].

5. Revision History

Revision Date Version Revision Details Author
2025 1.0 Initial creation of detailed explanation document[cite: 9] -

6. Calculation Formula Summary

Storage Capacity

  • Columns = Sets × 2[cite: 9]
  • PL Storage Capacity = Columns × Bays × 2 × Tiers[cite: 9]

Rack Configuration

  • Load Height = PL Total Height - PL Thickness[cite: 9]
  • Rack Depth = PL Depth[cite: 9]
  • Single Rack = PL Depth + Adjacent C[cite: 9]
  • Double Rack = PL Depth + Rear C + PL Depth[cite: 9]
  • Number of Single Racks = 2 (Fixed value for both ends)[cite: 9]
  • Number of Double Racks = (Columns - 2) / 2[cite: 9]

Required Dimensions

  • Required Width = Single Rack × Number of Single Racks + Double Rack × Number of Double Racks + Handling Aisle × Sets[cite: 9]
  • Bay Pitch = PL Width × 2 + Rack C × 3 + Pillar Width[cite: 9]
  • Rack Total Length = Bay Pitch × Bays + Pillar Width[cite: 9]
  • Required Length = Rack Total Length + Adjacent C + Auxiliary Aisle[cite: 9]

Tier Configuration and Height

  • Top Tier Height = PL Total Height + Beam Thickness[cite: 9]
  • Intermediate Tier Height = PL Total Height + Lift C + Beam Thickness[cite: 9]
  • Number of Intermediate Tiers = Tiers - 2[cite: 9]
  • Bottom Tier Height = PL Total Height + Lift C[cite: 9]
  • Rack Total Height = Top Tier Height + (Intermediate Tier Height × Number of Intermediate Tiers) + Bottom Tier Height[cite: 9]
  • Required Height = Rack Total Height + Lift C[cite: 9]

Area

  • Required Area = Int(Required Length × Required Width / 1000² + 0.5) [m²][cite: 9]
  • Top Tier Beam Upper Surface Height = Rack Total Height - PL Total Height[cite: 9]
  • Total Virtual Floor Area = Int(Rack Total Length × (Rack Depth × 2) / 1000² + Rack Total Length × (Double Rack × Number of Double Racks) / 1000² + 0.5) [m²]
    *However, if Top Tier Beam Upper Surface Height < 5000mm, it is 0[cite: 9]
Note on Units:
Input values are generally handled in millimeters (mm) and are converted to square meters (m²) by dividing by 1000² during area calculations[cite: 9].

7. Differences from PL_Ass Calculation

Structural Differences

  • PL_Ass Calc: Calculations assuming an Automated Storage and Retrieval System (Stacker Crane method)[cite: 9]
  • PL Fixed Rack: Calculations assuming fixed racks (a combination of single and double racks)[cite: 9]

Differences in Calculation Items

  • Features of PL Fixed Rack:
    • Combination of single racks (one-sided use) and double racks (two-sided use)[cite: 9]
    • Handling aisles are required for the number of sets[cite: 9]
    • Storage capacity calculation is "Columns × Bays × 2 × Tiers" (double-sided storage)[cite: 9]
    • Virtual floor area is calculated only if the height is 5m or more[cite: 9]
  • Features of PL_Ass Calc:
    • Considers crane aisle width for automated warehouses[cite: 9]
    • Automatic calculation of the number of firewalls[cite: 9]
    • Differentiation of tier heights based on the presence/absence of reinforcement materials[cite: 9]
Usage Guide:
PL Fixed Rack is suitable for relatively small warehouses assuming manual handling by forklifts, etc[cite: 9]. PL_Ass Calc is suitable for large-scale, automated warehouse systems[cite: 9].