diff options
| author | Lex Neva <github.com@lexneva.name> | 2018-01-03 11:41:03 -0500 |
|---|---|---|
| committer | Lex Neva <github.com@lexneva.name> | 2018-01-03 11:41:03 -0500 |
| commit | d4c84a0fdb02b2deb8ec49cedfed4a641ae19eb4 (patch) | |
| tree | e40c74829d4aff90c4ba75406fa5597d614d28ac /index.html | |
| parent | 83bd9f4b70431694ba4c5f00b3d06ae9b425d4f6 (diff) | |
remove outdated index.html
Diffstat (limited to 'index.html')
| -rw-r--r-- | index.html | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/index.html b/index.html deleted file mode 100644 index 67dbe136..00000000 --- a/index.html +++ /dev/null @@ -1,159 +0,0 @@ -<title>Embroidery output extension for Inkscape</title> -<h1>Embroidery output extension for Inkscape</h1> - -NOTE: This file is part of Jon Howell's original inksape-embroidery project. Much of what is below is outdated, but it is included here for historical purposes. - -Inkscape is a natural tool for designing embroidery patterns; -the only challenge is converting the Inkscape design to a stitch file. -Here's a rough cut as such a tool that got me through my first project; -it may work for you, or maybe you can fix a bug or two and make it -more robust for your application. - -<center> -<br><img src="images/draft1.jpg"> -<br>My very first outputs. Scale is wrong, stitch spacing is wrong. -<br><img src="images/draft2.jpg"> -<br>A better version. Mostly correct, but still shows poor spacing. -Jump stitches all over the place because -the first TSP implementation was very broken. -<br><img src="images/shirt.jpg"> -<br>And now it's working well enough to embroider this shirt! -<p> -The most difficult part was carefully lining up the sequential panels -to make the design appear continuous. One tip: baste the working piece down -to a big piece of stabilizer, so that they stay together as the hoop is -repositioned. -</center> - -<h3>Installation.</h3> - -<br><a href="embroider.tgz">Download the distribution from here.</a> -<br>Install <a href="http://trac.gispython.org/lab/wiki/Shapely">shapely</a>, Python bindings to the GEOS library. -<pre>apt-get install python-shapely</pre> -<br>Place or link embroider.{inx,py} into ${HOME}/.config/inkscape/extensions. - -<h3>Usage.</h3> - -Create a drawing in Inkscape made of filled regions. -Select the regions you want to export as a stitch file. -Ungroup repeatedly until there are no groups left, -and convert objects to paths. -(Embroider doesn't know how to handle text or rectangle objects; -they must be converted down to paths before it can work with them. -I don't know how to call "back into" Inkscape to do this automatically.) -Select the Embroider filter. -<p> -If it works (and it very well might!), you'll get a new grouped object -showing the proposed stitching path. It may be easy to miss, since the -new strokes appear in the same color as the underlying fill. (If you -forgot the "ungroup" step, it may also appear at a random place on -your canvas; see BUGS below.) -<p> -As a side effect, Embroider also creates a file in Inkscape's current -directory called embroider-output.exp. -If you like the stitch pattern you see, then open that output file -in a converter program and save it to the appropriate format for -your machine. -(I use Wilcom's TrueSizer, available as free-as-in-beerware, -inside WINE to convert my output to Brother .PES format.) - - - -<h3>Theory of operation.</h3> - -For each input path, -if the path is closed & filled, -we fill it with rows of stitches. -That's done by finding the path's bounding box, -deciding whether to use horizontal or vertical rows based on the long -axis of the region, -drawing a bunch of equally-spaced line segments across the bounding box, -and finding the intersection of the row lines with the path region. -(We import shapely to do the intersection computation.) -<p> -Each path generates a "patch" of stitching. -We sort all the patches by color, to minimize thread changes. -Then we use a Traveling Salesman Problem implementation -(a cheesy, greedy one, plus a little hill-climbing at the end) -to sort the patches to minimize the length of the jump stitches -(the unintended stitches between patches). - -<h3>updates</h3> - -2012.10.19 Implemented stroke stitches. Strokes <= 0.5pt are rendered -as straight lines, following the Inkscape path, obeying the max_stitch_len -parameter. -Strokes wider than 0.5pt are drawn with a zig-zag stitch. It's a bit -ugly around corners and sharp curves, leaving gaps at the outside edge, -but come on, I wrote it in like 45 minutes. [An ideal algorithm would -compute the boundary of the stroke correctly, and then come up with a nice -way to fill it with the zig-zag. This one isn't ideal.] - -<p>You can use strokes to do applique embroidery. Draw a (not-too-complicated) -closed curve. Generate it both as a 0.5pt line and again with a wider stroke -width, like 3mm. Stack two fabrics in the hoop, and embroider the thin path. -Remove the hoop from the machine (but leave the fabrics in the hoop). -Carefully trim away the top fabric at the stitched boundary. Then replace -the hoop and embroider the wide path. The wider path will cover the first -stitch line and secure the applique'd piece. - -<p> -<b>Tips on strokes</b>: use Extensions -> Modify Path -> Flatten Beziers -to change curves down to linear approximations. (The Embroider -extension's supposed to do this, but it's not so good at it.) - -<p> -<a href="embroider-howto/"> -<img src="embroider-howto/traced-exploded.png" width=200><br> -More tips on using Inkscape to get from a raster example to an embroidery file. -</a> - - -<h3>TODOs.</h3> -<p> -TODO: when a single patch is split into multiple sections (because -of concavities), two problems occur: -<p> -First, the sections are treated -as one big patch with an implicit jump. It would be better to make -them separate patches so that TSP can do a better job planning to -minimize jumps. -<p> -Second, the algorithm "assumes" that all the stitches -in the left "column" are part of the same patch, so it will also incur -horizontal implied jump stitches because it doesn't realize that the -rows are from disjoint parts of the underlying region. A smarter algorithm -would break each time the number-of-segments changes, and start a new -patch each time, again relying on TSP to put them back together in a -sane order. -<p> -TODO: when a row is longer than the max stitch length, use a global-phase -("tajima") stitch, rather than phase relative to where the row starts, -to avoid troughs in the middle of the filled region. -<p> -TODO: remove small stitches. TrueSizer uses a 0.5mm threshhold. -<p> -TODO: implement melco jump-stitch, so jumps don't put holes in the fabric. -<p> -done: sort compound paths biggest-area first, to at least get holes right. -<p> -BUGS: shapely thinks all compound paths are holes; it doesn't understand -the even-odd rule. -<p> -BUGS: Can't handle the "transform=" property that inkscape loves to -glue onto <g>roups. To work around this, ungroup all the way down to -separate <path>s, # which applies all the transforms down to the path -point level, then regroup as desired. -<p> -TODO: Call into Inkscape to do this behind the scenes. -<p> -TODO: Call into Inkscape to convert objects to paths automatically. - -<h3>LICENSE</h3> -This code is copyright 2010 by Jon Howell, -licensed under <a href="http://www.gnu.org/licenses/quick-guide-gplv3.html">GPLv3</a>. - -<h3>AUTHOR</h3> -Written by Jon Howell, <a href="mailto:jonh@jonh.net">jonh@jonh.net</a>. -If you email me, expect an initial bounce with instructions to pass the -spam filter. |
