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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a97a4a038514054a89364fd5ab0057f82531f5ec2e5361bb6dc7966606f1c8a
|
|
| MD5 |
c06b2ce65c95861c1a05de12db5aaaae
|
|
| BLAKE2b-256 |
f3d52cfc99f24da7bf58133a38d1c4426fd6b90a23700600563b2b2a2ac85661
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
232c135d41b2c43cd7d6bcf3582b22e5065bf1fa570461c1ae88037d11ddf20d
|
|
| MD5 |
8d556aeee9d7cd4574c8a265915daa3b
|
|
| BLAKE2b-256 |
168f884dbdeb669fe20ae11c9e7a3e142b839bb57e0c084177a4ed68ed6509f2
|