From 2c721a98f1ef09d4afdc37dad9dbccbeb28d0d0e Mon Sep 17 00:00:00 2001 From: Florian Festi Date: Sun, 26 Feb 2017 13:47:06 +0100 Subject: [PATCH] Add install.rst, remove TODO.rst Todos moved to GH as issues Some description on installation and the Inkscape plugins --- README.rst | 25 +++++++----- documentation/src/TODO.rst | 32 ---------------- documentation/src/index.rst | 2 +- documentation/src/install.rst | 72 +++++++++++++++++++++++++++++++++++ 4 files changed, 89 insertions(+), 42 deletions(-) delete mode 100644 documentation/src/TODO.rst create mode 100644 documentation/src/install.rst diff --git a/README.rst b/README.rst index 5f2ad28..171fe5d 100644 --- a/README.rst +++ b/README.rst @@ -1,26 +1,32 @@ -What is this? -============= +Boxes.py +======== -This is a small python library for generating drawings to be used with a laser -cutter. It comes with a set of ready-to-use, fully parametrized generators: +Create boxes and more with a laser cutter! + +Boxes.py is python library for generating drawings to be used with a laser +cutter. It comes with a growing set of ready-to-use, fully parametrized +generators: * Boxes in various shapes and with various lids * Boxes using flex cuts with rounded corners and living hinges * Type trays with and without outer walls and floors +* Shelves * Book covers with flex spine * Magazine files +* Timing belt pulleys and gears +* and more And a few one trick ponies: +* A desktop arcade cabinet * A drill stand * A castle tower -* A housing for a special kind of lamp * A cutlery stand -Have a look into the examples/ directory to see how the results look like. +Have a look into the examples/ directory or the online generator to see how the results look like. Features -======== +-------- It generates SVG images that can be viewed directly in a web brower but also postscript and - with pstoedit as external helper - other vector formats @@ -46,11 +52,12 @@ Flex cuts allows bending and stretching the material in one direction. This is used for rounded edges and living hinges. Usage -===== +----- There are multiple ways to use the available generators: * Try them out at +* Use them as Inkscape extensions under *Extensions->Boxes.py* * Execute the scripts/boxes tool and pass the name of the generator together with the measurements on the command line. * Run *scripts/boxesserver* which provides an web interface on port 8000. * Add a *WSGIScriptAlias* to *scripts/boxesserver* in your httpd config. @@ -58,7 +65,7 @@ There are multiple ways to use the available generators: You can also create your own generators using *boxes/generators/_template.py* or any of the generators in *boxes/generators* as a starting point. Documentation -============= +------------- The module comes with Sphinx based documentation. The rendered version can be viewed at . diff --git a/documentation/src/TODO.rst b/documentation/src/TODO.rst deleted file mode 100644 index caa95c9..0000000 --- a/documentation/src/TODO.rst +++ /dev/null @@ -1,32 +0,0 @@ -===== -To Do -===== - -Infrastructure -.............. - -* Make outer edge continuous even if other parts are drawn intermediately. -* Check burn compensation for building blocks -* Fix hexHoles\* (leftoover, grow to space, ...) -* Add other ventilation patterns than hex holes -* Make settings nicer - - * Offer a collection of different settings - -* Use stretch setting in flexboxes -* Move settings out of Boxes class (see .open()) - - * .bedBoltSettings - * .hexHolesSettings - -* Latches and locks - -Generators -.......... - -* Fix traylayout - - * Move bottom edges of walls without floor underneeth to E - -* Make bolts configurable (e.g. in box2.py) -* Treasure Chest with rounded lid and living hinge diff --git a/documentation/src/index.rst b/documentation/src/index.rst index bb6f559..0155a75 100644 --- a/documentation/src/index.rst +++ b/documentation/src/index.rst @@ -12,9 +12,9 @@ Contents: :maxdepth: 2 README + install Boxes edges - TODO Indices and tables ================== diff --git a/documentation/src/install.rst b/documentation/src/install.rst new file mode 100644 index 0000000..845a8be --- /dev/null +++ b/documentation/src/install.rst @@ -0,0 +1,72 @@ +Installation +============ + +Boxes.py is a pure Python project that does support the regular setuptools +method of shipping with *setup.py*. *setup.py --help-commands* and +*setup.py CMD --help* provide the necessary documentation for building, +installing or building binary formats. + +Requirements +------------ + +Cairo +..... +Boxes.py is based on the cairo graphics library. It supoprts both the PyPi +version *cairocffi* and python-cairo that might be shipped with your +distribution. + +ps2edit +....... + +While not a hard requirement Boxes.py uses ps2edit to offer formats that are +not supported by Cairo: DXF, gcode, PLT. Currently the location Boxes.py looks +for *ps2edit* is hard coded to */usr/bin/pstoedit* in the +*boxes.formats.Formats* class. + +Python +...... + +Boxes.py - while defaulting to Python3 - can also run on Python +2.7. If you encounter any compatibility issues please report them at the +[https://github.com/florianfesti/boxes Git Hub project] + +Running from working dir +------------------------ + +Due to lazy developer(s) Boxes.py can also run from the git check +out. The scripts in *scripts/* are all suppossed to just work right +after *git clone*. The Inkscape needs a bit manual work to get +running. See below. + +Inkscape +-------- + +Boxes.py can be used as a set of Inkscape plugins. The package does +install the necessary .inx files to */usr/share/inkscape/extensions* +on unix operating systems. The .inx files assume that the *boxes* +executable is available in the path (which it is when installing the +binary package) + +On non unix operating systems or when running Boxes.py from git +checkout the .inx files need to be copied by hand. *setup.py build* +creares them in the *inkex/* directory. They then have to be copied in +either the global or the per user extension directory of +Inkscape. These are */usr/share/inkscape/extensions/* and +*~/.config/inkscape/extensions/* on Unix. On other Operating systems +you can look up *Edit -> Preferences... -> System* in the Inkscape +menu to look up *User extensions* and *Inkscape extensions*. It may be +more convenient to generate the .inx files right in place by executing +*scripts/boxes2inkscape* with the taget path as only parameter. + +After placing the .inx files you need to make the *boxes* script +available in the path. One way is to create a symlink from a location +that is in the path or installing the package on the system. + +Boxes.py on Windows +------------------- + +While there is no known reason why Boxes.py should not run on Windows +there is no upstream experience with doing so. Getting the Inkscape +plugins to run will likely need manual installation (see above). If +you run into trouble or have better installation instructions please +open a ticket on Git Hub.