Skip to content

qrak/PlanZaladunkow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Basic Trailer Loading Optimizer (DEMO Project for the company i work for) see. ENHANCEMENT_PLAN.md for future work.

Application for optimizing pallet placement in trailers, leveraging advanced algorithms and 3D visualization to maximize space utilization.

📋 Table of Contents

Project Overview

The Trailer Loading Optimizer is a powerful tool designed for logistics managers, warehouse operators, and transport companies to efficiently plan the loading of pallets onto trailers. By providing trailer dimensions and pallet counts, the application calculates the optimal arrangement of pallets to maximize space utilization, reduce costs, and minimize manual planning errors. The intuitive 3D visualization provides a clear and interactive representation of the loading plan, ensuring accuracy and ease of use.

Key Features

  • Advanced Optimization Algorithms: Utilizes sophisticated algorithms in core/pallet_strategies.py and core/ladowanie.py to determine the most efficient placement of pallets.
  • Dynamic 3D Visualization: Interactive 3D models of the loaded trailer are rendered using PyQt6 and Plotly, providing a clear and detailed view of the loading plan.
  • Support for Multiple Pallet Types: Handles both standard Euro pallets and custom-sized pallets, with types defined in core/pallet_types.py.
  • Flexible Input Parameters: The GUI allows for easy input of trailer dimensions, pallet sizes, and the number of pallets to be loaded.
  • Incremental Visualization: The 3D view updates in real-time during the optimization process, as seen in gui/right_panel.py.
  • Configurable Settings: Application settings can be customized through the config/config.json file.
  • Internationalization: Supports multiple languages, with translations managed in language/translations.json.
  • Reporting & Export: Loading plans can be saved as PNG images or interactive HTML files for easy sharing and documentation.

Getting Started

Prerequisites

  • Python 3.x
  • The application is cross-platform and has been tested on Windows, macOS, and Linux.
  • Project dependencies:
    • numpy
    • PyQt6
    • plotly
    • PyQt6-WebEngine
    • kaleido

Installation

  1. Clone the repository:
    git clone https://github.com/qrak/trailer-loading-optimizer.git
    cd trailer-loading-optimizer
  2. Create and activate a virtual environment:
    python -m venv venv
    # On Windows
    .\venv\Scripts\activate
    # On macOS/Linux
    source venv/bin/activate
  3. Install the required packages:
    pip install -r requirements.txt

Running the Application

With the virtual environment activated, run the following command to start the application:

python start.py

Usage Guide

Inputting Dimensions and Pallet Counts

  1. Trailer Dimensions: Enter the length, width, and height of your trailer in the "Trailer Dimensions" section.
  2. Pallet Dimensions: Define the dimensions for both Euro and custom pallets.
  3. Pallet Counts: Specify the number of Euro and custom pallets you need to load.

3D Visualization and Interaction

  • Once the optimization is complete, a 3D model of the loading plan will be displayed.
  • Rotate: Click and drag the left mouse button.
  • Pan: Click and drag the right mouse button.
  • Zoom: Use the mouse wheel.
  • Use the toolbar buttons to reset the view or switch to top-down or side perspectives.

Saving Plans

  • Click the "Save Plan to File" button to save the current loading plan.
  • You can choose to save the plan as a PNG image or an interactive HTML file.
  • Saved plans are stored in the plany/ directory by default.

Project Structure

.
├── core/               # Core optimization and visualization logic
├── gui/                # PyQt6 GUI components
├── config/             # Configuration files
├── language/           # Internationalization and translation files
├── img/                # Icons and images
├── plany/              # Default directory for saved plans
├── requirements.txt    # Project dependencies
├── start.py            # Main application entry point
└── LICENSE             # Project license

Configuration

The application's settings are stored in config/config.json. This file includes default dimensions for the trailer and pallets, and is automatically updated when you make changes in the GUI.

Internationalization

The application supports multiple languages, with English and Polish currently available. All UI text is stored in language/translations.json and loaded by language/translations.py.

Troubleshooting & FAQ

  • GUI fails to start: Ensure you have installed all dependencies from requirements.txt in an active virtual environment.
  • "No plot to save!" error: You must run the optimization at least once before you can save a plan.
  • Slow performance: For a large number of pallets, the optimization process can be resource-intensive.

Contributing

Contributions are welcome! Please feel free to fork the repository, make your changes, and submit a pull request. For major changes, please open an issue first to discuss what you would like to change.

License

This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.

Contact

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages