diff options
| -rw-r--r-- | embroider.py | 20 | ||||
| -rw-r--r-- | embroider_params.inx | 6 | ||||
| -rw-r--r-- | embroider_params.py | 4 | ||||
| -rw-r--r-- | 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 @@ <param name="row_spacing_mm" type="string" _gui-text="Row spacing (mm)"></param> <param name="max_stitch_length_mm" type="string" _gui-text="Maximum stitch length for fills (mm)"></param> <param name="repeats" type="string" _gui-text="Repeats (stroke only)"></param> - <param name="angle" type="string" _gui-text="Angle for lines in fills"></param> + <param name="angle" type="string" _gui-text="Angle for lines in fills (degrees)"></param> <param name="pull_compensation_mm" type="string" _gui-text="Pull compensation for satin column (mm)"></param> <param name="flip" type="string" _gui-text="Flip fill? (yes/no)"></param> <param name="satin_column" type="string" _gui-text="Satin Column? (yes/no)"></param> @@ -22,6 +22,10 @@ <param name="zigzag_spacing_mm" type="string" _gui-text="Zigzag underlay spacing (mm)"></param> <param name="zigzag_underlay_inset_mm" type="string" _gui-text="Inset for zigzag underlay (mm)"></param> <param name="stroke_first" type="string" _gui-text="Stitch stroke before fill? (yes/no)"></param> + <param name="fill_underlay" type="string" _gui-text="Underlay for fill stitch? (yes/no)"></param> + <param name="fill_underlay_angle" type="string" _gui-text="Angle for lines in fill underlay (degrees)"></param> + <param name="fill_underlay_row_spacing_mm" type="string" _gui-text="Row spacing for fill underlay (mm)"></param> + <param name="fill_underlay_max_stitch_length_mm" type="string" _gui-text="Maximum stitch length for fill underlay (mm)"></param> <effect> <object-type>all</object-type> <effects-menu> 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() |
