diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..5edeeae78 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "pyembroidery"] + path = pyembroidery + url = https://github.com/inkstitch/pyembroidery diff --git a/lib/extensions/convert_to_satin.py b/lib/extensions/convert_to_satin.py index 1eae69b1b..dd5a9bc28 100644 --- a/lib/extensions/convert_to_satin.py +++ b/lib/extensions/convert_to_satin.py @@ -3,7 +3,6 @@ from shapely import geometry as shgeo from itertools import chain, groupby import numpy from numpy import diff, sign, setdiff1d -from scipy.signal import argrelmin import math from copy import deepcopy diff --git a/messages.po b/messages.po index d2fefa2ae..72f7e6d03 100644 --- a/messages.po +++ b/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2018-08-09 14:52-0400\n" +"POT-Creation-Date: 2018-08-16 15:39-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,40 +25,70 @@ msgstr "" msgid "Automatically routed fill stitching" msgstr "" -#: lib/elements/auto_fill.py:33 +#: lib/elements/auto_fill.py:34 msgid "Running stitch length (traversal between sections)" msgstr "" -#: lib/elements/auto_fill.py:38 -msgid "Underlay" -msgstr "" - -#: lib/elements/auto_fill.py:38 lib/elements/auto_fill.py:43 -#: lib/elements/auto_fill.py:54 lib/elements/auto_fill.py:60 -#: lib/elements/auto_fill.py:70 -msgid "AutoFill Underlay" +#: lib/elements/auto_fill.py:35 +msgid "" +"Length of stitches around the outline of the fill region used when moving" +" from section to section." msgstr "" #: lib/elements/auto_fill.py:43 -msgid "Fill angle (default: fill angle + 90 deg)" +msgid "Underlay" msgstr "" -#: lib/elements/auto_fill.py:54 -msgid "Row spacing (default: 3x fill row spacing)" +#: lib/elements/auto_fill.py:43 lib/elements/auto_fill.py:52 +#: lib/elements/auto_fill.py:68 lib/elements/auto_fill.py:79 +#: lib/elements/auto_fill.py:89 +msgid "AutoFill Underlay" msgstr "" -#: lib/elements/auto_fill.py:60 +#: lib/elements/auto_fill.py:49 +msgid "Fill angle" +msgstr "" + +#: lib/elements/auto_fill.py:50 +msgid "default: fill angle + 90 deg" +msgstr "" + +#: lib/elements/auto_fill.py:65 +msgid "Row spacing" +msgstr "" + +#: lib/elements/auto_fill.py:66 +msgid "default: 3x fill row spacing" +msgstr "" + +#: lib/elements/auto_fill.py:76 msgid "Max stitch length" msgstr "" -#: lib/elements/auto_fill.py:67 +#: lib/elements/auto_fill.py:77 +msgid "default: equal to fill max stitch length" +msgstr "" + +#: lib/elements/auto_fill.py:86 msgid "Inset" msgstr "" -#: lib/elements/auto_fill.py:78 +#: lib/elements/auto_fill.py:87 +msgid "" +"Shrink the shape before doing underlay, to prevent underlay from showing " +"around the outside of the fill." +msgstr "" + +#: lib/elements/auto_fill.py:97 msgid "Expand" msgstr "" +#: lib/elements/auto_fill.py:98 +msgid "" +"Expand the shape before fill stitching, to compensate for gaps between " +"shapes." +msgstr "" + #: lib/elements/element.py:232 #, python-format msgid "%(id)s has more than one command of type '%(command)s' linked to it" @@ -68,31 +98,63 @@ msgstr "" msgid "Fill" msgstr "" -#: lib/elements/fill.py:18 +#: lib/elements/fill.py:19 msgid "Manually routed fill stitching" msgstr "" -#: lib/elements/fill.py:23 +#: lib/elements/fill.py:20 +msgid "AutoFill is the default method for generating fill stitching." +msgstr "" + +#: lib/elements/fill.py:29 msgid "Angle of lines of stitches" msgstr "" -#: lib/elements/fill.py:34 +#: lib/elements/fill.py:30 +msgid "" +"The angle increases in a counter-clockwise direction. 0 is horizontal. " +"Negative angles are allowed." +msgstr "" + +#: lib/elements/fill.py:45 msgid "Flip fill (start right-to-left)" msgstr "" -#: lib/elements/fill.py:39 +#: lib/elements/fill.py:46 +msgid "" +"The flip option can help you with routing your stitch path. When you " +"enable flip, stitching goes from right-to-left instead of left-to-right." +msgstr "" + +#: lib/elements/fill.py:54 msgid "Spacing between rows" msgstr "" -#: lib/elements/fill.py:48 +#: lib/elements/fill.py:55 +msgid "Distance between rows of stitches." +msgstr "" + +#: lib/elements/fill.py:68 msgid "Maximum fill stitch length" msgstr "" -#: lib/elements/fill.py:53 +#: lib/elements/fill.py:69 +msgid "" +"The length of each stitch in a row. Shorter stitch may be used at the " +"start or end of a row." +msgstr "" + +#: lib/elements/fill.py:78 msgid "Stagger rows this many times before repeating" msgstr "" -#: lib/elements/fill.py:84 +#: lib/elements/fill.py:79 +msgid "" +"Setting this dictates how many rows apart the stitches will be before " +"they fall in the same column position." +msgstr "" + +#: lib/elements/fill.py:112 #, python-format msgid "" "shape %s is so small that it cannot be filled with stitches. Please make" @@ -111,87 +173,112 @@ msgstr "" msgid "\"E\" stitch" msgstr "" -#: lib/elements/satin_column.py:31 lib/elements/stroke.py:45 +#: lib/elements/satin_column.py:32 lib/elements/stroke.py:52 msgid "Zig-zag spacing (peak-to-peak)" msgstr "" -#: lib/elements/satin_column.py:37 +#: lib/elements/satin_column.py:33 +msgid "Peak-to-peak distance between zig-zags." +msgstr "" + +#: lib/elements/satin_column.py:43 msgid "Pull compensation" msgstr "" -#: lib/elements/satin_column.py:45 +#: lib/elements/satin_column.py:44 +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:55 msgid "Contour underlay" msgstr "" -#: lib/elements/satin_column.py:45 lib/elements/satin_column.py:52 -#: lib/elements/satin_column.py:57 +#: lib/elements/satin_column.py:55 lib/elements/satin_column.py:62 +#: lib/elements/satin_column.py:71 msgid "Contour Underlay" msgstr "" -#: lib/elements/satin_column.py:52 lib/elements/satin_column.py:70 +#: lib/elements/satin_column.py:62 lib/elements/satin_column.py:86 msgid "Stitch length" msgstr "" -#: lib/elements/satin_column.py:57 +#: lib/elements/satin_column.py:68 msgid "Contour underlay inset amount" msgstr "" -#: lib/elements/satin_column.py:63 +#: lib/elements/satin_column.py:69 +msgid "" +"Shrink the outline, to prevent the underlay from showing around the " +"outside of the satin column." +msgstr "" + +#: lib/elements/satin_column.py:79 msgid "Center-walk underlay" msgstr "" -#: lib/elements/satin_column.py:63 lib/elements/satin_column.py:70 +#: lib/elements/satin_column.py:79 lib/elements/satin_column.py:86 msgid "Center-Walk Underlay" msgstr "" -#: lib/elements/satin_column.py:75 +#: lib/elements/satin_column.py:91 msgid "Zig-zag underlay" msgstr "" -#: lib/elements/satin_column.py:75 lib/elements/satin_column.py:80 -#: lib/elements/satin_column.py:85 +#: lib/elements/satin_column.py:91 lib/elements/satin_column.py:100 +#: lib/elements/satin_column.py:111 msgid "Zig-zag Underlay" msgstr "" -#: lib/elements/satin_column.py:80 +#: lib/elements/satin_column.py:97 msgid "Zig-Zag spacing (peak-to-peak)" msgstr "" -#: lib/elements/satin_column.py:85 -msgid "Inset amount (default: half of contour underlay inset)" +#: lib/elements/satin_column.py:98 +msgid "Distance between peaks of the zig-zags." msgstr "" -#: lib/elements/satin_column.py:118 +#: lib/elements/satin_column.py:108 +msgid "Inset amount" +msgstr "" + +#: lib/elements/satin_column.py:109 +msgid "default: half of contour underlay inset" +msgstr "" + +#: lib/elements/satin_column.py:146 #, python-format msgid "satin column: %(id)s: at least two subpaths required (%(num)d found)" msgstr "" -#: lib/elements/satin_column.py:144 +#: lib/elements/satin_column.py:172 msgid "" "One or more rails crosses itself, and this is not allowed. Please split " "into multiple satin columns." msgstr "" -#: lib/elements/satin_column.py:151 +#: lib/elements/satin_column.py:179 msgid "satin column: One or more of the rungs doesn't intersect both rails." msgstr "" -#: lib/elements/satin_column.py:151 lib/elements/satin_column.py:153 +#: lib/elements/satin_column.py:179 lib/elements/satin_column.py:181 msgid "Each rail should intersect both rungs once." msgstr "" -#: lib/elements/satin_column.py:153 +#: lib/elements/satin_column.py:181 msgid "" "satin column: One or more of the rungs intersects the rails more than " "once." msgstr "" -#: lib/elements/satin_column.py:194 +#: lib/elements/satin_column.py:222 #, python-format msgid "satin column: object %s has a fill (but should not)" msgstr "" -#: lib/elements/satin_column.py:198 +#: lib/elements/satin_column.py:226 #, python-format msgid "" "satin column: object %(id)s has two paths with an unequal number of " @@ -202,36 +289,48 @@ msgstr "" msgid "Satin stitch along paths" msgstr "" -#: lib/elements/stroke.py:30 +#: lib/elements/stroke.py:31 msgid "Running stitch length" msgstr "" -#: lib/elements/stroke.py:36 +#: lib/elements/stroke.py:32 +msgid "Length of stitches in running stitch mode." +msgstr "" + +#: lib/elements/stroke.py:42 msgid "Bean stitch number of repeats" msgstr "" -#: lib/elements/stroke.py:37 +#: lib/elements/stroke.py:43 msgid "" "Backtrack each stitch this many times. A value of 1 would triple each " "stitch (forward, back, forward). A value of 2 would quintuple each " "stitch, etc. Only applies to running stitch." msgstr "" -#: lib/elements/stroke.py:51 +#: lib/elements/stroke.py:53 +msgid "Length of stitches in zig-zag mode." +msgstr "" + +#: lib/elements/stroke.py:64 msgid "Repeats" msgstr "" -#: lib/elements/stroke.py:71 +#: lib/elements/stroke.py:65 +msgid "Defines how many times to run down and back along the path." +msgstr "" + +#: lib/elements/stroke.py:89 msgid "Manual stitch placement" msgstr "" -#: lib/elements/stroke.py:71 +#: lib/elements/stroke.py:90 msgid "" "Stitch every node in the path. Stitch length and zig-zag spacing are " "ignored." msgstr "" -#: lib/elements/stroke.py:102 +#: lib/elements/stroke.py:124 msgid "" "Legacy running stitch setting detected!\n" "\n" @@ -260,17 +359,17 @@ msgstr "" msgid "Please choose one or more commands to attach." msgstr "" -#: lib/extensions/convert_to_satin.py:29 +#: lib/extensions/convert_to_satin.py:28 msgid "Please select at least one line to convert to a satin column." msgstr "" #. : Convert To Satin extension, user selected one or more objects that were #. not lines. -#: lib/extensions/convert_to_satin.py:34 +#: lib/extensions/convert_to_satin.py:33 msgid "Only simple lines may be converted to satin columns." msgstr "" -#: lib/extensions/convert_to_satin.py:55 +#: lib/extensions/convert_to_satin.py:54 #, python-format msgid "" "Cannot convert %s to a satin column because it intersects itself. Try " diff --git a/pyembroidery b/pyembroidery new file mode 160000 index 000000000..fe7609dc5 --- /dev/null +++ b/pyembroidery @@ -0,0 +1 @@ +Subproject commit fe7609dc59efb15f6a27d0ff7d82ac2ce7f6be53 diff --git a/requirements.txt b/requirements.txt index 8d487a2cb..8fbea7cd9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -pyembroidery >=1.2.12, <1.3.0 +./pyembroidery backports.functools_lru_cache wxPython networkx