diff options
| -rw-r--r-- | lib/commands.py | 8 | ||||
| -rw-r--r-- | lib/elements/element.py | 6 | ||||
| -rw-r--r-- | lib/elements/satin_column.py | 315 | ||||
| -rw-r--r-- | lib/extensions/__init__.py | 4 | ||||
| -rw-r--r-- | lib/extensions/cut_satin.py | 37 | ||||
| -rw-r--r-- | lib/extensions/flip.py | 13 | ||||
| -rw-r--r-- | lib/stitches/auto_fill.py | 4 | ||||
| -rw-r--r-- | lib/svg/__init__.py | 2 | ||||
| -rw-r--r-- | lib/svg/path.py | 13 | ||||
| -rw-r--r-- | lib/utils/geometry.py | 10 | ||||
| -rw-r--r-- | symbols/inkstitch.svg | 319 | ||||
| -rw-r--r-- | templates/cut_satin.inx | 19 | ||||
| -rw-r--r-- | translations/messages_ja_JP.po | 81 |
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. "Frame Out position").</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 "" |
