aboutsummaryrefslogtreecommitdiff
path: root/playground/csp/main.py
blob: 8aed53104c4ce83d174760081cc79b65b9e4e131 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import sys
sys.path += ['../../src_py']

from opcut import common
from opcut import csp
from opcut import output


def main():
    panels = [
        common.Panel(id='p1', width=100, height=65)
    ]
    items = [
        common.Item(id='i1', width=10, height=10, can_rotate=True),
        common.Item(id='i2', width=10, height=9, can_rotate=True),
        common.Item(id='i3', width=20, height=8, can_rotate=True),
        common.Item(id='i4', width=10, height=20, can_rotate=True),
        common.Item(id='i5', width=30, height=19, can_rotate=True),
        common.Item(id='i6', width=10, height=18, can_rotate=False),
        common.Item(id='i7', width=10, height=17, can_rotate=True),
        common.Item(id='i8', width=20, height=16, can_rotate=True),
        common.Item(id='i9', width=10, height=15, can_rotate=True),
        common.Item(id='i10', width=30, height=14, can_rotate=True),
        common.Item(id='i11', width=10, height=20, can_rotate=True),
        common.Item(id='i12', width=19, height=30, can_rotate=False),
        common.Item(id='i13', width=10, height=18, can_rotate=True),
        common.Item(id='i14', width=10, height=17, can_rotate=True),
        common.Item(id='i15', width=20, height=16, can_rotate=True),
        common.Item(id='i16', width=10, height=15, can_rotate=True),
        common.Item(id='i17', width=30, height=14, can_rotate=True),
        common.Item(id='i18', width=10, height=20, can_rotate=True),
        common.Item(id='i19', width=30, height=19, can_rotate=True),
    ]
    cut_width = 0.4
    method = common.Method.FORWARD_GREEDY
    result = csp.calculate(panels, items, cut_width, method)
    pdf_bytes = output.generate_pdf(result)
    with open('output.pdf', 'wb') as f:
        f.write(pdf_bytes)


if __name__ == '__main__':
    sys.exit(main())