From b7db218d929652199c8bbd8c643c6fb931ad728a Mon Sep 17 00:00:00 2001 From: Lex Neva Date: Sat, 23 Sep 2017 01:07:21 +0100 Subject: [PATCH] remove notes about autofill hole hacks --- README.md | 24 +--------- images/autofill_hole_example.svg | 77 ------------------------------- images/autofill_with_holes.png | Bin 7327 -> 0 bytes 3 files changed, 2 insertions(+), 99 deletions(-) delete mode 100644 images/autofill_hole_example.svg delete mode 100644 images/autofill_with_holes.png diff --git a/README.md b/README.md index 6aa92fb5d..8f82748df 100644 --- a/README.md +++ b/README.md @@ -98,30 +98,10 @@ Another issue is that Inkscape has a memory leak related to extensions. The mor ### AutoFill -AutoFill is the default method for generating fill stitching. To use it, create a closed path in Inskcape and add a fill color. +AutoFill is the default method for generating fill stitching. To use it, create a closed path in Inskcape and add a fill color. This algorithm works for complex shapes with or without holes. -inkscape-embroidery will break the shape up into sections that it can embroider at once using back-and-forth rows of stitches. It then adds straight-stitching between sections until it's filled in the entire design. The staggered pattern of stitches is continued seamlessly between sections, so the end result doesn't appear to have any breaks. When moving from one section to the next, it generates running stitching along the outside edge of the shape. +inkscape-embroidery will break the shape up into sections that it can embroider at once using back-and-forth rows of stitches. It then adds straight-stitching between sections until it's filled in the entire design. The staggered pattern of stitches is continued seamlessly between sections, so the end result doesn't appear to have any breaks. When moving from one section to the next, it generates running stitching along the border of the shape. -This algorithm works great for simple shapes, convex or concave. However, it doesn't work for shapes with holes, because the stitching could get "stuck" on the edge of a hole and be unable to reach any remaining section. For this reason, AutoFill rejects regions with holes in them. - -So what do you do if your shape does have holes? You have two choices: use manually-routed fill (described below), or break the shape up into one or more shapes without holes. - -Here's an example of converting a region with a hole into a region without: -![breaking auto-fill regions with holes](images/autofill_with_holes.png) - -An SVG version is available in `images/autofill_hole_example.svg` for you to test out. - -Note the thin line drawn from the hole to the edge. In fact, this is a very thin strip missing from the shape -- thinner than the spacing between the rows of stitches. This allows the autofill system to travel into and out of the center of the shape if necessary to get from section to section. - -Note that I've drawn the gap at exactly the same angle as the fill. When the autofill system sees that it is traveling in the same direction as the fill, **it places stitches correctly to match the fill pattern**. This means that the gap will be virtually undetectable because the travel stitches will be hidden in the fill. This may double- or triple-up one of the fill rows, but it's really hard to tell unless you look very closely. - -To easily create a gap like this, follow these steps: - -1. Draw a line with the pencil tool that is parallel to your fill angle. For an angle that's a multiple of 45 degrees, hold control while drawing the line to snap the angle. -1. Make sure your line goes from outside the fill area to inside the hole. -1. Set the stroke width to 0.1 pixels. -1. Path -> Stroke to Path -1. Select the new path and your fill region together and do Path -> Difference (control-minus). #### AutoFill parameters diff --git a/images/autofill_hole_example.svg b/images/autofill_hole_example.svg deleted file mode 100644 index 336daf679..000000000 --- a/images/autofill_hole_example.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/images/autofill_with_holes.png b/images/autofill_with_holes.png deleted file mode 100644 index 3ec4d0cf2c739650dc40e49f54854553d49fa62f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7327 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