summaryrefslogtreecommitdiff
path: root/embroider_params.py
diff options
context:
space:
mode:
authorLex Neva <github@lexneva.name>2016-01-20 03:04:32 -0500
committerLex Neva <github@lexneva.name>2016-01-20 03:04:32 -0500
commitcf2db11d6086727dcc3d6cf97026d3e7a1aa7fe9 (patch)
tree5c29b1c4e7949b11de9b5f3534818fd7fd1356a2 /embroider_params.py
parentacd9db29d3bbece1d0977e7da756cad3f5c5fff8 (diff)
add 'Embroider Params' extension to set XML attributes on svg nodes
Diffstat (limited to 'embroider_params.py')
-rw-r--r--embroider_params.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/embroider_params.py b/embroider_params.py
new file mode 100644
index 00000000..648c9744
--- /dev/null
+++ b/embroider_params.py
@@ -0,0 +1,44 @@
+#!/usr/bin/python
+#
+# Set embroidery parameter attributes on all selected objects. If an option
+# value is blank, the parameter is created as blank on all objects that don't
+# already have it. If an option value is given, any existing node parameter
+# values are overwritten on all selected objects.
+
+import sys
+sys.path.append("/usr/share/inkscape/extensions")
+import os
+import inkex
+
+
+class EmbroiderParams(inkex.Effect):
+ def __init__(self, *args, **kwargs):
+ inkex.Effect.__init__(self)
+
+ self.params = ["zigzag_spacing",
+ "running_stitch_length",
+ "row_spacing",
+ "max_stitch_length",
+ "repeats",
+ "angle",
+ "hatching",
+ ]
+
+ for param in self.params:
+ self.OptionParser.add_option("--%s" % param, default="")
+
+ def effect(self):
+ for node in self.selected.itervalues():
+ for param in self.params:
+ value = getattr(self.options, param).strip()
+ param = "embroider_" + param
+
+ if node.get(param) is not None and not value:
+ # only overwrite existing params if they gave a value
+ continue
+ else:
+ node.set(param, value)
+
+if __name__ == '__main__':
+ e = EmbroiderParams()
+ e.affect()