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.5.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.5-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: 3d_bin_packer-0.0.5.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.5.tar.gz
Algorithm Hash digest
SHA256 3a97a4a038514054a89364fd5ab0057f82531f5ec2e5361bb6dc7966606f1c8a
MD5 c06b2ce65c95861c1a05de12db5aaaae
BLAKE2b-256 f3d52cfc99f24da7bf58133a38d1c4426fd6b90a23700600563b2b2a2ac85661

See more details on using hashes here.

File details

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

File metadata

  • Download URL: 3d_bin_packer-0.0.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 232c135d41b2c43cd7d6bcf3582b22e5065bf1fa570461c1ae88037d11ddf20d
MD5 8d556aeee9d7cd4574c8a265915daa3b
BLAKE2b-256 168f884dbdeb669fe20ae11c9e7a3e142b839bb57e0c084177a4ed68ed6509f2

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