kopia lustrzana https://github.com/inkstitch/inkstitch
				
				
				
			
		
			
				
	
	
		
			47 wiersze
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			47 wiersze
		
	
	
		
			1.7 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
 | |
| 
 | |
| 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')
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     e = EmbroiderParams()
 | |
|     e.affect()
 |