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

Uploaded Python 3

File details

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

File metadata

  • Download URL: 3d_bin_packer-0.0.3.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.3.tar.gz
Algorithm Hash digest
SHA256 43a7510d6569f1b7838bde3d1fe1a374cbc5d46455c0e3b20704c0677fa1d19e
MD5 2366ec634bf755ca19471647a5be04c1
BLAKE2b-256 d1fee7b25c5edfc30db61b66a57408000a00bdc9662e1808b7393309eff42a1b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: 3d_bin_packer-0.0.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 918b425f76d18b1a9661731b15e0151c26eaaae19918721bb39e3b35e5cae712
MD5 2706ca52f62491cbe1c42f743ea0be45
BLAKE2b-256 bb9475b409d4c4451dbd818f9470abe8e653f58800f7b67e87c4c05a036046a2

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