kopia lustrzana https://github.com/inkstitch/inkstitch
				
				
				
			
		
			
				
	
	
		
			56 wiersze
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			56 wiersze
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
#!/usr/bin/python
 | 
						|
#
 | 
						|
# Update embroidery parameters stored in XML attributes from old to new
 | 
						|
# format.
 | 
						|
 | 
						|
import sys
 | 
						|
sys.path.append("/usr/share/inkscape/extensions")
 | 
						|
import os
 | 
						|
import inkex
 | 
						|
import simplestyle
 | 
						|
 | 
						|
PIXELS_PER_MM = 10
 | 
						|
 | 
						|
 | 
						|
class EmbroiderParams(inkex.Effect):
 | 
						|
 | 
						|
    def __init__(self, *args, **kwargs):
 | 
						|
        inkex.Effect.__init__(self)
 | 
						|
 | 
						|
        self.mapping = {"zigzag_spacing":                "zigzag_spacing_mm",
 | 
						|
                        "row_spacing":                   "row_spacing_mm",
 | 
						|
                        "pull_compensation":             "pull_compensation_mm",
 | 
						|
                        "max_stitch_length":             "max_stitch_length_mm",
 | 
						|
                        "satin_underlay":                "contour_underlay",
 | 
						|
                        "satin_underlay_inset":          "contour_underlay_inset_mm",
 | 
						|
                        "satin_zigzag_underlay_spacing": "zigzag_underlay_spacing_mm",
 | 
						|
                        "satin_center_walk":             "center_walk_underlay",
 | 
						|
                        "stitch_length":                 "running_stitch_length_mm",
 | 
						|
                        }
 | 
						|
 | 
						|
    def effect(self):
 | 
						|
        for node in self.document.getroot().iter():
 | 
						|
            for old, new in self.mapping.iteritems():
 | 
						|
                old = "embroider_%s" % old
 | 
						|
                new = "embroider_%s" % new
 | 
						|
 | 
						|
                value = node.attrib.pop(old, None)
 | 
						|
                if value:
 | 
						|
                    if new.endswith('_mm') and value.strip():
 | 
						|
                        value = str(float(value) / PIXELS_PER_MM)
 | 
						|
 | 
						|
                    node.set(new, value)
 | 
						|
 | 
						|
            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()
 |