summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/commands.py8
-rw-r--r--lib/elements/element.py6
-rw-r--r--lib/elements/satin_column.py315
-rw-r--r--lib/extensions/__init__.py4
-rw-r--r--lib/extensions/cut_satin.py37
-rw-r--r--lib/extensions/flip.py13
-rw-r--r--lib/stitches/auto_fill.py4
-rw-r--r--lib/svg/__init__.py2
-rw-r--r--lib/svg/path.py13
-rw-r--r--lib/utils/geometry.py10
-rw-r--r--symbols/inkstitch.svg319
-rw-r--r--templates/cut_satin.inx19
-rw-r--r--translations/messages_ja_JP.po81
13 files changed, 569 insertions, 262 deletions
diff --git a/lib/commands.py b/lib/commands.py
index db3c8a71..df82a8c4 100644
--- a/lib/commands.py
+++ b/lib/commands.py
@@ -24,6 +24,10 @@ COMMANDS = {
# L10N command attached to an object
N_("ignore_object"): N_("Ignore this object (do not stitch)"),
+ # L10N command attached to an object
+ N_("satin_cut_point"): N_("Satin cut point (use with Cut Satin Column)"),
+
+
# L10N command that affects a layer
N_("ignore_layer"): N_("Ignore layer (do not stitch any objects in this layer)"),
@@ -34,7 +38,7 @@ COMMANDS = {
N_("stop_position"): N_("Jump destination for Stop commands (a.k.a. \"Frame Out position\")."),
}
-OBJECT_COMMANDS = ["fill_start", "fill_end", "stop", "trim", "ignore_object"]
+OBJECT_COMMANDS = ["fill_start", "fill_end", "stop", "trim", "ignore_object", "satin_cut_point"]
LAYER_COMMANDS = ["ignore_layer"]
GLOBAL_COMMANDS = ["origin", "stop_position"]
@@ -101,6 +105,8 @@ class Command(BaseCommand):
if neighbors[0][0].tag != SVG_USE_TAG:
raise CommandParseError("connector does not point to a use tag")
+ self.use = neighbors[0][0]
+
self.symbol = self.get_node_by_url(neighbors[0][0].get(XLINK_HREF))
self.parse_symbol()
diff --git a/lib/elements/element.py b/lib/elements/element.py
index ec50ce22..78954683 100644
--- a/lib/elements/element.py
+++ b/lib/elements/element.py
@@ -247,6 +247,12 @@ class EmbroideryElement(object):
return [self.strip_control_points(subpath) for subpath in path]
+ def flatten_subpath(self, subpath):
+ path = [deepcopy(subpath)]
+ cspsubdiv(path, 0.1)
+
+ return self.strip_control_points(path[0])
+
@property
def trim_after(self):
return self.get_boolean_param('trim_after', False)
diff --git a/lib/elements/satin_column.py b/lib/elements/satin_column.py
index 9927a606..705983d7 100644
--- a/lib/elements/satin_column.py
+++ b/lib/elements/satin_column.py
@@ -1,9 +1,12 @@
from itertools import chain, izip
-from shapely import geometry as shgeo, ops as shops
+from copy import deepcopy
+from shapely import geometry as shgeo, affinity as shaffinity
+import cubicsuperpath
from .element import param, EmbroideryElement, Patch
from ..i18n import _
-from ..utils import cache, Point
+from ..utils import cache, Point, cut
+from ..svg import line_strings_to_csp, get_correction_transform
class SatinColumn(EmbroideryElement):
@@ -141,77 +144,167 @@ class SatinColumn(EmbroideryElement):
@property
@cache
- def flattened_beziers(self):
+ def rails(self):
+ """The rails in order, as LineStrings"""
+ return [subpath for i, subpath in enumerate(self.csp) if i in self.rail_indices]
+
+ @property
+ @cache
+ def rungs(self):
+ """The rungs, as LineStrings.
+
+ If there are no rungs, then this is an old-style satin column. The
+ rails are expected to have the same number of path nodes. The path
+ nodes, taken in sequential pairs, act in the same way as rungs would.
+ """
if len(self.csp) == 2:
- return self.simple_flatten_beziers()
- elif len(self.csp) < 2:
- self.fatal(_("satin column: %(id)s: at least two subpaths required (%(num)d found)") % dict(num=len(self.csp), id=self.node.get('id')))
+ # It's an old-style satin column. To make things easier we'll
+ # actually create the implied rungs.
+ return self._synthesize_rungs()
else:
- return self.flatten_beziers_with_rungs()
+ return [subpath for i, subpath in enumerate(self.csp) if i not in self.rail_indices]
+
+ def _synthesize_rungs(self):
+ rung_endpoints = []
+ for rail in self.rails:
+ points = self.strip_control_points(rail)
- def flatten_beziers_with_rungs(self):
- input_paths = [self.flatten([path]) for path in self.csp]
- input_paths = [shgeo.LineString(path[0]) for path in input_paths]
+ # ignore the start and end
+ points = points[1:-1]
- paths = input_paths[:]
- paths.sort(key=lambda path: path.length, reverse=True)
+ rung_endpoints.append(points)
+
+ rungs = []
+ for start, end in izip(*rung_endpoints):
+ # Expand the points just a bit to ensure that shapely thinks they
+ # intersect with the rails even with floating point inaccuracy.
+ start = Point(*start)
+ end = Point(*end)
+ start, end = self.offset_points(start, end, 0.01)
+ start = list(start)
+ end = list(end)
+
+ rungs.append([[start, start, start], [end, end, end]])
+
+ return rungs
+
+ @property
+ @cache
+ def rail_indices(self):
+ paths = [self.flatten_subpath(subpath) for subpath in self.csp]
+ paths = [shgeo.LineString(path) for path in paths]
+ num_paths = len(paths)
# Imagine a satin column as a curvy ladder.
# The two long paths are the "rails" of the ladder. The remainder are
# the "rungs".
- rails = paths[:2]
- rungs = shgeo.MultiLineString(paths[2:])
+ #
+ # The subpaths in this SVG path may be in arbitrary order, so we need
+ # to figure out which are the rails and which are the rungs.
+ #
+ # Rungs are the paths that intersect with exactly 2 other paths.
+ # Rails are everything else.
+
+ if num_paths <= 2:
+ # old-style satin column with no rungs
+ return range(num_paths)
+
+ # This takes advantage of the fact that sum() counts True as 1
+ intersection_counts = [sum(paths[i].intersects(paths[j]) for j in xrange(num_paths) if i != j)
+ for i in xrange(num_paths)]
+ paths_not_intersecting_two = [i for i in xrange(num_paths) if intersection_counts[i] != 2]
+ num_not_intersecting_two = len(paths_not_intersecting_two)
+
+ if num_not_intersecting_two == 2:
+ # Great, we have two unambiguous rails.
+ return paths_not_intersecting_two
+ else:
+ # This is one of two situations:
+ #
+ # 1. There are two rails and two rungs, and it looks like a
+ # hash symbol (#). Unfortunately for us, this is an ambiguous situation
+ # and we'll have to take a guess as to which are the rails and
+ # which are the rungs. We'll guess that the rails are the longest
+ # ones.
+ #
+ # or,
+ #
+ # 2. The paths don't look like a ladder at all, but some other
+ # kind of weird thing. Maybe one of the rungs crosses a rail more
+ # than once. Treat it like the previous case and we'll sort out
+ # the intersection issues later.
+ indices_by_length = sorted(range(num_paths), key=lambda index: paths[index].length, reverse=True)
+ return indices_by_length[:2]
- # The rails should stay in the order they were in the original CSP.
- # (this lets the user control where the satin starts and ends)
- rails.sort(key=lambda rail: input_paths.index(rail))
+ def _cut_rail(self, rail, rung):
+ intersections = 0
- result = []
+ for segment_index, rail_segment in enumerate(rail[:]):
+ if rail_segment is None:
+ continue
- for rail in rails:
- if not rail.is_simple:
- self.fatal(_("One or more rails crosses itself, and this is not allowed. Please split into multiple satin columns."))
+ intersection = rail_segment.intersection(rung)
- # handle null intersections here?
- linestrings = shops.split(rail, rungs)
+ if not intersection.is_empty:
+ if isinstance(intersection, shgeo.MultiLineString):
+ intersections += len(intersection)
+ break
+ else:
+ intersections += 1
- # print >> dbg, "rails and rungs", [str(rail) for rail in rails], [str(rung) for rung in rungs]
- if len(linestrings.geoms) < len(rungs.geoms) + 1:
- self.fatal(_("satin column: One or more of the rungs doesn't intersect both rails.") +
- " " + _("Each rail should intersect both rungs once."))
- elif len(linestrings.geoms) > len(rungs.geoms) + 1:
- self.fatal(_("satin column: One or more of the rungs intersects the rails more than once.") +
- " " + _("Each rail should intersect both rungs once."))
+ cut_result = cut(rail_segment, rail_segment.project(intersection))
+ rail[segment_index:segment_index + 1] = cut_result
- paths = [[Point(*coord) for coord in ls.coords] for ls in linestrings.geoms]
- result.append(paths)
+ if cut_result[1] is None:
+ # if we were exactly at the end of one of the existing rail segments,
+ # stop here or we'll get a spurious second intersection on the next
+ # segment
+ break
- return zip(*result)
+ return intersections
- def simple_flatten_beziers(self):
- # Given a pair of paths made up of bezier segments, flatten
- # each individual bezier segment into line segments that approximate
- # the curves. Retain the divisions between beziers -- we'll use those
- # later.
+ @property
+ @cache
+ def flattened_sections(self):
+ """Flatten the rails, cut with the rungs, and return the sections in pairs."""
- paths = []
+ if len(self.csp) < 2:
+ self.fatal(_("satin column: %(id)s: at least two subpaths required (%(num)d found)") % dict(num=len(self.csp), id=self.node.get('id')))
- for path in self.csp:
- # See the documentation in the parent class for parse_path() for a
- # description of the format of the CSP. Each bezier is constructed
- # using two neighboring 3-tuples in the list.
+ rails = [[shgeo.LineString(self.flatten_subpath(rail))] for rail in self.rails]
+ rungs = [shgeo.LineString(self.flatten_subpath(rung)) for rung in self.rungs]
- flattened_path = []
+ for rung in rungs:
+ for rail_index, rail in enumerate(rails):
+ intersections = self._cut_rail(rail, rung)
- # iterate over pairs of 3-tuples
- for prev, current in zip(path[:-1], path[1:]):
- flattened_segment = self.flatten([[prev, current]])
- flattened_segment = [Point(x, y) for x, y in flattened_segment[0]]
- flattened_path.append(flattened_segment)
+ if intersections == 0:
+ self.fatal(_("satin column: One or more of the rungs doesn't intersect both rails.") +
+ " " + _("Each rail should intersect both rungs once."))
+ elif intersections > 1:
+ self.fatal(_("satin column: One or more of the rungs intersects the rails more than once.") +
+ " " + _("Each rail should intersect both rungs once."))
- paths.append(flattened_path)
+ for rail in rails:
+ for i in xrange(len(rail)):
+ if rail[i] is not None:
+ rail[i] = [Point(*coord) for coord in rail[i].coords]
- return zip(*paths)
+ # Clean out empty segments. Consider an old-style satin like this:
+ #
+ # | |
+ # * *---*
+ # | |
+ # | |
+ #
+ # The stars indicate where the bezier endpoints lay. On the left, there's a
+ # zero-length bezier at the star. The user's goal here is to ignore the
+ # horizontal section of the right rail.
+
+ sections = zip(*rails)
+ sections = [s for s in sections if s[0] is not None and s[1] is not None]
+
+ return sections
def validate_satin_column(self):
# The node should have exactly two paths with no fill. Each
@@ -223,10 +316,120 @@ class SatinColumn(EmbroideryElement):
if self.get_style("fill") is not None:
self.fatal(_("satin column: object %s has a fill (but should not)") % node_id)
- if len(self.csp) == 2:
- if len(self.csp[0]) != len(self.csp[1]):
+ if not self.rungs:
+ if len(self.rails[0]) != len(self.rails[1]):
self.fatal(_("satin column: object %(id)s has two paths with an unequal number of points (%(length1)d and %(length2)d)") %
- dict(id=node_id, length1=len(self.csp[0]), length2=len(self.csp[1])))
+ dict(id=node_id, length1=len(self.rails[0]), length2=len(self.rails[1])))
+
+ def split(self, split_point):
+ """Split a satin into two satins at the specified point
+
+ split_point is a point on or near one of the rails, not at one of the
+ ends. Finds corresponding point on the other rail (taking into account
+ the rungs) and breaks the rails at these points.
+
+ Returns two new SatinColumn instances: the part before and the part
+ after the split point. All parameters are copied over to the new
+ SatinColumn instances.
+ """
+
+ cut_points = self._find_cut_points(split_point)
+ path_lists = self._cut_rails(cut_points)
+ self._assign_rungs_to_split_rails(path_lists)
+ self._add_rungs_if_necessary(path_lists)
+ return self._path_lists_to_satins(path_lists)
+
+ def _find_cut_points(self, split_point):
+ """Find the points on each satin corresponding to the split point.
+
+ split_point is a point that is near but not necessarily touching one
+ of the rails. It is projected onto that rail to obtain the cut point
+ for that rail. A corresponding cut point will be chosen on the other
+ rail, taking into account the satin's rungs to choose a matching point.
+
+ Returns: a list of two Point objects corresponding to the selected
+ cut points.
+ """
+
+ split_point = Point(*split_point)
+ patch = self.do_satin()
+ index_of_closest_stitch = min(range(len(patch)), key=lambda index: split_point.distance(patch.stitches[index]))
+
+ if index_of_closest_stitch % 2 == 0:
+ # split point is on the first rail
+ return (patch.stitches[index_of_closest_stitch],
+ patch.stitches[index_of_closest_stitch + 1])
+ else:
+ # split point is on the second rail
+ return (patch.stitches[index_of_closest_stitch - 1],
+ patch.stitches[index_of_closest_stitch])
+
+ def _cut_rails(self, cut_points):
+ """Cut the rails of this satin at the specified points.
+
+ cut_points is a list of two elements, corresponding to the cut points
+ for each rail in order.
+
+ Returns: A list of two elements, corresponding two the two new sets of
+ rails. Each element is a list of two rails of type LineString.
+ """
+
+ rails = [shgeo.LineString(self.flatten_subpath(rail)) for rail in self.rails]
+
+ path_lists = [[], []]
+
+ for i, rail in enumerate(rails):
+ before, after = cut(rail, rail.project(shgeo.Point(cut_points[i])))
+ path_lists[0].append(before)
+ path_lists[1].append(after)
+
+ return path_lists
+
+ def _assign_rungs_to_split_rails(self, split_rails):
+ """Add this satin's rungs to the new satins.
+
+ Each rung is appended to the correct one of the two new satin columns.
+ """
+
+ rungs = [shgeo.LineString(self.flatten_subpath(rung)) for rung in self.rungs]
+ for path_list in split_rails:
+ path_list.extend(rung for rung in rungs if path_list[0].intersects(rung) and path_list[1].intersects(rung))
+
+ def _add_rungs_if_necessary(self, path_lists):
+ """Add an additional rung to each new satin if it ended up with none.
+
+ If the split point is between the end and the last rung, then one of
+ the satins will have no rungs. Add one to make it stitch properly.
+ """
+
+ # no need to add rungs if there weren't any in the first place
+ if not self.rungs:
+ return
+
+ for path_list in path_lists:
+ if len(path_list) == 2:
+ # If a path has no rungs, it may be invalid. Add a rung at the start.
+ rung_start = path_list[0].interpolate(0.1)
+ rung_end = path_list[1].interpolate(0.1)
+ rung = shgeo.LineString((rung_start, rung_end))
+
+ # make it a bit bigger so that it definitely intersects
+ rung = shaffinity.scale(rung, 1.1, 1.1)
+
+ path_list.append(rung)
+
+ def _path_lists_to_satins(self, path_lists):
+ transform = get_correction_transform(self.node)
+ satins = []
+ for path_list in path_lists:
+ node = deepcopy(self.node)
+ csp = line_strings_to_csp(path_list)
+ d = cubicsuperpath.formatPath(csp)
+ node.set("d", d)
+ node.set("transform", transform)
+ satins.append(SatinColumn(node))
+
+ return satins
def offset_points(self, pos1, pos2, offset_px):
# Expand or contract two points about their midpoint. This is
@@ -300,7 +503,7 @@ class SatinColumn(EmbroideryElement):
remainder_path1 = []
remainder_path2 = []
- for segment1, segment2 in self.flattened_beziers:
+ for segment1, segment2 in self.flattened_sections:
subpath1 = remainder_path1 + segment1
subpath2 = remainder_path2 + segment2
@@ -410,7 +613,7 @@ class SatinColumn(EmbroideryElement):
# zigzag looks like this to make the satin stitches look perpendicular
# to the column:
#
- # /|/|/|/|/|/|/|/|
+ # |/|/|/|/|/|/|/|/|
# print >> dbg, "satin", self.zigzag_spacing, self.pull_compensation
diff --git a/lib/extensions/__init__.py b/lib/extensions/__init__.py
index 5b72ecb3..56cd774b 100644
--- a/lib/extensions/__init__.py
+++ b/lib/extensions/__init__.py
@@ -11,6 +11,7 @@ from object_commands import ObjectCommands
from layer_commands import LayerCommands
from global_commands import GlobalCommands
from convert_to_satin import ConvertToSatin
+from cut_satin import CutSatin
__all__ = extensions = [Embroider,
Install,
@@ -24,4 +25,5 @@ __all__ = extensions = [Embroider,
ObjectCommands,
LayerCommands,
GlobalCommands,
- ConvertToSatin]
+ ConvertToSatin,
+ CutSatin]
diff --git a/lib/extensions/cut_satin.py b/lib/extensions/cut_satin.py
new file mode 100644
index 00000000..0bef794e
--- /dev/null
+++ b/lib/extensions/cut_satin.py
@@ -0,0 +1,37 @@
+import inkex
+
+from .base import InkstitchExtension
+from ..i18n import _
+from ..elements import SatinColumn
+
+
+class CutSatin(InkstitchExtension):
+ def effect(self):
+ if not self.get_elements():
+ return
+
+ if not self.selected:
+ inkex.errormsg(_("Please select one or more satin columns to cut."))
+ return
+
+ for satin in self.elements:
+ if isinstance(satin, SatinColumn):
+ command = satin.get_command("satin_cut_point")
+
+ if command is None:
+ # L10N will have the satin's id prepended, like this:
+ # path12345: error: this satin column does not ...
+ satin.fatal(_('this satin column does not have a "satin column cut point" command attached to it. '
+ 'Please use the "Attach commands" extension and attach the "Satin Column cut point" command first.'))
+
+ split_point = command.target_point
+ command.use.getparent().remove(command.use)
+ command.connector.getparent().remove(command.connector)
+
+ new_satins = satin.split(split_point)
+ parent = satin.node.getparent()
+ index = parent.index(satin.node)
+ parent.remove(satin.node)
+ for new_satin in new_satins:
+ parent.insert(index, new_satin.node)
+ index += 1
diff --git a/lib/extensions/flip.py b/lib/extensions/flip.py
index 65dbdc1f..0864da85 100644
--- a/lib/extensions/flip.py
+++ b/lib/extensions/flip.py
@@ -1,6 +1,5 @@
import inkex
import cubicsuperpath
-from shapely import geometry as shgeo
from .base import InkstitchExtension
from ..i18n import _
@@ -8,21 +7,11 @@ from ..elements import SatinColumn
class Flip(InkstitchExtension):
- def subpath_to_linestring(self, subpath):
- return shgeo.LineString()
-
def flip(self, satin):
csp = satin.path
if len(csp) > 1:
- flattened = satin.flatten(csp)
-
- # find the rails (the two longest paths) and swap them
- indices = range(len(csp))
- indices.sort(key=lambda i: shgeo.LineString(flattened[i]).length, reverse=True)
-
- first = indices[0]
- second = indices[1]
+ first, second = satin.rail_indices
csp[first], csp[second] = csp[second], csp[first]
satin.node.set("d", cubicsuperpath.formatPath(csp))
diff --git a/lib/stitches/auto_fill.py b/lib/stitches/auto_fill.py
index 1660cd4e..28c79eff 100644
--- a/lib/stitches/auto_fill.py
+++ b/lib/stitches/auto_fill.py
@@ -485,9 +485,9 @@ def connect_points(shape, start, end, running_stitch_length, row_spacing):
# up at 12 again.
result = cut(outline, start_projection)
- # result will be None if our starting point happens to already be at
+ # result[0] will be None if our starting point happens to already be at
# 12 o'clock.
- if result is not None and result[1] is not None:
+ if result[0] is not None:
before, after = result
# Make a new outline, starting from the starting point. This is
diff --git a/lib/svg/__init__.py b/lib/svg/__init__.py
index 429e6b5e..a56fcca7 100644
--- a/lib/svg/__init__.py
+++ b/lib/svg/__init__.py
@@ -1,3 +1,3 @@
from .svg import color_block_to_point_lists, render_stitch_plan
from .units import *
-from .path import apply_transforms, get_node_transform, get_correction_transform
+from .path import apply_transforms, get_node_transform, get_correction_transform, line_strings_to_csp
diff --git a/lib/svg/path.py b/lib/svg/path.py
index 4502b2ea..abaeda52 100644
--- a/lib/svg/path.py
+++ b/lib/svg/path.py
@@ -47,3 +47,16 @@ def get_correction_transform(node, child=False):
transform = simpletransform.invertTransform(transform)
return simpletransform.formatTransform(transform)
+
+
+def line_strings_to_csp(line_strings):
+ csp = []
+
+ for ls in line_strings:
+ subpath = []
+ for point in ls.coords:
+ # create a straight line as a degenerate bezier
+ subpath.append((point, point, point))
+ csp.append(subpath)
+
+ return csp
diff --git a/lib/utils/geometry.py b/lib/utils/geometry.py
index ef5f12b5..64f6f16f 100644
--- a/lib/utils/geometry.py
+++ b/lib/utils/geometry.py
@@ -7,8 +7,11 @@ def cut(line, distance):
This is an example in the Shapely documentation.
"""
- if distance <= 0.0 or distance >= line.length:
- return [LineString(line), None]
+ if distance <= 0.0:
+ return [None, line]
+ elif distance >= line.length:
+ return [line, None]
+
coords = list(ShapelyPoint(p) for p in line.coords)
traveled = 0
last_point = coords[0]
@@ -88,6 +91,9 @@ class Point:
def length(self):
return math.sqrt(math.pow(self.x, 2.0) + math.pow(self.y, 2.0))
+ def distance(self, other):
+ return (other - self).length()
+
def unit(self):
return self.mul(1.0 / self.length())
diff --git a/symbols/inkstitch.svg b/symbols/inkstitch.svg
index 6095caf0..980d1c76 100644
--- a/symbols/inkstitch.svg
+++ b/symbols/inkstitch.svg
@@ -25,9 +25,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="2.828427"
- inkscape:cx="159.63333"
- inkscape:cy="278.06489"
+ inkscape:zoom="7.9999996"
+ inkscape:cx="306.93962"
+ inkscape:cy="286.56855"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@@ -45,14 +45,14 @@
inkscape:object-nodes="false"
inkscape:snap-nodes="false">
<inkscape:grid
- empspacing="2"
- opacity="0.1254902"
- color="#f03fff"
- spacingy="18.897638"
- spacingx="18.897638"
- units="mm"
+ type="xygrid"
id="grid5001"
- type="xygrid" />
+ units="mm"
+ spacingx="18.897638"
+ spacingy="18.897638"
+ color="#f03fff"
+ opacity="0.1254902"
+ empspacing="2" />
</sodipodi:namedview>
<title
id="title9425">Ink/Stitch Commands</title>
@@ -63,184 +63,195 @@
<title
id="inkstitch_title9427">Fill stitch ending point</title>
<path
- inkscape:connector-curvature="0"
- style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:1.06500006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19500017, 3.19500017;stroke-dashoffset:0;stroke-opacity:1"
+ id="inkstitch_circle13166"
d="m 9.220113,0.0792309 c -1.9e-6,5.106729 -4.1398241,9.24655 -9.246553,9.24655 -5.1067293,0 -9.2465521,-4.139821 -9.246554,-9.24655 1e-7,-2.452338 0.9741879,-4.804235 2.7082531,-6.538301 1.7340653,-1.734065 4.0859624,-2.708252 6.5383009,-2.708252 5.1067301,0 9.2465528,4.139823 9.246553,9.246553 0,0 0,0 0,0"
- id="inkstitch_circle13166" />
+ style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:1.06500006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19500017, 3.19500017;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
<path
- inkscape:connector-curvature="0"
- id="inkstitch_rect5371-2"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.27154255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.81866985, 4.81866985;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
d="m -4.570439,-4.5704391 c 0,0 9.140878,0 9.140878,0 0,0 0,9.14087 0,9.14087 0,0 -9.140878,0 -9.140878,0 0,0 0,-9.14087 0,-9.14087"
- style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.27154255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.81866985, 4.81866985;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
+ id="inkstitch_rect5371-2"
+ inkscape:connector-curvature="0" />
</symbol>
<symbol
id="inkstitch_trim">
<title
id="inkstitch_title9282">Trim the thread after sewing this object.</title>
<path
- inkscape:connector-curvature="0"
- style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:1.06500006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19500017, 3.19500017;stroke-dashoffset:0;stroke-opacity:1"
+ id="inkstitch_circle13405"
d="m 9.2465284,-8.6e-6 c 1.8e-6,2.452339 -0.9741847,4.804237 -2.7082493,6.538304 C 4.8042146,8.2723614 2.4523174,9.2465504 -2.1625959e-5,9.2465514 -2.4523623,9.2465534 -4.8042621,8.2723654 -6.5383288,6.5382984 -8.2723956,4.8042314 -9.2465834,2.4523324 -9.2465816,-8.6e-6 c 6e-7,-2.452339 0.9741895,-4.804237 2.708256,-6.538301 1.7340665,-1.734065 4.0859648,-2.708252 6.538303974041,-2.70825 C 5.1067066,-9.2465576 9.2465271,-5.1067366 9.2465284,-8.6e-6 c 0,0 0,0 0,0"
- id="inkstitch_circle13405" />
+ style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:1.06500006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19500017, 3.19500017;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
<path
- inkscape:connector-curvature="0"
- id="inkstitch_path13416"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#050505;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.41421342;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m -3.0000256,-5.9834096 c -1.30575,0 -2.375,1.06924 -2.375,2.375 0,1.30575 1.06925,2.375 2.375,2.375 0.58687,0 1.11944,-0.22369 1.53516,-0.58007 0,0 0.61717997,1.62109 0.61717997,1.62109 0,0 -2.29881997,6.01758 -2.29881997,6.01758 0.98655,-0.12511 1.23728,-0.26171 1.67382,-0.97461 0,0 1.33007997,-3.18945 1.33007997,-3.18945 0,0 1.23633003,3.25 1.23633003,3.25 0.23227,0.77906 0.84315,0.79218 1.57813,1.07226 0,0 -2.05469003,-6.14258 -2.05469003,-6.14258 0,0 0.73047003,-1.75 0.73047003,-1.75 0.42849,0.41682 1.01136,0.67578 1.65234,0.67578 1.30575,0 2.375,-1.06925 2.375,-2.375 0,-1.30576 -1.06925,-2.375 -2.375,-2.375 -1.06233,0 -1.95701,0.71265 -2.25781003,1.67969 0,0 -0.0117,-0.0156 -0.0117,-0.0156 0,0 -0.80274,2.10156 -0.80274,2.10156 0,0 -0.59179,-1.76562 -0.59179,-1.76562 -0.18242,-1.12808 -1.15864997,-2 -2.33593997,-2 0,0 -2e-5,-3e-5 -2e-5,-3e-5 m 0,1 c 0.76531,0 1.375,0.60968 1.375,1.375 0,0.76531 -0.60969,1.375 -1.375,1.375 -0.76531,0 -1.375,-0.60969 -1.375,-1.375 0,-0.76532 0.60969,-1.375 1.375,-1.375 0,0 0,0 0,0 m 6,0 c 0.76531,0 1.375,0.60968 1.375,1.375 0,0.76531 -0.60969,1.375 -1.375,1.375 -0.76531,0 -1.375,-0.60969 -1.375,-1.375 0,-0.76532 0.60969,-1.375 1.375,-1.375 0,0 0,0 0,0"
- style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#050505;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.41421342;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ id="inkstitch_path13416"
+ inkscape:connector-curvature="0" />
</symbol>
<symbol
id="inkstitch_fill_start">
<title
id="inkstitch_title9432">Fill stitch starting point</title>
<path
- inkscape:connector-curvature="0"
- style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:1.06501234;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19503705, 3.19503705;stroke-dashoffset:0;stroke-opacity:1"
+ id="inkstitch_circle13166-6"
d="m 9.2465269,-2.6e-6 c -1.9e-6,5.106729 -4.1398247,9.24655 -9.246554026709,9.24655 C -5.106756,9.2465474 -9.2465782,5.1067264 -9.2465801,-2.6e-6 c 2e-7,-5.10673 4.1398229,-9.246553 9.246552973291,-9.246553 2.452338526709,0 4.804235626709,0.974187 6.538300926709,2.708252 1.7340652,1.734066 2.708253,4.085963 2.7082531,6.538301 0,0 0,0 0,0"
- id="inkstitch_circle13166-6" />
+ style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:1.06501234;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19503705, 3.19503705;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
<path
- inkscape:connector-curvature="0"
- id="inkstitch_path4183"
+ style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.74180555;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 6.5728129,0.0035574 c 0,0 -10.4514,6.03412 -10.4514,6.03412 0,0 0,-12.06823 0,-12.06823 0,0 10.4514,6.03411 10.4514,6.03411"
- style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.74180555;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ id="inkstitch_path4183"
+ inkscape:connector-curvature="0" />
</symbol>
<symbol
id="inkstitch_stop">
<title
id="inkstitch_title13328">Stop the machine after sewing this object (for applique, etc)</title>
<path
- inkscape:connector-curvature="0"
- style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:1.06501234;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19503705, 3.19503705;stroke-dashoffset:0;stroke-opacity:1"
+ id="inkstitch_circle13330"
d="m 9.2465269,-2.6e-6 c -1.9e-6,5.106729 -4.1398241,9.24655 -9.246553026709,9.24655 C -5.1067554,9.2465474 -9.2465782,5.1067264 -9.2465801,-2.6e-6 c 10e-8,-2.452338 0.9741879,-4.804235 2.7082531,-6.538301 1.7340653,-1.734065 4.0859624,-2.708252 6.538300873291,-2.708252 C 5.106704,-9.2465556 9.2465267,-5.1067326 9.2465269,-2.6e-6 c 0,0 0,0 0,0"
- id="inkstitch_circle13330" />
+ style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:1.06501234;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19503705, 3.19503705;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
<path
- inkscape:connector-curvature="0"
- style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.60622311;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.81866985, 4.81866985;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
+ id="inkstitch_path13332"
d="m -3.1690251,-4.6497026 c 0,0 2.51587797,0 2.51587797,0 0,0 0,9.14087 0,9.14087 0,0 -2.51587797,0 -2.51587797,0 0,0 0,-9.14087 0,-9.14087"
- id="inkstitch_path13332" />
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.60622311;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.81866985, 4.81866985;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
+ inkscape:connector-curvature="0" />
<path
- inkscape:connector-curvature="0"
- style="display:inline;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.60622311;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.81866985, 4.81866985;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
+ id="inkstitch_path13333"
d="m 0.83097287,-4.6497026 c 0,0 2.51588003,0 2.51588003,0 0,0 0,9.14087 0,9.14087 0,0 -2.51588003,0 -2.51588003,0 0,0 0,-9.14087 0,-9.14087"
- id="inkstitch_path13333" />
+ style="display:inline;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.60622311;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.81866985, 4.81866985;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
+ inkscape:connector-curvature="0" />
</symbol>
<symbol
id="inkstitch_ignore_object">
<title
id="title25366">Ignore object when generating stitch plan</title>
<path
- sodipodi:nodetypes="csssscc"
- id="inkstitch_path25368"
- d="m 9.2465269,-2.6e-6 c -1.9e-6,5.106729 -4.1398241,9.24655 -9.246553026709,9.24655 C -5.1067554,9.2465474 -9.2465782,5.1067264 -9.2465801,-2.6e-6 c 10e-8,-2.452338 0.9741879,-4.804235 2.7082531,-6.538301 1.7340653,-1.734065 4.0859624,-2.708252 6.538300873291,-2.708252 C 5.106704,-9.2465556 9.2465267,-5.1067326 9.2465269,-2.6e-6 v 0"
+ inkscape:connector-curvature="0"
style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.06501234;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19503705, 3.19503705;stroke-dashoffset:0;stroke-opacity:1"
- inkscape:connector-curvature="0" />
+ d="m 9.2465269,-2.6e-6 c -1.9e-6,5.106729 -4.1398241,9.24655 -9.246553026709,9.24655 C -5.1067554,9.2465474 -9.2465782,5.1067264 -9.2465801,-2.6e-6 c 10e-8,-2.452338 0.9741879,-4.804235 2.7082531,-6.538301 1.7340653,-1.734065 4.0859624,-2.708252 6.538300873291,-2.708252 C 5.106704,-9.2465556 9.2465267,-5.1067326 9.2465269,-2.6e-6 v 0"
+ id="inkstitch_path25368"
+ sodipodi:nodetypes="csssscc" />
<path
- sodipodi:nodetypes="ccccccc"
- inkscape:connector-curvature="0"
- id="inkstitch_path31147"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.36500001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M 5.9670459,-7.182445 -7.5106053,5.8067489 c -0.1726626,0.167055 -0.1205449,0.382287 0.051259,0.540886 0.4472376,0.445359 0.9095461,0.890719 1.44712,1.336078 L 7.8945309,-5.7539019 c -0.444712,-0.4981949 -0.762678,-1.0407509 -1.340795,-1.4922541 -0.129647,-0.1296467 -0.384848,-0.1381312 -0.58669,0.063711 z"
- style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.36500001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
- <path
- id="path19494"
- sodipodi:nodetypes="cccccc"
+ id="inkstitch_path31147"
inkscape:connector-curvature="0"
- inkstitch_id="path31147-7"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.36500001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m -6.3778509,-7.3863915 c -0.4163674,0.3694232 -0.8327348,0.8218035 -1.2491022,1.2906927 L 5.9335939,7.7988319 7.6269529,6.1484419 -5.6213616,-7.4261673 c -0.1943465,-0.1943465 -0.5493765,-0.1905301 -0.7564893,0.039776 z"
- style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.36500001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ inkstitch_id="path31147-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc"
+ id="path19494" />
</symbol>
<symbol
id="inkstitch_ignore_layer">
<title
id="title9694">Ignore entire layer when generating stitch plan</title>
<path
- id="inkstitch_path25368-7"
- d="M 9.2465269,-4.9265995e-6 C 9.246525,5.1067241 5.1067028,9.2465451 -2.615882e-5,9.2465451 -5.1067554,9.2465451 -9.2465782,5.1067241 -9.2465801,-4.9265995e-6 -9.24658,-2.4523429 -8.2723922,-4.8042399 -6.538327,-6.5383059 c 1.7340653,-1.734065 4.0859624,-2.708252 6.53830084118,-2.708252 5.10673015882,0 9.24655285882,4.139823 9.24655305882,9.2465529734005 0,0 0,0 0,0"
+ inkscape:connector-curvature="0"
style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.06501234;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19503705, 3.19503705;stroke-dashoffset:0;stroke-opacity:1"
- inkscape:connector-curvature="0" />
+ d="M 9.2465269,-4.9265995e-6 C 9.246525,5.1067241 5.1067028,9.2465451 -2.615882e-5,9.2465451 -5.1067554,9.2465451 -9.2465782,5.1067241 -9.2465801,-4.9265995e-6 -9.24658,-2.4523429 -8.2723922,-4.8042399 -6.538327,-6.5383059 c 1.7340653,-1.734065 4.0859624,-2.708252 6.53830084118,-2.708252 5.10673015882,0 9.24655285882,4.139823 9.24655305882,9.2465529734005 0,0 0,0 0,0"
+ id="inkstitch_path25368-7" />
<path
- id="use5800"
- d="M 4,4.452769 1.46667,1.286102 H -5.5 l 2.53333,3.166667 z"
- style="color:#000000;fill:#d5d5d5;fill-opacity:1;fill-rule:evenodd;stroke:#5a5a5a;stroke-width:0.63330007;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1"
+ sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccc" />
+ style="color:#000000;fill:#d5d5d5;fill-opacity:1;fill-rule:evenodd;stroke:#5a5a5a;stroke-width:0.63330007;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1"
+ d="M 4,4.452769 1.46667,1.286102 H -5.5 l 2.53333,3.166667 z"
+ id="use5800" />
<path
- id="use5864"
- d="M 4,2.552769 1.46667,-0.613898 H -5.5 l 2.53333,3.166667 z"
- style="color:#000000;opacity:0.5;fill:#d5d5d5;fill-opacity:1;fill-rule:evenodd;stroke:#858585;stroke-width:0.63339424;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1"
+ sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccc" />
+ style="color:#000000;opacity:0.5;fill:#d5d5d5;fill-opacity:1;fill-rule:evenodd;stroke:#858585;stroke-width:0.63339424;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:0;stroke-opacity:1"
+ d="M 4,2.552769 1.46667,-0.613898 H -5.5 l 2.53333,3.166667 z"
+ id="use5864" />
<g
id="g5771">
<path
- id="path8011"
- d="m -1.0666699,-5.0472339 h 4.4333333 l 0.6333333,0.6333333 V 0.01943274 L 3.3666634,0.65276607 H -1.0666699 L -1.7000032,0.01943274 V -4.4139006 Z"
- style="fill:#aa0000;fill-rule:evenodd;stroke:#aa0000;stroke-width:1px"
+ sodipodi:nodetypes="ccccccccc"
inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccccc" />
+ style="fill:#aa0000;fill-rule:evenodd;stroke:#aa0000;stroke-width:1px"
+ d="m -1.0666699,-5.0472339 h 4.4333333 l 0.6333333,0.6333333 V 0.01943274 L 3.3666634,0.65276607 H -1.0666699 L -1.7000032,0.01943274 V -4.4139006 Z"
+ id="path8011" />
<path
- style="fill:none;stroke:#ffffff;stroke-width:1.70000005"
- d="m -0.43333658,-3.8755672 c 0,0 3.16666668,3.16666661 3.16666668,3.16666661"
+ inkscape:connector-curvature="0"
id="path8023"
- inkscape:connector-curvature="0" />
+ d="m -0.43333658,-3.8755672 c 0,0 3.16666668,3.16666661 3.16666668,3.16666661"
+ style="fill:none;stroke:#ffffff;stroke-width:1.70000005" />
<path
- style="fill:none;stroke:#ffffff;stroke-width:1.79999995;stroke-linejoin:round"
- d="m 2.7333301,-3.8755672 c 0,0 -3.16666668,3.16666661 -3.16666668,3.16666661"
+ inkscape:connector-curvature="0"
id="path8025"
- inkscape:connector-curvature="0" />
+ d="m 2.7333301,-3.8755672 c 0,0 -3.16666668,3.16666661 -3.16666668,3.16666661"
+ style="fill:none;stroke:#ffffff;stroke-width:1.79999995;stroke-linejoin:round" />
</g>
</symbol>
<symbol
- id="symbol58771">
- <use
- xlink:href="#g58668"
- id="use58769"
- x="0"
- y="0"
- width="100%"
- height="100%" />
- </symbol>
- <symbol
- style="display:inline"
- id="inkstitch_stop_position">
+ id="inkstitch_stop_position"
+ style="display:inline">
<title
- id="inkstitch_title9427-6">Jump destination for Stop commands (a.k.a. "Frame Out position").</title>
+ id="inkstitch_title9427-6">Jump destination for Stop commands (a.k.a. &quot;Frame Out position&quot;).</title>
<path
- inkscape:connector-curvature="0"
- style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:1.06500006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19500017, 3.19500017;stroke-dashoffset:0;stroke-opacity:1"
+ id="inkstitch_circle13166-7"
d="m 9.220113,0.07922893 c -1.9e-6,5.10672897 -4.1398241,9.24654997 -9.24655297,9.24654997 -5.10672933,0 -9.24655213,-4.139821 -9.24655403,-9.24654997 1e-7,-2.45233803 0.9741879,-4.80423503 2.7082531,-6.53830103 1.7340653,-1.734065 4.0859624,-2.708252 6.53830093,-2.708252 5.10673007,0 9.24655277,4.139823 9.24655297,9.24655303 0,0 0,0 0,0"
- id="inkstitch_circle13166-7" />
+ style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:1.06500006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19500017, 3.19500017;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
<path
- inkscape:connector-curvature="0"
- id="inkstitch_rect5371-2-5"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.27154255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.81866985, 4.81866985;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
d="m 4.570439,1.4295589 c 0,0 0,2.32837 0,2.32837 0,0 -9.140878,0 -9.140878,0 0,0 0,-2.32837 0,-2.32837 0,0 9.140878,0 9.140878,0"
- style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.27154255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.81866985, 4.81866985;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
+ id="inkstitch_rect5371-2-5"
+ inkscape:connector-curvature="0" />
<path
- inkscape:connector-curvature="0"
- id="inkstitch_rect5371-2-5-3"
+ style="display:inline;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.27154255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.81866985, 4.81866985;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
d="m 4.570439,0.00792594 c 0,0 -9.140878,0 -9.140878,0 0,0 4.570439028610238,-4.51587004 4.570439028610238,-4.51587004 0,0 4.570438971389763,4.51587004 4.570438971389763,4.51587004"
- style="display:inline;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.27154255;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.81866985, 4.81866985;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
+ id="inkstitch_rect5371-2-5-3"
+ inkscape:connector-curvature="0" />
</symbol>
<symbol
- id="inkstitch_origin"
- style="display:inline">
+ style="display:inline"
+ id="inkstitch_origin">
<title
id="inkstitch_title9427-67">Origin for exported embroidery files</title>
<path
- style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:1.06500006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19500017, 3.19500017;stroke-dashoffset:0;stroke-opacity:1"
- d="m 9.220113,0.07922893 c -1.9e-6,5.10672897 -4.1398241,9.24654997 -9.24655297,9.24654997 -5.10672933,0 -9.24655213,-4.139821 -9.24655403,-9.24654997 1e-7,-2.45233803 0.9741879,-4.80423503 2.7082531,-6.53830103 1.7340653,-1.734065 4.0859624,-2.708252 6.53830093,-2.708252 5.10673007,0 9.24655277,4.139823 9.24655297,9.24655303 0,0 0,0 0,0"
+ inkscape:connector-curvature="0"
id="inkstitch_circle13166-5"
- inkscape:connector-curvature="0" />
+ d="m 9.220113,0.07922893 c -1.9e-6,5.10672897 -4.1398241,9.24654997 -9.24655297,9.24654997 -5.10672933,0 -9.24655213,-4.139821 -9.24655403,-9.24654997 1e-7,-2.45233803 0.9741879,-4.80423503 2.7082531,-6.53830103 1.7340653,-1.734065 4.0859624,-2.708252 6.53830093,-2.708252 5.10673007,0 9.24655277,4.139823 9.24655297,9.24655303 0,0 0,0 0,0"
+ style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:1.06500006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19500017, 3.19500017;stroke-dashoffset:0;stroke-opacity:1" />
<g
id="g27211">
<path
- id="inkstitch_rect5371-2-3"
- d="m -3.8183594,-6.3222656 c 0,0 -1.9511718,3.375 -1.9511718,3.375 0,0 0.9746093,0 0.9746093,0 0,0 0,2.33984372 0,2.33984372 0,0 -0.703125,0 -0.703125,0 0,0 0,0.6484375 0,0.6484375 0,0 0.703125,0 0.703125,0 0,0 0,1.60156248 0,1.60156248 0,0 -0.703125,0 -0.703125,0 0,0 0,0.6484375 0,0.6484375 0,0 0.703125,0 0.703125,0 0,0 0,2.9003906 0,2.9003906 0,0 3.7675781,0 3.7675781,0 0,0 0,0.7265626 0,0.7265626 0,0 0.65039068,0 0.65039068,0 0,0 0,-0.7265626 0,-0.7265626 0,0 1.59960932,0 1.59960932,0 0,0 0,0.7265626 0,0.7265626 0,0 0.6503907,0 0.6503907,0 0,0 0,-0.7265626 0,-0.7265626 0,0 1.8242187,0 1.8242187,0 0,0 0,0.9746094 0,0.9746094 0,0 3.3730469,-1.9492187 3.3730469,-1.9492187 0,0 -3.3730469,-1.9492188 -3.3730469,-1.9492188 0,0 0,0.9746094 0,0.9746094 0,0 -1.8242187,0 -1.8242187,0 0,0 0,-0.7265625 0,-0.7265625 0,0 -0.6503907,0 -0.6503907,0 0,0 0,0.7265625 0,0.7265625 0,0 -1.59960932,0 -1.59960932,0 0,0 0,-0.7265625 0,-0.7265625 0,0 -0.65039068,0 -0.65039068,0 0,0 0,0.7265625 0,0.7265625 0,0 -1.8164062,0 -1.8164062,0 0,0 0,-0.9511719 0,-0.9511719 0,0 0.75,0 0.75,0 0,0 0,-0.6484375 0,-0.6484375 0,0 -0.75,0 -0.75,0 0,0 0,-1.60156248 0,-1.60156248 0,0 0.75,0 0.75,0 0,0 0,-0.6484375 0,-0.6484375 0,0 -0.75,0 -0.75,0 0,0 0,-2.33984372 0,-2.33984372 0,0 0.9746094,0 0.9746094,0 0,0 -1.9492188,-3.375 -1.9492188,-3.375"
+ inkscape:connector-curvature="0"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.95000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- inkscape:connector-curvature="0" />
+ d="m -3.8183594,-6.3222656 c 0,0 -1.9511718,3.375 -1.9511718,3.375 0,0 0.9746093,0 0.9746093,0 0,0 0,2.33984372 0,2.33984372 0,0 -0.703125,0 -0.703125,0 0,0 0,0.6484375 0,0.6484375 0,0 0.703125,0 0.703125,0 0,0 0,1.60156248 0,1.60156248 0,0 -0.703125,0 -0.703125,0 0,0 0,0.6484375 0,0.6484375 0,0 0.703125,0 0.703125,0 0,0 0,2.9003906 0,2.9003906 0,0 3.7675781,0 3.7675781,0 0,0 0,0.7265626 0,0.7265626 0,0 0.65039068,0 0.65039068,0 0,0 0,-0.7265626 0,-0.7265626 0,0 1.59960932,0 1.59960932,0 0,0 0,0.7265626 0,0.7265626 0,0 0.6503907,0 0.6503907,0 0,0 0,-0.7265626 0,-0.7265626 0,0 1.8242187,0 1.8242187,0 0,0 0,0.9746094 0,0.9746094 0,0 3.3730469,-1.9492187 3.3730469,-1.9492187 0,0 -3.3730469,-1.9492188 -3.3730469,-1.9492188 0,0 0,0.9746094 0,0.9746094 0,0 -1.8242187,0 -1.8242187,0 0,0 0,-0.7265625 0,-0.7265625 0,0 -0.6503907,0 -0.6503907,0 0,0 0,0.7265625 0,0.7265625 0,0 -1.59960932,0 -1.59960932,0 0,0 0,-0.7265625 0,-0.7265625 0,0 -0.65039068,0 -0.65039068,0 0,0 0,0.7265625 0,0.7265625 0,0 -1.8164062,0 -1.8164062,0 0,0 0,-0.9511719 0,-0.9511719 0,0 0.75,0 0.75,0 0,0 0,-0.6484375 0,-0.6484375 0,0 -0.75,0 -0.75,0 0,0 0,-1.60156248 0,-1.60156248 0,0 0.75,0 0.75,0 0,0 0,-0.6484375 0,-0.6484375 0,0 -0.75,0 -0.75,0 0,0 0,-2.33984372 0,-2.33984372 0,0 0.9746094,0 0.9746094,0 0,0 -1.9492188,-3.375 -1.9492188,-3.375"
+ id="inkstitch_rect5371-2-3" />
</g>
<path
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.23560667px;line-height:100%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;display:inline;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.18200287;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
- d="m 0.57260898,-3.1777344 c -0.071734,-1.477e-4 -0.1459261,0.023966 -0.203125,0.070312 -0.001979,0.00126 -0.003933,0.00257 -0.00586,0.00391 -0.1089887,0.095935 -0.2036022,0.1946157 -0.2851562,0.2988281 -0.080937,0.103424 -0.1496356,0.2111305 -0.203125,0.3242187 -0.053925,0.1140093 -0.092467,0.2338978 -0.1171875,0.3554688 -0.024626,0.1211014 -0.037109,0.2469313 -0.037109,0.3769531 0,0 0,0.00391 0,0.00391 -1e-7,0.1308008 0.012438,0.2575792 0.037109,0.3789062 0.024772,0.1208588 0.063476,0.2399564 0.1171875,0.3535156 0.053489,0.1130885 0.1221879,0.2207947 0.203125,0.3242188 0.079746,0.1019017 0.1731573,0.2012789 0.28125,0.296875 0.057512,0.054401 0.1230095,0.072299 0.1816406,0.076172 0.058631,0.00387 0.1145272,-0.00646 0.171875,-0.037109 0.057348,-0.030654 0.123751,-0.098677 0.1328125,-0.1914063 0.00897,-0.091756 -0.035792,-0.1679217 -0.087891,-0.2226562 0,0 -0.00195,-0.00196 -0.00195,-0.00196 -0.042833,-0.045359 -0.0821932,-0.091351 -0.1171901,-0.1367188 -0.0646652,-0.085061 -0.1178725,-0.1718145 -0.1582031,-0.2597656 -0.0404721,-0.08826 -0.0692154,-0.1791742 -0.0898438,-0.2753906 0,0 0,-0.00195 0,-0.00195 -0.019368,-0.095905 -0.029297,-0.1972936 -0.029297,-0.3046876 0,-0.1073939 0.00993,-0.2087828 0.029297,-0.3046874 0,0 0,-0.00195 0,-0.00195 0.020577,-0.095962 0.049404,-0.1859964 0.089844,-0.2734375 0.040331,-0.087951 0.093538,-0.1747036 0.1582031,-0.2597656 0.034608,-0.045272 0.072382,-0.090974 0.1132813,-0.1347656 0.1100322,-0.1004922 0.106643,-0.2892446 0.00977,-0.3847657 -0.048439,-0.04776 -0.1177191,-0.072118 -0.1894532,-0.072266 0,0 -4.1e-6,-6.4e-6 -4.1e-6,-6.4e-6 m 5.98828132,0 c -0.071651,7.8e-5 -0.1408014,0.023039 -0.1894531,0.070312 -0.097304,0.094548 -0.1026997,0.2857883 0.00781,0.3867188 0.042446,0.045212 0.082141,0.091474 0.1152343,0.1347656 0.063728,0.083829 0.1151348,0.1701035 0.15625,0.2597656 0.041495,0.089724 0.071628,0.1807109 0.091797,0.2753907 0.019368,0.095905 0.029297,0.1972939 0.029297,0.3046874 0,0.1080768 -0.00969,0.210199 -0.029297,0.3066407 -0.020235,0.094281 -0.050544,0.1854295 -0.091797,0.2753906 -0.041114,0.089661 -0.092522,0.1759365 -0.15625,0.2597656 -0.035531,0.046061 -0.07555,0.092638 -0.1191406,0.1386719 -0.052099,0.054735 -0.096857,0.1309001 -0.087891,0.2226562 0.00906,0.092729 0.075465,0.1607525 0.1328125,0.1914063 0.057348,0.030654 0.1132438,0.040982 0.171875,0.037109 0.058631,-0.00387 0.1241291,-0.021771 0.1816406,-0.076172 0.1080928,-0.095596 0.2015041,-0.1949734 0.2812503,-0.296875 0.08094,-0.1034241 0.149635,-0.2111302 0.203125,-0.3242188 0.05371,-0.1135599 0.09242,-0.2326573 0.117187,-0.3535156 0.02467,-0.1213269 0.03711,-0.2481053 0.03711,-0.3789062 0,0 0,-0.00391 0,-0.00391 0,-0.1300217 -0.01248,-0.2558514 -0.03711,-0.3769531 -0.02472,-0.1215662 -0.06326,-0.2414547 -0.117184,-0.3554641 -0.05349,-0.1130875 -0.122188,-0.2207943 -0.203125,-0.3242187 -0.081554,-0.1042124 -0.176168,-0.2028933 -0.2851566,-0.2988281 -0.00193,-0.00134 -0.00388,-0.00265 -0.00586,-0.00391 -0.05737,-0.046485 -0.1314738,-0.07039 -0.203125,-0.070312 0,0 6e-7,3.2e-6 6e-7,3.2e-6 m -4.7011719,0.3515625 c -0.1283255,0 -0.2496161,0.018417 -0.3613281,0.052734 -0.1205672,0.03623 -0.231977,0.1029821 -0.3222656,0.1953125 -0.092899,0.095 -0.158771,0.2147859 -0.20507822,0.3535156 -3.58e-6,6.5e-4 -3.58e-6,0.0013 0,0.00195 -0.047143,0.1440141 -0.068359,0.3107544 -0.068359,0.5058593 0,0.187956 0.021404,0.3526519 0.068359,0.4960938 -3.58e-6,6.5e-4 -3.58e-6,0.0013 0,0.00195 0.046821,0.138265 0.11525652,0.2561727 0.20312502,0.3496094 6.449e-4,6.5506e-4 0.00129,0.001305 0.00195,0.00195 0.086822,0.090925 0.1925294,0.1619069 0.3144532,0.203125 0.113825,0.038479 0.2343925,0.056641 0.359375,0.056641 0.1240896,-10e-8 0.2463111,-0.01819 0.3613281,-0.056641 0.1227637,-0.04104 0.2290582,-0.1116491 0.3164063,-0.203125 0.090879,-0.094856 0.160379,-0.2144584 0.2070312,-0.3515625 0,0 0,-0.00195 0,-0.00195 0.04963,-0.1446454 0.070315,-0.3097522 0.070315,-0.4960938 0,-0.1944243 -0.019335,-0.3619907 -0.068359,-0.5078125 C 2.6898173,-2.3649775 2.6213826,-2.484308 2.5296403,-2.578125 2.4412783,-2.668486 2.3312446,-2.7348378 2.2112809,-2.7714844 c -0.1098451,-0.034511 -0.2276775,-0.054687 -0.3515625,-0.054687 0,0 0,0 0,0 m 3.40625,0 c -0.1283255,0 -0.2509177,0.018217 -0.3632812,0.052734 -0.1211815,0.036426 -0.2311771,0.1041614 -0.3203125,0.1953125 -0.0929,0.095001 -0.1587709,0.2147864 -0.2050781,0.3535156 -3.6e-6,6.5e-4 -3.6e-6,0.0013 0,0.00195 -0.047144,0.144015 -0.068359,0.3107548 -0.068359,0.5058593 0,0.1879556 0.021403,0.352651 0.068359,0.4960938 -3.6e-6,6.5e-4 -3.6e-6,0.0013 0,0.00195 0.04626,0.13661 0.1121532,0.2549502 0.2011718,0.3496094 6.449e-4,6.5506e-4 0.00129,0.001305 0.00195,0.00195 0.087964,0.092121 0.195188,0.1621455 0.3164062,0.203125 0.1138248,0.038479 0.2343924,0.056641 0.359375,0.056641 0.1240899,0 0.2450506,-0.018421 0.359375,-0.056641 0.1227636,-0.04104 0.2290582,-0.1116493 0.3164062,-0.203125 0.090879,-0.094856 0.160379,-0.2144583 0.2070313,-0.3515625 0,0 0,-0.00195 0,-0.00195 0.04909,-0.1430335 0.072266,-0.3084325 0.072266,-0.4960938 0,-0.1956861 -0.021841,-0.3636373 -0.070312,-0.5078125 C 6.0946613,-2.3633389 6.02879,-2.4831245 5.9358903,-2.578125 5.8475279,-2.6684863 5.7374948,-2.7348378 5.6175309,-2.7714844 c -0.1098451,-0.034511 -0.2276775,-0.054687 -0.3515625,-0.054687 0,0 0,0 0,0 m -3.40625,0.5429688 c 0.055432,0 0.1009954,0.00891 0.1367188,0.023437 6.5e-4,3.6e-6 0.0013,3.6e-6 0.00195,0 0.02557,0.00985 0.045222,0.025496 0.070312,0.060547 6.5e-4,3.6e-6 0.0013,3.6e-6 0.00195,0 0.022095,0.030406 0.047135,0.083247 0.064453,0.1621094 -3.6e-6,6.5e-4 -3.6e-6,0.0013 0,0.00195 0.016958,0.076535 0.025391,0.1828146 0.025391,0.3183593 0,0.1285689 -0.010757,0.2344819 -0.029297,0.3105469 -0.0184,0.079083 -0.042145,0.132477 -0.066406,0.1660156 -6.5e-4,-3.6e-6 -0.0013,-3.6e-6 -0.00195,0 -0.02365,0.033039 -0.047699,0.051825 -0.076172,0.064453 -0.036523,0.01511 -0.077371,0.023437 -0.1328125,0.023437 -0.058078,0 -0.1013487,-0.0088 -0.1367188,-0.023437 -0.02914,-0.012911 -0.055461,-0.032877 -0.080078,-0.066406 -0.022766,-0.033187 -0.04635,-0.085255 -0.064453,-0.1621094 0,0 0,-0.00195 0,-0.00195 -0.016808,-0.07661 -0.025391,-0.1812575 -0.025391,-0.3105469 0,-0.1346383 0.00848,-0.2420437 0.025391,-0.3183593 3.6e-6,-6.5e-4 3.6e-6,-0.0013 0,-0.00195 0.017622,-0.080248 0.04212,-0.1316854 0.0625,-0.1601562 0.023285,-0.031716 0.046461,-0.05007 0.078125,-0.0625 0.038881,-0.015263 0.085765,-0.023437 0.1464844,-0.023437 0,0 3.1e-6,-3.4e-6 3.1e-6,-3.4e-6 m 3.40625,0 c 0.055432,0 0.097781,0.0084 0.1347656,0.023437 6.5e-4,3.6e-6 0.0013,3.6e-6 0.00195,0 0.02677,0.010311 0.048719,0.027653 0.072266,0.060547 6.5e-4,3.6e-6 0.0013,3.6e-6 0.00195,0 0.022095,0.030406 0.047135,0.083247 0.064453,0.1621094 -3.6e-6,6.5e-4 -3.6e-6,0.0013 0,0.00195 0.016958,0.076535 0.025391,0.1828146 0.025391,0.3183593 1e-6,0.1285671 -0.010756,0.2344806 -0.029297,0.3105469 -0.0184,0.079083 -0.042145,0.132477 -0.066406,0.1660156 -6.5e-4,-3.6e-6 -0.0013,-3.6e-6 -0.00195,0 -0.02365,0.033039 -0.047699,0.051825 -0.076172,0.064453 -0.036523,0.01511 -0.077371,0.023437 -0.1328126,0.023437 -0.058078,0 -0.1045526,-0.00932 -0.1386718,-0.023437 -0.027839,-0.012332 -0.052016,-0.030845 -0.078125,-0.066406 -0.024212,-0.035177 -0.048775,-0.087353 -0.066406,-0.1621094 0,0 0,-0.00195 0,-0.00195 -0.016808,-0.07661 -0.025391,-0.1812576 -0.025391,-0.3105469 0,-0.1346383 0.00848,-0.2420434 0.025391,-0.3183593 3.6e-6,-6.5e-4 3.6e-6,-0.0013 0,-0.00195 0.017138,-0.078042 0.042536,-0.1295963 0.064453,-0.1601562 0.024828,-0.033817 0.045701,-0.050539 0.076172,-0.0625 0.037688,-0.014795 0.087718,-0.023437 0.1484375,-0.023437 0,0 2.3e-6,-3.4e-6 2.3e-6,-3.4e-6 m -1.5664062,1.0058593 c -0.097876,-0.029355 -0.2049377,-0.028281 -0.3144532,0.00781 -0.1691652,0.055752 -0.26201,0.2041752 -0.2441406,0.3730468 0.00893,0.084436 0.065507,0.1795074 0.1523438,0.2265625 0.00174,9.428e-4 0.00411,-9.08e-4 0.00586,0 -0.03157,0.046422 -0.066871,0.097993 -0.056641,0.1542969 0.013731,0.075568 0.061485,0.1250427 0.109375,0.1542969 0.095781,0.058508 0.2242885,0.048199 0.3203125,-0.025391 0.024113,-0.01848 0.051789,-0.03993 0.080078,-0.070312 0,0 0.00195,-0.00195 0.00195,-0.00195 0.028338,-0.029789 0.049476,-0.061384 0.066406,-0.089844 0,0 0.00195,-0.00195 0.00195,-0.00195 0.04171,-0.070204 0.043422,-0.1104433 0.052734,-0.1542969 0.020331,-0.067932 0.046748,-0.1800329 0.033203,-0.3085938 10e-4,-0.071525 -0.027523,-0.1432706 -0.068359,-0.1835937 -0.044315,-0.043758 -0.091687,-0.0654 -0.140625,-0.080078 0,0 6.5e-6,-3.7e-6 6.5e-6,-3.7e-6"
+ inkscape:connector-curvature="0"
id="path16421-8"
+ d="m 0.57260898,-3.1777344 c -0.071734,-1.477e-4 -0.1459261,0.023966 -0.203125,0.070312 -0.001979,0.00126 -0.003933,0.00257 -0.00586,0.00391 -0.1089887,0.095935 -0.2036022,0.1946157 -0.2851562,0.2988281 -0.080937,0.103424 -0.1496356,0.2111305 -0.203125,0.3242187 -0.053925,0.1140093 -0.092467,0.2338978 -0.1171875,0.3554688 -0.024626,0.1211014 -0.037109,0.2469313 -0.037109,0.3769531 0,0 0,0.00391 0,0.00391 -1e-7,0.1308008 0.012438,0.2575792 0.037109,0.3789062 0.024772,0.1208588 0.063476,0.2399564 0.1171875,0.3535156 0.053489,0.1130885 0.1221879,0.2207947 0.203125,0.3242188 0.079746,0.1019017 0.1731573,0.2012789 0.28125,0.296875 0.057512,0.054401 0.1230095,0.072299 0.1816406,0.076172 0.058631,0.00387 0.1145272,-0.00646 0.171875,-0.037109 0.057348,-0.030654 0.123751,-0.098677 0.1328125,-0.1914063 0.00897,-0.091756 -0.035792,-0.1679217 -0.087891,-0.2226562 0,0 -0.00195,-0.00196 -0.00195,-0.00196 -0.042833,-0.045359 -0.0821932,-0.091351 -0.1171901,-0.1367188 -0.0646652,-0.085061 -0.1178725,-0.1718145 -0.1582031,-0.2597656 -0.0404721,-0.08826 -0.0692154,-0.1791742 -0.0898438,-0.2753906 0,0 0,-0.00195 0,-0.00195 -0.019368,-0.095905 -0.029297,-0.1972936 -0.029297,-0.3046876 0,-0.1073939 0.00993,-0.2087828 0.029297,-0.3046874 0,0 0,-0.00195 0,-0.00195 0.020577,-0.095962 0.049404,-0.1859964 0.089844,-0.2734375 0.040331,-0.087951 0.093538,-0.1747036 0.1582031,-0.2597656 0.034608,-0.045272 0.072382,-0.090974 0.1132813,-0.1347656 0.1100322,-0.1004922 0.106643,-0.2892446 0.00977,-0.3847657 -0.048439,-0.04776 -0.1177191,-0.072118 -0.1894532,-0.072266 0,0 -4.1e-6,-6.4e-6 -4.1e-6,-6.4e-6 m 5.98828132,0 c -0.071651,7.8e-5 -0.1408014,0.023039 -0.1894531,0.070312 -0.097304,0.094548 -0.1026997,0.2857883 0.00781,0.3867188 0.042446,0.045212 0.082141,0.091474 0.1152343,0.1347656 0.063728,0.083829 0.1151348,0.1701035 0.15625,0.2597656 0.041495,0.089724 0.071628,0.1807109 0.091797,0.2753907 0.019368,0.095905 0.029297,0.1972939 0.029297,0.3046874 0,0.1080768 -0.00969,0.210199 -0.029297,0.3066407 -0.020235,0.094281 -0.050544,0.1854295 -0.091797,0.2753906 -0.041114,0.089661 -0.092522,0.1759365 -0.15625,0.2597656 -0.035531,0.046061 -0.07555,0.092638 -0.1191406,0.1386719 -0.052099,0.054735 -0.096857,0.1309001 -0.087891,0.2226562 0.00906,0.092729 0.075465,0.1607525 0.1328125,0.1914063 0.057348,0.030654 0.1132438,0.040982 0.171875,0.037109 0.058631,-0.00387 0.1241291,-0.021771 0.1816406,-0.076172 0.1080928,-0.095596 0.2015041,-0.1949734 0.2812503,-0.296875 0.08094,-0.1034241 0.149635,-0.2111302 0.203125,-0.3242188 0.05371,-0.1135599 0.09242,-0.2326573 0.117187,-0.3535156 0.02467,-0.1213269 0.03711,-0.2481053 0.03711,-0.3789062 0,0 0,-0.00391 0,-0.00391 0,-0.1300217 -0.01248,-0.2558514 -0.03711,-0.3769531 -0.02472,-0.1215662 -0.06326,-0.2414547 -0.117184,-0.3554641 -0.05349,-0.1130875 -0.122188,-0.2207943 -0.203125,-0.3242187 -0.081554,-0.1042124 -0.176168,-0.2028933 -0.2851566,-0.2988281 -0.00193,-0.00134 -0.00388,-0.00265 -0.00586,-0.00391 -0.05737,-0.046485 -0.1314738,-0.07039 -0.203125,-0.070312 0,0 6e-7,3.2e-6 6e-7,3.2e-6 m -4.7011719,0.3515625 c -0.1283255,0 -0.2496161,0.018417 -0.3613281,0.052734 -0.1205672,0.03623 -0.231977,0.1029821 -0.3222656,0.1953125 -0.092899,0.095 -0.158771,0.2147859 -0.20507822,0.3535156 -3.58e-6,6.5e-4 -3.58e-6,0.0013 0,0.00195 -0.047143,0.1440141 -0.068359,0.3107544 -0.068359,0.5058593 0,0.187956 0.021404,0.3526519 0.068359,0.4960938 -3.58e-6,6.5e-4 -3.58e-6,0.0013 0,0.00195 0.046821,0.138265 0.11525652,0.2561727 0.20312502,0.3496094 6.449e-4,6.5506e-4 0.00129,0.001305 0.00195,0.00195 0.086822,0.090925 0.1925294,0.1619069 0.3144532,0.203125 0.113825,0.038479 0.2343925,0.056641 0.359375,0.056641 0.1240896,-10e-8 0.2463111,-0.01819 0.3613281,-0.056641 0.1227637,-0.04104 0.2290582,-0.1116491 0.3164063,-0.203125 0.090879,-0.094856 0.160379,-0.2144584 0.2070312,-0.3515625 0,0 0,-0.00195 0,-0.00195 0.04963,-0.1446454 0.070315,-0.3097522 0.070315,-0.4960938 0,-0.1944243 -0.019335,-0.3619907 -0.068359,-0.5078125 C 2.6898173,-2.3649775 2.6213826,-2.484308 2.5296403,-2.578125 2.4412783,-2.668486 2.3312446,-2.7348378 2.2112809,-2.7714844 c -0.1098451,-0.034511 -0.2276775,-0.054687 -0.3515625,-0.054687 0,0 0,0 0,0 m 3.40625,0 c -0.1283255,0 -0.2509177,0.018217 -0.3632812,0.052734 -0.1211815,0.036426 -0.2311771,0.1041614 -0.3203125,0.1953125 -0.0929,0.095001 -0.1587709,0.2147864 -0.2050781,0.3535156 -3.6e-6,6.5e-4 -3.6e-6,0.0013 0,0.00195 -0.047144,0.144015 -0.068359,0.3107548 -0.068359,0.5058593 0,0.1879556 0.021403,0.352651 0.068359,0.4960938 -3.6e-6,6.5e-4 -3.6e-6,0.0013 0,0.00195 0.04626,0.13661 0.1121532,0.2549502 0.2011718,0.3496094 6.449e-4,6.5506e-4 0.00129,0.001305 0.00195,0.00195 0.087964,0.092121 0.195188,0.1621455 0.3164062,0.203125 0.1138248,0.038479 0.2343924,0.056641 0.359375,0.056641 0.1240899,0 0.2450506,-0.018421 0.359375,-0.056641 0.1227636,-0.04104 0.2290582,-0.1116493 0.3164062,-0.203125 0.090879,-0.094856 0.160379,-0.2144583 0.2070313,-0.3515625 0,0 0,-0.00195 0,-0.00195 0.04909,-0.1430335 0.072266,-0.3084325 0.072266,-0.4960938 0,-0.1956861 -0.021841,-0.3636373 -0.070312,-0.5078125 C 6.0946613,-2.3633389 6.02879,-2.4831245 5.9358903,-2.578125 5.8475279,-2.6684863 5.7374948,-2.7348378 5.6175309,-2.7714844 c -0.1098451,-0.034511 -0.2276775,-0.054687 -0.3515625,-0.054687 0,0 0,0 0,0 m -3.40625,0.5429688 c 0.055432,0 0.1009954,0.00891 0.1367188,0.023437 6.5e-4,3.6e-6 0.0013,3.6e-6 0.00195,0 0.02557,0.00985 0.045222,0.025496 0.070312,0.060547 6.5e-4,3.6e-6 0.0013,3.6e-6 0.00195,0 0.022095,0.030406 0.047135,0.083247 0.064453,0.1621094 -3.6e-6,6.5e-4 -3.6e-6,0.0013 0,0.00195 0.016958,0.076535 0.025391,0.1828146 0.025391,0.3183593 0,0.1285689 -0.010757,0.2344819 -0.029297,0.3105469 -0.0184,0.079083 -0.042145,0.132477 -0.066406,0.1660156 -6.5e-4,-3.6e-6 -0.0013,-3.6e-6 -0.00195,0 -0.02365,0.033039 -0.047699,0.051825 -0.076172,0.064453 -0.036523,0.01511 -0.077371,0.023437 -0.1328125,0.023437 -0.058078,0 -0.1013487,-0.0088 -0.1367188,-0.023437 -0.02914,-0.012911 -0.055461,-0.032877 -0.080078,-0.066406 -0.022766,-0.033187 -0.04635,-0.085255 -0.064453,-0.1621094 0,0 0,-0.00195 0,-0.00195 -0.016808,-0.07661 -0.025391,-0.1812575 -0.025391,-0.3105469 0,-0.1346383 0.00848,-0.2420437 0.025391,-0.3183593 3.6e-6,-6.5e-4 3.6e-6,-0.0013 0,-0.00195 0.017622,-0.080248 0.04212,-0.1316854 0.0625,-0.1601562 0.023285,-0.031716 0.046461,-0.05007 0.078125,-0.0625 0.038881,-0.015263 0.085765,-0.023437 0.1464844,-0.023437 0,0 3.1e-6,-3.4e-6 3.1e-6,-3.4e-6 m 3.40625,0 c 0.055432,0 0.097781,0.0084 0.1347656,0.023437 6.5e-4,3.6e-6 0.0013,3.6e-6 0.00195,0 0.02677,0.010311 0.048719,0.027653 0.072266,0.060547 6.5e-4,3.6e-6 0.0013,3.6e-6 0.00195,0 0.022095,0.030406 0.047135,0.083247 0.064453,0.1621094 -3.6e-6,6.5e-4 -3.6e-6,0.0013 0,0.00195 0.016958,0.076535 0.025391,0.1828146 0.025391,0.3183593 1e-6,0.1285671 -0.010756,0.2344806 -0.029297,0.3105469 -0.0184,0.079083 -0.042145,0.132477 -0.066406,0.1660156 -6.5e-4,-3.6e-6 -0.0013,-3.6e-6 -0.00195,0 -0.02365,0.033039 -0.047699,0.051825 -0.076172,0.064453 -0.036523,0.01511 -0.077371,0.023437 -0.1328126,0.023437 -0.058078,0 -0.1045526,-0.00932 -0.1386718,-0.023437 -0.027839,-0.012332 -0.052016,-0.030845 -0.078125,-0.066406 -0.024212,-0.035177 -0.048775,-0.087353 -0.066406,-0.1621094 0,0 0,-0.00195 0,-0.00195 -0.016808,-0.07661 -0.025391,-0.1812576 -0.025391,-0.3105469 0,-0.1346383 0.00848,-0.2420434 0.025391,-0.3183593 3.6e-6,-6.5e-4 3.6e-6,-0.0013 0,-0.00195 0.017138,-0.078042 0.042536,-0.1295963 0.064453,-0.1601562 0.024828,-0.033817 0.045701,-0.050539 0.076172,-0.0625 0.037688,-0.014795 0.087718,-0.023437 0.1484375,-0.023437 0,0 2.3e-6,-3.4e-6 2.3e-6,-3.4e-6 m -1.5664062,1.0058593 c -0.097876,-0.029355 -0.2049377,-0.028281 -0.3144532,0.00781 -0.1691652,0.055752 -0.26201,0.2041752 -0.2441406,0.3730468 0.00893,0.084436 0.065507,0.1795074 0.1523438,0.2265625 0.00174,9.428e-4 0.00411,-9.08e-4 0.00586,0 -0.03157,0.046422 -0.066871,0.097993 -0.056641,0.1542969 0.013731,0.075568 0.061485,0.1250427 0.109375,0.1542969 0.095781,0.058508 0.2242885,0.048199 0.3203125,-0.025391 0.024113,-0.01848 0.051789,-0.03993 0.080078,-0.070312 0,0 0.00195,-0.00195 0.00195,-0.00195 0.028338,-0.029789 0.049476,-0.061384 0.066406,-0.089844 0,0 0.00195,-0.00195 0.00195,-0.00195 0.04171,-0.070204 0.043422,-0.1104433 0.052734,-0.1542969 0.020331,-0.067932 0.046748,-0.1800329 0.033203,-0.3085938 10e-4,-0.071525 -0.027523,-0.1432706 -0.068359,-0.1835937 -0.044315,-0.043758 -0.091687,-0.0654 -0.140625,-0.080078 0,0 6.5e-6,-3.7e-6 6.5e-6,-3.7e-6"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.23560667px;line-height:100%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;display:inline;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.18200287;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
+ </symbol>
+ <symbol
+ id="inkstitch_satin_cut_point"
+ style="display:inline">
+ <title
+ id="inkstitch_title9427-675">Satin Column cut point</title>
+ <path
+ id="inkstitch_circle13166-3"
+ d="m 9.220113,0.07922893 c -1.9e-6,5.10672897 -4.1398241,9.24654997 -9.24655297,9.24654997 -5.10672933,0 -9.24655213,-4.139821 -9.24655403,-9.24654997 1e-7,-2.45233803 0.9741879,-4.80423503 2.7082531,-6.53830103 1.7340653,-1.734065 4.0859624,-2.708252 6.53830093,-2.708252 5.10673007,0 9.24655277,4.139823 9.24655297,9.24655303 0,0 0,0 0,0"
+ style="opacity:1;vector-effect:none;fill:#fafafa;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:1.06500006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.19500017, 3.19500017;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path24356"
+ d="m -7.8132269,-1.4510415 c -0.4413094,0.88338563 -0.07931,1.96814513 0.8040823,2.40945763 0.8833854,0.44130937 1.9681488,0.079303 2.4094581,-0.8040818 0.1983467,-0.3970378 0.2270074,-0.8329413 0.1264064,-1.23463743 0,0 1.3053145,0.13034233 1.3053145,0.13034233 0,0 3.29416163,3.58901577 3.29416163,3.58901577 0.2487872,-0.7097192 0.2411124,-0.9255141 -0.09365,-1.4617903 0,0 -1.70824193,-1.97779537 -1.70824193,-1.97779537 0,0 2.61658533,0.2619947 2.61658533,0.2619947 0.60556237,0.1061633 0.82089997,-0.3026842 1.25878787,-0.70526413 0,0 -4.8501007,-0.6859624 -4.8501007,-0.6859624 0,0 -0.9370561,-1.0856429 -0.9370561,-1.0856429 0.4268116,-0.1490142 0.7990019,-0.4558243 1.0156363,-0.8894695 0.4413094,-0.8833854 0.079303,-1.9681487 -0.8040822,-2.4094581 -0.8833921,-0.4413128 -1.9681487,-0.079303 -2.4094581,0.8040822 -0.3590398,0.7187033 -0.1792857,1.5648425 0.373288,2.0951784 0,0 -0.014508,0.00264 -0.014508,0.00264 0,0 1.1504733,1.2533541 1.1504733,1.2533541 0,0 -1.3945129,-0.196367 -1.3945129,-0.196367 -0.8248385,-0.2578481 -1.7446631,0.1079194 -2.1425563,0.9043974 0,0 -2.71e-5,3.4e-6 -2.71e-5,3.4e-6 m 0.6765348,0.337974 c 0.2586549,-0.517759 0.877184,-0.7241797 1.3949495,-0.4655215 0.5177589,0.2586549 0.7241761,0.87719093 0.4655214,1.39494953 -0.2586548,0.5177587 -0.8771906,0.7241758 -1.3949494,0.4655211 -0.5177657,-0.2586579 -0.7241762,-0.8771902 -0.4655215,-1.39494913 0,0 0,0 0,0 m 2.0278432,-4.0592094 c 0.2586548,-0.5177589 0.8771839,-0.7241794 1.3949495,-0.4655213 0.5177588,0.2586548 0.724176,0.8771905 0.4655213,1.3949494 -0.2586548,0.5177588 -0.8771906,0.7241761 -1.3949494,0.4655213 -0.5177656,-0.2586581 -0.7241761,-0.8771906 -0.4655214,-1.3949494 0,0 0,0 0,0"
+ style="display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.37812883;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path24362"
+ d="m 4.4798843,-4.3110508 c 0.219827,2.414579 -0.180079,4.01786863 -1.429103,5.5454305 0,0 2.023437,1.0507812 2.023437,1.0507812 1.715964,-1.67359867 1.847271,-3.9809016 1.75755,-6.660665 0,0 -2.351884,0.064453 -2.351884,0.064453 m -2.097072,6.2192586 c -2.10168637,1.4056146 -3.14434337,3.5358281 -3.667017,6.0218201 0,0 2.3918915,0.212651 2.3918915,0.212651 0.3238246,-2.741001 2.2229845,-4.191785 3.3298135,-5.1368148 0,0 -2.054688,-1.0976563 -2.054688,-1.0976563"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#242424;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.4000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
inkscape:connector-curvature="0" />
</symbol>
</defs>
@@ -257,85 +268,93 @@
</rdf:RDF>
</metadata>
<g
- style="display:inline"
- id="layer1"
+ inkscape:label="Layer 1"
inkscape:groupmode="layer"
- inkscape:label="Layer 1">
+ id="layer1"
+ style="display:inline">
<flowRoot
- xml:space="preserve"
- id="flowRoot37658"
+ transform="translate(0,58.409503)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.33333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;text-anchor:start;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#050505;stroke-width:1.06500006;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:3.19500017, 3.19500017;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
- transform="translate(0,58.409503)"><flowRegion
+ id="flowRoot37658"
+ xml:space="preserve"><flowRegion
id="flowRegion37660"><rect
- id="rect37662"
- width="217.5"
- height="62.5"
+ y="71.702759"
x="20.75"
- y="71.702759" /></flowRegion><flowPara
- id="flowPara37664"
- style="fill:#000000;fill-opacity:1;stroke:none">Create symbols carefully! They must be centered about the origin before being converted to a symbol.</flowPara></flowRoot> <use
- transform="translate(37.82169,75.511319)"
- height="100%"
- width="100%"
- y="0"
- x="0"
+ height="62.5"
+ width="217.5"
+ id="rect37662" /></flowRegion><flowPara
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ id="flowPara37664">Create symbols carefully! They must be centered about the origin before being converted to a symbol.</flowPara></flowRoot> <use
+ xlink:href="#inkstitch_fill_end"
id="use9454"
- xlink:href="#inkstitch_fill_end" />
- <use
- transform="translate(75.590552,75.590552)"
- height="100%"
- width="100%"
- y="0"
x="0"
- id="use9461"
- xlink:href="#inkstitch_trim" />
- <use
- transform="translate(113.38583,75.590552)"
- height="100%"
- width="100%"
y="0"
- x="0"
- id="use9468"
- xlink:href="#inkstitch_fill_start" />
+ width="100%"
+ height="100%"
+ transform="translate(37.82169,75.511319)" />
<use
- transform="translate(151.1811,75.590552)"
+ xlink:href="#inkstitch_trim"
+ id="use9461"
+ x="0"
+ y="0"
+ width="100%"
height="100%"
+ transform="translate(75.590552,75.590552)" />
+ <use
+ xlink:href="#inkstitch_fill_start"
+ id="use9468"
+ x="0"
+ y="0"
width="100%"
+ height="100%"
+ transform="translate(113.38583,75.590552)" />
+ <use
+ xlink:href="#inkstitch_stop"
+ id="use9476"
+ x="0"
y="0"
+ width="100%"
+ height="100%"
+ transform="translate(151.1811,75.590552)" />
+ <use
+ xlink:href="#inkstitch_ignore_object"
+ id="use31203"
x="0"
- id="use9476"
- xlink:href="#inkstitch_stop" />
+ y="0"
+ width="100%"
+ height="100%"
+ transform="translate(188.83762,75.41843)" />
<use
- transform="translate(188.83762,75.41843)"
+ transform="translate(226.77166,75.590554)"
height="100%"
width="100%"
y="0"
x="0"
- id="use31203"
- xlink:href="#inkstitch_ignore_object" />
- <use
- xlink:href="#inkstitch_ignore_layer"
id="use58774"
+ xlink:href="#inkstitch_ignore_layer" />
+ <use
+ xlink:href="#inkstitch_stop_position"
+ id="use9692"
x="0"
y="0"
width="100%"
height="100%"
- transform="translate(226.77166,75.590554)" />
+ transform="translate(264.59335,75.511321)" />
<use
- transform="translate(264.59335,75.511321)"
+ transform="translate(302.38862,75.511321)"
height="100%"
width="100%"
y="0"
x="0"
- id="use9692"
- xlink:href="#inkstitch_frame_out" />
- <use
- xlink:href="#inkstitch_origin"
id="use27375"
+ xlink:href="#inkstitch_origin" />
+ <use
+ xlink:href="#inkstitch_satin_cut_point"
+ id="use24520"
x="0"
y="0"
width="100%"
height="100%"
- transform="translate(302.38862,75.511321)" />
+ transform="translate(340.1839,75.511321)" />
</g>
</svg>
diff --git a/templates/cut_satin.inx b/templates/cut_satin.inx
new file mode 100644
index 00000000..b8d9e5a5
--- /dev/null
+++ b/templates/cut_satin.inx
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
+ <name>{% trans %}Cut Satin Column{% endtrans %}</name>
+ <id>org.inkstitch.cut_satin.{{ locale }}</id>
+ <dependency type="executable" location="extensions">inkstitch.py</dependency>
+ <dependency type="executable" location="extensions">inkex.py</dependency>
+ <param name="extension" type="string" gui-hidden="true">cut_satin</param>
+ <effect>
+ <object-type>all</object-type>
+ <effects-menu>
+ <submenu name="Ink/Stitch">
+ <submenu name="{% trans %}English{% endtrans %}" />
+ </submenu>
+ </effects-menu>
+ </effect>
+ <script>
+ <command reldir="extensions" interpreter="python">inkstitch.py</command>
+ </script>
+</inkscape-extension>
diff --git a/translations/messages_ja_JP.po b/translations/messages_ja_JP.po
index 4cda09da..9a486654 100644
--- a/translations/messages_ja_JP.po
+++ b/translations/messages_ja_JP.po
@@ -248,115 +248,114 @@ msgstr ""
msgid "shape is not valid. This can happen if the border crosses over itself."
msgstr ""
-#: lib/elements/satin_column.py:10
msgid "Satin Column"
msgstr ""
-#: lib/elements/satin_column.py:16
+#: lib/elements/satin_column.py:19
msgid "Custom satin column"
msgstr ""
-#: lib/elements/satin_column.py:22
+#: lib/elements/satin_column.py:25
msgid "\"E\" stitch"
msgstr ""
-#: lib/elements/satin_column.py:32 lib/elements/stroke.py:55
+#: lib/elements/satin_column.py:35 lib/elements/stroke.py:55
msgid "Zig-zag spacing (peak-to-peak)"
msgstr ""
-#: lib/elements/satin_column.py:33
+#: lib/elements/satin_column.py:36
msgid "Peak-to-peak distance between zig-zags."
msgstr ""
-#: lib/elements/satin_column.py:44
+#: lib/elements/satin_column.py:47
msgid "Pull compensation"
msgstr ""
-#: lib/elements/satin_column.py:45
+#: lib/elements/satin_column.py:48
msgid "Satin stitches pull the fabric together, resulting in a column narrower than you draw in Inkscape. This setting expands each pair of needle penetrations outward from the center of the satin column."
msgstr ""
-#: lib/elements/satin_column.py:57
+#: lib/elements/satin_column.py:60
msgid "Contour underlay"
msgstr ""
-#: lib/elements/satin_column.py:57 lib/elements/satin_column.py:64
-#: lib/elements/satin_column.py:73
+#: lib/elements/satin_column.py:60 lib/elements/satin_column.py:67
+#: lib/elements/satin_column.py:76
msgid "Contour Underlay"
msgstr ""
-#: lib/elements/satin_column.py:64 lib/elements/satin_column.py:88
+#: lib/elements/satin_column.py:67 lib/elements/satin_column.py:91
msgid "Stitch length"
msgstr ""
-#: lib/elements/satin_column.py:70
+#: lib/elements/satin_column.py:73
msgid "Contour underlay inset amount"
msgstr ""
-#: lib/elements/satin_column.py:71
+#: lib/elements/satin_column.py:74
msgid "Shrink the outline, to prevent the underlay from showing around the outside of the satin column."
msgstr ""
-#: lib/elements/satin_column.py:81
+#: lib/elements/satin_column.py:84
msgid "Center-walk underlay"
msgstr ""
-#: lib/elements/satin_column.py:81 lib/elements/satin_column.py:88
+#: lib/elements/satin_column.py:84 lib/elements/satin_column.py:91
msgid "Center-Walk Underlay"
msgstr ""
-#: lib/elements/satin_column.py:93
+#: lib/elements/satin_column.py:96
msgid "Zig-zag underlay"
msgstr ""
-#: lib/elements/satin_column.py:93 lib/elements/satin_column.py:102
-#: lib/elements/satin_column.py:113
+#: lib/elements/satin_column.py:96 lib/elements/satin_column.py:105
+#: lib/elements/satin_column.py:116
msgid "Zig-zag Underlay"
msgstr ""
-#: lib/elements/satin_column.py:99
+#: lib/elements/satin_column.py:102
msgid "Zig-Zag spacing (peak-to-peak)"
msgstr ""
-#: lib/elements/satin_column.py:100
+#: lib/elements/satin_column.py:103
msgid "Distance between peaks of the zig-zags."
msgstr ""
-#: lib/elements/satin_column.py:110
+#: lib/elements/satin_column.py:113
msgid "Inset amount"
msgstr ""
-#: lib/elements/satin_column.py:111
+#: lib/elements/satin_column.py:114
msgid "default: half of contour underlay inset"
msgstr ""
-#: lib/elements/satin_column.py:148
+#: lib/elements/satin_column.py:249
#, python-format
msgid "satin column: %(id)s: at least two subpaths required (%(num)d found)"
msgstr ""
-#: lib/elements/satin_column.py:173
+#: lib/elements/satin_column.py:257
msgid "One or more rails crosses itself, and this is not allowed. Please split into multiple satin columns."
msgstr ""
-#: lib/elements/satin_column.py:180
+#: lib/elements/satin_column.py:264
msgid "satin column: One or more of the rungs doesn't intersect both rails."
msgstr ""
-#: lib/elements/satin_column.py:181 lib/elements/satin_column.py:184
+#: lib/elements/satin_column.py:265 lib/elements/satin_column.py:268
msgid "Each rail should intersect both rungs once."
msgstr ""
-#: lib/elements/satin_column.py:183
+#: lib/elements/satin_column.py:267
msgid "satin column: One or more of the rungs intersects the rails more than once."
msgstr ""
-#: lib/elements/satin_column.py:224
+#: lib/elements/satin_column.py:283
#, python-format
msgid "satin column: object %s has a fill (but should not)"
msgstr ""
-#: lib/elements/satin_column.py:228
+#: lib/elements/satin_column.py:287
#, python-format
msgid "satin column: object %(id)s has two paths with an unequal number of points (%(length1)d and %(length2)d)"
msgstr ""
@@ -406,6 +405,10 @@ msgid "Legacy running stitch setting detected!\n\n"
"It looks like you're using a stroke smaller than 0.5 units to indicate a running stitch, which is deprecated. Instead, please set your stroke to be dashed to indicate running stitch. Any kind of dash will work."
msgstr ""
+#: lib/extensions/auto_satin.py:14
+msgid "Please select one or more satin columns to operate on."
+msgstr ""
+
#: lib/extensions/base.py:113
msgid "No embroiderable paths selected."
msgstr ""
@@ -438,7 +441,7 @@ msgid "\n\n"
"Seeing a 'no such option' message? Please restart Inkscape to fix."
msgstr ""
-#: lib/extensions/flip.py:35
+#: lib/extensions/flip.py:25
msgid "Please select one or more satin columns to flip."
msgstr ""
@@ -1162,21 +1165,25 @@ msgstr ""
msgid "Brother Stitch Format"
msgstr ""
-#: templates/convert_to_satin.inx:3
-msgid "Convert Line to Satin"
+#: templates/auto_satin.inx:3
+msgid "Auto Satin"
msgstr ""
#. This is used for the submenu under Extensions -> Ink/Stitch. Translate this
#. to your language's word for its language, e.g. "EspaƱol" for the spanish
#. translation.
-#: templates/convert_to_satin.inx:12 templates/embroider.inx:24
-#: templates/flip.inx:12 templates/global_commands.inx:16
-#: templates/install.inx:12 templates/layer_commands.inx:16
-#: templates/object_commands.inx:15 templates/params.inx:12
-#: templates/print.inx:12 templates/simulate.inx:12
+#: templates/auto_satin.inx:12 templates/convert_to_satin.inx:12
+#: templates/embroider.inx:24 templates/flip.inx:12
+#: templates/global_commands.inx:16 templates/install.inx:12
+#: templates/layer_commands.inx:16 templates/object_commands.inx:15
+#: templates/params.inx:12 templates/print.inx:12 templates/simulate.inx:12
msgid "English"
msgstr ""
+#: templates/convert_to_satin.inx:3
+msgid "Convert Line to Satin"
+msgstr ""
+
#: templates/embroider.inx:3
msgid "Embroider"
msgstr ""