Browse Source

Initial scaling fixes for svg export

grbd 9 years ago
parent
commit
b272329384
2 changed files with 9 additions and 5 deletions
  1. 7 3
      FlatCAMApp.py
  2. 2 2
      camlib.py

+ 7 - 3
FlatCAMApp.py

@@ -1714,11 +1714,15 @@ class App(QtCore.QObject):
         except:
         except:
             return "Could not retrieve object: %s" % obj_name
             return "Could not retrieve object: %s" % obj_name
 
 
-        # TODO needs size of board / dpi information
+        # TODO needs size of board determining
+        # TODO needs seperate colours for CNCPath Export
 
 
         with self.proc_container.new("Exporting SVG") as proc:
         with self.proc_container.new("Exporting SVG") as proc:
-            svg_elem = obj.export_svg()
-            svg_elem = "<svg>" + svg_elem + "</svg>"
+            svg_header = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" '
+            svg_header += 'width="50mm" height="50mm" viewBox="0 -50 50 50">'
+            svg_header += '<g transform="scale(1,-1)">'
+            svg_footer = '</g> </svg>'
+            svg_elem = svg_header + obj.export_svg() + svg_footer
             doc = parse_xml_string(svg_elem)
             doc = parse_xml_string(svg_elem)
             with open(filename, 'w') as fp:
             with open(filename, 'w') as fp:
                 fp.write(doc.toprettyxml())
                 fp.write(doc.toprettyxml())

+ 2 - 2
camlib.py

@@ -875,7 +875,7 @@ class Geometry(object):
 
 
         :return: SVG Element
         :return: SVG Element
         """
         """
-        svg_elem = self.solid_geometry.svg()
+        svg_elem = self.solid_geometry.svg(scale_factor=0.05)
         return svg_elem
         return svg_elem
 
 
 class ApertureMacro:
 class ApertureMacro:
@@ -3328,7 +3328,7 @@ class CNCjob(Geometry):
         :return: SVG Element
         :return: SVG Element
         """
         """
         self.solid_geometry = cascaded_union([geo['geom'] for geo in self.gcode_parsed])
         self.solid_geometry = cascaded_union([geo['geom'] for geo in self.gcode_parsed])
-        svg_elem = self.solid_geometry.svg()
+        svg_elem = self.solid_geometry.svg(scale_factor=0.05)
         return svg_elem
         return svg_elem
 
 
 # def get_bounds(geometry_set):
 # def get_bounds(geometry_set):