diff --git a/extensions/fablabchemnitz/rounder.inx b/extensions/fablabchemnitz/rounder.inx
index f4a55a31..7debe3ea 100644
--- a/extensions/fablabchemnitz/rounder.inx
+++ b/extensions/fablabchemnitz/rounder.inx
@@ -13,11 +13,14 @@
false
false
false
+
+
+
all
-
+
diff --git a/extensions/fablabchemnitz/rounder.py b/extensions/fablabchemnitz/rounder.py
index 667f2fcc..1a9965db 100644
--- a/extensions/fablabchemnitz/rounder.py
+++ b/extensions/fablabchemnitz/rounder.py
@@ -30,8 +30,8 @@ class svgRounder(inkex.EffectExtension):
def add_arguments(self, pars):
pars.add_argument("--precision", type=int, default=3, help="Precision")
- pars.add_argument("--ctrl", type=inkex.Boolean, default = False, help="Round node handles")
- pars.add_argument("--along", type=inkex.Boolean, default = True, help="Move handles following node movement")
+ pars.add_argument("--ctrl", type=inkex.Boolean, default = False, help="Round element handles")
+ pars.add_argument("--along", type=inkex.Boolean, default = True, help="Move handles following element movement")
pars.add_argument("--half", type=inkex.Boolean, default = False, help="Allow round to half if nearest")
pars.add_argument("--paths", type=inkex.Boolean, default = True, help="Affect to paths")
pars.add_argument("--widthheight", type=inkex.Boolean, default = False, help="Affect to width and height of objects")
@@ -55,9 +55,9 @@ class svgRounder(inkex.EffectExtension):
y = self.roundFloat(p[1])
return [float(x) - p[0], float(y) - p[1]]
- def path_round_it(self,node):
- if node.tag == inkex.addNS('path','svg'):
- d = node.get('d')
+ def path_round_it(self,element):
+ if element.tag == inkex.addNS('path','svg'):
+ d = element.get('d')
p = CubicSuperPath(d)
for subpath in p:
for csp in subpath:
@@ -77,9 +77,9 @@ class svgRounder(inkex.EffectExtension):
delta = self.roundit(csp[2])
csp[2][0]+=delta[0]
csp[2][1]+=delta[1]
- node.set('d',str(Path(p)))
- elif node.tag == inkex.addNS('g','svg'):
- for e in node:
+ element.set('d',str(Path(p)))
+ elif element.tag == inkex.addNS('g','svg'):
+ for e in element:
self.path_round_it(e)
def roundStroke(self,matchobj):
@@ -92,69 +92,74 @@ class svgRounder(inkex.EffectExtension):
return matchobj.group(1) + self.roundFloat(float( matchobj.group(2))) + matchobj.group(3);
- def stroke_round_it(self, node):
- if node.tag == inkex.addNS('g','svg'):
- for e in node:
+ def stroke_round_it(self, element):
+ if element.tag == inkex.addNS('g','svg'):
+ for e in element:
self.stroke_round_it(e)
else:
- style = node.get('style')
+ style = element.get('style')
if style:
style = re.sub('stroke-width:(.*?)(;|$)',self.roundStroke, style)
- node.set('style',style)
- def opacity_round_it(self, node, typeOpacity):
- if node.tag == inkex.addNS('g','svg'):
- for e in node:
+ element.set('style',style)
+ def opacity_round_it(self, element, typeOpacity):
+ if element.tag == inkex.addNS('g','svg'):
+ for e in element:
self.opacity_round_it(e, typeOpacity)
else:
- style = node.get('style')
+ style = element.get('style')
if style:
style = re.sub('(^|;)(' + typeOpacity + ':)(.*?)(;|$)',self.roundOpacity, style)
- node.set('style',style)
+ element.set('style',style)
- def widthheight_round_it(self, node):
- if node.tag == inkex.addNS('g','svg'):
- for e in node:
+ def widthheight_round_it(self, element):
+ if element.tag == inkex.addNS('g','svg'):
+ for e in element:
self.widthheight_round_it(e)
else:
- width = node.get('width')
+ width = element.get('width')
if width:
width = re.sub('^(\-|)([0-9]+\.[0-9]+)(.*?)$',self.roundWHXY, width)
- node.set('width',width)
- height = node.get('height')
+ element.set('width',width)
+ height = element.get('height')
if height:
height = re.sub('^(\-|)([0-9]+\.[0-9]+)(.*?)$',self.roundWHXY, height)
- node.set('height',height)
+ element.set('height',height)
- def position_round_it(self, node):
- if node.tag == inkex.addNS('g','svg'):
- for e in node:
+ def position_round_it(self, element):
+ if element.tag == inkex.addNS('g','svg'):
+ for e in element:
self.position_round_it(e)
else:
- x = node.get('x')
+ x = element.get('x')
if x:
x = re.sub('^(\-|)([0-9]+\.[0-9]+)(.*?)$',self.roundWHXY, x)
- node.set('x', x)
- y = node.get('y')
+ element.set('x', x)
+ y = element.get('y')
if y:
y = re.sub('^(\-|)([0-9]+\.[0-9]+)(.*?)$',self.roundWHXY, y)
- node.set('y', y)
+ element.set('y', y)
def effect(self):
- for id, node in self.svg.selected.items():
- if self.options.paths:
- self.path_round_it(node)
- if self.options.strokewidth:
- self.stroke_round_it(node)
- if self.options.widthheight:
- self.widthheight_round_it(node)
- if self.options.position:
- self.position_round_it(node)
- if self.options.opacity:
- self.opacity_round_it(node, "opacity")
- if self.options.strokeopacity:
- self.opacity_round_it(node, "stroke-opacity")
- if self.options.fillopacity:
- self.opacity_round_it(node, "fill-opacity")
+
+ if len(self.svg.selected) > 0:
+ for element in self.svg.selection.values():
+ if self.options.paths:
+ self.path_round_it(element)
+ if self.options.strokewidth:
+ self.stroke_round_it(element)
+ if self.options.widthheight:
+ self.widthheight_round_it(element)
+ if self.options.position:
+ self.position_round_it(element)
+ if self.options.opacity:
+ self.opacity_round_it(element, "opacity")
+ if self.options.strokeopacity:
+ self.opacity_round_it(element, "stroke-opacity")
+ if self.options.fillopacity:
+ self.opacity_round_it(element, "fill-opacity")
+ else:
+ self.msg('Please select some paths first.')
+ return
if __name__ == '__main__':
svgRounder().run()
\ No newline at end of file