diff options
| author | Kaalleen <36401965+kaalleen@users.noreply.github.com> | 2023-04-23 07:03:23 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-23 07:03:23 +0200 |
| commit | 2312e43f469de7b1f58fa6d8ec404237ebc3eb50 (patch) | |
| tree | 6ca8c7cb62b0022f33638cab096444608249fff2 /lib | |
| parent | 16f52ca5dad2a7571cd46e4901c3a66637ad8b2c (diff) | |
add pull compensation param to zigzag stitches (#2228)
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/elements/stroke.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/elements/stroke.py b/lib/elements/stroke.py index fd5983d5..8651133d 100644 --- a/lib/elements/stroke.py +++ b/lib/elements/stroke.py @@ -157,6 +157,20 @@ class Stroke(EmbroideryElement): return max(self.get_float_param("zigzag_spacing_mm", 0.4), 0.01) @property + @param('pull_compensation_mm', + _('Pull compensation'), + tooltip=_('Zigzag stitches pull the fabric together, resulting in a column narrower than you draw in Inkscape. ' + 'This widens the zigzag line width.'), + unit='mm', + type='float', + default=0, + select_items=[('stroke_method', 'zigzag_stitch')], + sort_index=6) + @cache + def pull_compensation(self): + return self.get_float_param("pull_compensation_mm", 0) + + @property @param('line_count', _('Number of lines'), tooltip=_('Number of lines from start to finish'), @@ -365,7 +379,7 @@ class Stroke(EmbroideryElement): else: return self.shape.centroid - def simple_satin(self, path, zigzag_spacing, stroke_width): + def simple_satin(self, path, zigzag_spacing, stroke_width, pull_compensation): "zig-zag along the path at the specified spacing and wdith" # `self.zigzag_spacing` is the length for a zig and a zag @@ -377,6 +391,7 @@ class Stroke(EmbroideryElement): # of points in turn, and move perpendicular to them, # alternating left and right. + stroke_width = stroke_width + pull_compensation offset = stroke_width / 2.0 for i in range(len(patch) - 1): @@ -473,7 +488,7 @@ class Stroke(EmbroideryElement): patch.stitches = self.do_bean_repeats(patch.stitches) # simple satin elif self.stroke_method == 'zigzag_stitch': - patch = self.simple_satin(path, self.zigzag_spacing, self.stroke_width) + patch = self.simple_satin(path, self.zigzag_spacing, self.stroke_width, self.pull_compensation) if patch: patches.append(patch) |
