From 6cdf990c76226c1dbbdbe350857952d5c3c45e8f Mon Sep 17 00:00:00 2001 From: Lex Neva Date: Sun, 6 Nov 2016 19:28:17 -0500 Subject: add fill underlay settings to embroider_params and embroider_update extensions --- embroider.py | 20 ++++++++++---------- embroider_params.inx | 6 +++++- embroider_params.py | 4 ++++ embroider_update.py | 7 +++++++ 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/embroider.py b/embroider.py index 21c5235b..5aa77940 100644 --- a/embroider.py +++ b/embroider.py @@ -478,20 +478,20 @@ class AutoFill(Fill): return self.get_float_param("running_stitch_length_mm") @property - def underlay(self): - return self.get_boolean_param("underlay") + def fill_underlay(self): + return self.get_boolean_param("fill_underlay") @property - def underlay_angle(self): - return math.radians(self.get_float_param("underlay_angle", self.angle + 90.0)) + def fill_underlay_angle(self): + return math.radians(self.get_float_param("fill_underlay_angle", self.angle + 90.0)) @property - def underlay_row_spacing(self): - return self.get_float_param("underlay_row_spacing", self.row_spacing * 3) + def fill_underlay_row_spacing(self): + return self.get_float_param("fill_underlay_row_spacing_mm", self.row_spacing * 3) @property - def underlay_max_stitch_length(self): - return self.get_float_param("underlay_max_stitch_length", self.max_stitch_length) + def fill_underlay_max_stitch_length(self): + return self.get_float_param("fill_underlay_max_stitch_length_mm", self.max_stitch_length) def is_same_run(self, segment1, segment2): if shgeo.Point(segment1[0]).distance(shgeo.Point(segment2[0])) > self.max_stitch_length: @@ -590,8 +590,8 @@ class AutoFill(Fill): else: last_stitch = last_patch.stitches[-1] - if self.underlay: - patches.extend(self.auto_fill(self.underlay_angle, self.underlay_row_spacing, self.underlay_max_stitch_length, last_stitch)) + if self.fill_underlay: + patches.extend(self.auto_fill(self.fill_underlay_angle, self.fill_underlay_row_spacing, self.fill_underlay_max_stitch_length, last_stitch)) last_stitch = patches[-1].stitches[-1] patches.extend(self.auto_fill(self.angle, self.row_spacing, self.max_stitch_length, last_stitch)) diff --git a/embroider_params.inx b/embroider_params.inx index 6b617f45..0f26749e 100644 --- a/embroider_params.inx +++ b/embroider_params.inx @@ -9,7 +9,7 @@ - + @@ -22,6 +22,10 @@ + + + + all diff --git a/embroider_params.py b/embroider_params.py index a2ec0960..f717cb1d 100644 --- a/embroider_params.py +++ b/embroider_params.py @@ -32,6 +32,10 @@ class EmbroiderParams(inkex.Effect): "center_walk_underlay_stitch_length_mm", "zigzag_underlay", "zigzag_underlay_inset_mm", + "fill_underlay", + "fill_underlay_angle", + "fill_underlay_row_spacing_mm", + "fill_underlay_max_stitch_length_mm", ] for param in self.params: diff --git a/embroider_update.py b/embroider_update.py index 5597cdcc..9de39a48 100644 --- a/embroider_update.py +++ b/embroider_update.py @@ -7,6 +7,7 @@ import sys sys.path.append("/usr/share/inkscape/extensions") import os import inkex +import simplestyle PIXELS_PER_MM = 10 @@ -41,6 +42,12 @@ class EmbroiderParams(inkex.Effect): if 'embroider_zigzag_underlay_spacing_mm' in node.attrib: node.set('embroider_zigzag_underlay', 'yes') + style = simplestyle.parseStyle(node.get('style')) + + if style.get('fill', 'none') != 'none' and \ + 'embroider_auto_fill' not in node.attrib: + node.set('embroider_auto_fill', 'no') + if __name__ == '__main__': e = EmbroiderParams() e.affect() -- cgit v1.2.3