Skip to main content

3D Bin Packing Library, Useful for Container Loading Problem (CLP)

Project description

Simple 3D Bin Packing

This library provides a simple implementation of the 3D Bin Packing problem, which is useful for solving the Container Loading Problem (CLP).

Installation

To install the library, you can use pip:

pip install 3d-bin-packer

Usage

Importing the Library

from bin_packer import Bin, Item, Packer

Creating an instance of the BinPacking class

bin1 = Bin('Le grande box', 100, 100, 300)
item1 = Item('Item 1', 150, 50, 50)

Packing Items into Bins To pack items into bins, you need to create a Packer instance, add bins and items to it, and then call the pack method:

packer = Packer()
packer.add_bin(bin1)
packer.add_item(item1)
packer.pack()

Checking the Results You can check the packed items and unfit items using the bins and unfit_items properties of the Packer class:

for bin_ in packer.bins:
    print(f"Bin: {bin_.name}")
    for item in bin_.items:
        print(f"  Packed item: {item.name}")

print("Unfit items:")
for item in packer.unfit_items:
    print(f"  Unfit item: {item.name}")

Example Here is a complete example that demonstrates how to use the library:

from bin_packer import Packer, Bin, Item

# Create bins
bin1 = Bin('Le grande box', 100, 100, 300)

# Create items
items = [Item('Item 1', 150, 50, 50) for i in range(1000)]

# Create packer and add bins and items
packer = Packer()
packer.add_bin(bin1)
for item in items:
    packer.add_item(item)

# Pack items into bins
packer.pack()

# Check the results
for bin_ in packer.bins:
    print(f"Bin: {bin_.name}")
    for item in bin_.items:
        print(f"  Packed item: {item.name}")
        print(f"    Position: {item.position}")


print("Unfit items:", len(packer.unfit_items))

Running Tests To run the tests, you can use the unittest module:

python -m unittest discover tests

License This project is licensed under the MIT License. See the LICENSE file for details.


Credits: This is just a Python Implementation of the code from npm package https://www.npmjs.com/package/@owens3364/3d-bin-packing.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

3d_bin_packer-0.0.4.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

3d_bin_packer-0.0.4-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file 3d_bin_packer-0.0.4.tar.gz.

File metadata

  • Download URL: 3d_bin_packer-0.0.4.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for 3d_bin_packer-0.0.4.tar.gz
Algorithm Hash digest
SHA256 84edb17f7c95cd187c0b574080f75c8d8c928e891f91bd9905ed8a56d7b1a7ff
MD5 635c9a5ce74751fce9943e2117b3abf3
BLAKE2b-256 8999c0f043623061c1cbb520f9f5900d0cb4a97cebb9e299e89f358fa4a994ea

See more details on using hashes here.

File details

Details for the file 3d_bin_packer-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: 3d_bin_packer-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.9.21

File hashes

Hashes for 3d_bin_packer-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1a2dbacc318bca2ff706e3cab8ef08df70a91c2cb03493103c3cfb549c71b13e
MD5 2090a0714ed174cc830d9f90738de675
BLAKE2b-256 99fb057bd5ab7dc0bb9deb6ebd2a726a7cc53703f13307db71e57a33d565f6be

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page