summaryrefslogtreecommitdiff
path: root/lib/elements/satin_column.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/elements/satin_column.py')
-rw-r--r--lib/elements/satin_column.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/elements/satin_column.py b/lib/elements/satin_column.py
index 2cb0529d..1c236055 100644
--- a/lib/elements/satin_column.py
+++ b/lib/elements/satin_column.py
@@ -142,6 +142,7 @@ class SatinColumn(EmbroideryElement):
unit='% (each side)',
type='float',
default=0)
+ @cache
def pull_compensation_percent(self):
# pull compensation as a percentage of the width
return self.get_split_float_param("pull_compensation_percent", (0, 0))
@@ -156,6 +157,7 @@ class SatinColumn(EmbroideryElement):
unit='mm (each side)',
type='float',
default=0)
+ @cache
def pull_compensation_px(self):
# In satin stitch, the stitches have a tendency to pull together and
# narrow the entire column. We can compensate for this by stitching
@@ -163,6 +165,17 @@ class SatinColumn(EmbroideryElement):
return self.get_split_mm_param_as_px("pull_compensation_mm", (0, 0))
@property
+ @param(
+ 'swap_satin_rails',
+ _('Swap rails'),
+ tooltip=_('Swaps the first and second rails of the satin column, '
+ 'effecting which side the thread finished on as well as any sided properties'),
+ type='boolean',
+ default='false')
+ def swap_rails(self):
+ return self.get_boolean_param('swap_satin_rails', False)
+
+ @property
@param('contour_underlay', _('Contour underlay'), type='toggle', group=_('Contour Underlay'))
def contour_underlay(self):
# "Contour underlay" is stitching just inside the rectangular shape
@@ -181,6 +194,7 @@ class SatinColumn(EmbroideryElement):
group=_('Contour Underlay'),
unit='mm (each side)', type='float', default=0.4,
sort_index=2)
+ @cache
def contour_underlay_inset_px(self):
# how far inside the edge of the column to stitch the underlay
return self.get_split_mm_param_as_px("contour_underlay_inset_mm", (0.4, 0.4))
@@ -193,6 +207,7 @@ class SatinColumn(EmbroideryElement):
group=_('Contour Underlay'),
unit='% (each side)', type='float', default=0,
sort_index=3)
+ @cache
def contour_underlay_inset_percent(self):
# how far inside the edge of the column to stitch the underlay
return self.get_split_float_param("contour_underlay_inset_percent", (0, 0))
@@ -274,6 +289,7 @@ class SatinColumn(EmbroideryElement):
group=_('Zig-zag Underlay'),
type='float',
default="")
+ @cache
def zigzag_underlay_inset_percent(self):
default = self.contour_underlay_inset_percent * 0.5
return self.get_split_float_param("zigzag_underlay_inset_percent", default)
@@ -306,7 +322,11 @@ class SatinColumn(EmbroideryElement):
@cache
def rails(self):
"""The rails in order, as point lists"""
- return [subpath for i, subpath in enumerate(self.csp) if i in self.rail_indices]
+ rails = [subpath for i, subpath in enumerate(self.csp) if i in self.rail_indices]
+ if len(rails) == 2 and self.swap_rails:
+ return [rails[1], rails[0]]
+ else:
+ return rails
@property
@cache