From cf2db11d6086727dcc3d6cf97026d3e7a1aa7fe9 Mon Sep 17 00:00:00 2001 From: Lex Neva Date: Wed, 20 Jan 2016 03:04:32 -0500 Subject: add 'Embroider Params' extension to set XML attributes on svg nodes --- embroider_params.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 embroider_params.py (limited to 'embroider_params.py') 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() -- cgit v1.2.3