1.0.2 • Published 10 months ago

textile-pack v1.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
10 months ago

textile-pack

Typescript implementation of the binary tree bin-packing algorithm optimized for problems where the width is fixed but the height is not, such cutting pieces out of textiles.

I made this to find cutting plans for carpet on a roll.

Pass it an array of items that each have a numeric height and width, and a width value for the containing piece and it will return a cutting plan and dimensions for the smallest containing piece possible.

Usage

npm install textile-pack
import { packItemsIntoWidth } from 'textile-pack';

const items = [
  {
    id: 'p1',
    height: 5,
    width: 2,
  },
  {
    id: 'p2',
    height: 3,
    width: 2,
  },
  {
    id: 'p3',
    height: 2,
    width: 2,
  },
];

const { packedItems, height, width } = packItemsIntoWidth(items, 4); // width of 4

// packedItems will be an array of objects like
  {
      item: {} // the original item,
      height: 5,
      width: 2,
      x: 0, // x position in the layout
      y: 0, // y position in the layout
    },

// height and width will be the dimensions of the space needed to fit all the items

/* The layout will be

x ________2________4
y|        |        |
 |   p1   |   p2   |
3|        |________|
 |        |   p3   |
5|________|________|


*/

Acknowledgements

Builds on top of this code by Enoch Riese, , this code by Bryan Burgers, and this code by Jake Gordon.

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago