Package: opcut
https://opcut.kopic.xyz/opcutiscutting stock problemoptimizer utilizing multiple
panels and guillotine cuts (end-to-end cuts). This project includes:multiple back-end optimizer implementationscommand line front-endREST service API (OpenAPI definition)single-page web application front-endGit repository is available athttps://github.com/bozokopic/opcut.git.Public instancehttps://opcut.kopic.xyz/is constrained with limited
resources and should be used only for functionality evaluation purposes.
In case of complex and repetitive calculations, please consider running
self hosted instance.Runtime requirementspython >=3.10Noteon Ubuntu, if pycairo is not available, additionalapt install gccpkg-configlibcairo2-devis requiredInstallArchlinuxopcutis available asAUR package:$ yay -S opcutWindowsWindows distribution, with embedded python, is available atGitHub releases.This archive containsopcut-server.cmd, which can be used for running
server application, andopcut.cmdas genericopcutaction launcher.Python wheelOpcut is available asPyPI project:$ pip install opcutDockeropcutserver is available asDocker image:$ docker run -p 8080:8080 bozokopic/opcutUsageopcutcommand is interface for execution of three distinct actions:opcut calculate …Calculation of cutting stock problem. Input parameters and result is
formatted as JSON data (JSON, YAML or TOML).opcut generate …Generate output representation (SVG, PDF, …) based on calculation
result.opcut server …Run HTTP server providing single-page web application interface and
OpenAPI interface (default listening address ishttp://0.0.0.0:8080).For additional command line arguments and documentation, run:$ man 1 opcutJSON schema describing data structures is available atschemas/opcut.yaml.OpenAPI definition is available atschemas/openapi.yaml.opcut calculateExample:$ opcut calculate --input-format yaml --output result.json << EOF
cut_width: 1
panels:
    panel1:
        width: 100
        height: 100
items:
    item1:
        width: 10
        height: 10
        can_rotate: false
EOFopcut generateExample:$ opcut generate --output output.pdf result.jsonopcut serverExample:$ opcut serverDevelopment requirementsC99 compiler (gcc, clang, …)nodejs >=7yarnBuildBuild tool used foropcutis pydoit (http://pydoit.org/). It can be
installed together with other python dependencies by running:$ pip install -r requirements.pip.txtFor listing available doit tasks, use:$ doit listDefault task:$ doitcreates wheel package insidebuilddirectory.TODOunit testschangelogmailing listroadmapContributingThis project is currently in “proof of concept” state and is not yet
recommended for production usage.Any kind of help in development of this project is appreciated.Issues and feature requests can be submitted toissue tracker.Repository changes can be sent as patches over email (Github pull request are
also acceptable until dedicated mailing list is set up). Changes containing
new functionality or other significant changes should be discussed prior
to sending patch.For any questions regarding this project, contact me atbozo@kopic.xyz.Licenseopcut - cutting stock problem optimizerCopyright (C) 2017-2024 Bozo KopicThis program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.