Przeglądaj źródła

Additional fixes for export size and flattening the geometry list

grbd 9 lat temu
rodzic
commit
ee43d8b920
2 zmienionych plików z 8 dodań i 15 usunięć
  1. 7 12
      FlatCAMApp.py
  2. 1 3
      camlib.py

+ 7 - 12
FlatCAMApp.py

@@ -1730,22 +1730,17 @@ class App(QtCore.QObject):
 
 
             # Sometimes obj.solid_geometry can be a list instead of a Shapely class
             # Sometimes obj.solid_geometry can be a list instead of a Shapely class
             # Make sure we see it as a Shapely Geometry class
             # Make sure we see it as a Shapely Geometry class
-            geom = obj.solid_geometry
-            if type(obj.solid_geometry) is list:
-                geom = [cascaded_union(obj.solid_geometry)][0]
-
+            geom = cascaded_union(obj.flatten())
 
 
             # Determine bounding area for svg export
             # Determine bounding area for svg export
-            svgwidth = geom.bounds[2] - geom.bounds[0]
-            svgheight = geom.bounds[3] - geom.bounds[1]
-            minx = geom.bounds[0]
-            miny = geom.bounds[1] - svgheight
+            bounds = obj.bounds()
+            size = obj.size()
 
 
             # Convert everything to strings for use in the xml doc
             # Convert everything to strings for use in the xml doc
-            svgwidth = str(svgwidth)
-            svgheight = str(svgheight)
-            minx = str(minx)
-            miny = str(miny)
+            svgwidth = str(size[0])
+            svgheight = str(size[1])
+            minx = str(bounds[0])
+            miny = str(bounds[1] - size[1])
             uom = obj.units.lower()
             uom = obj.units.lower()
 
 
             # Add a SVG Header and footer to the svg output from shapely
             # Add a SVG Header and footer to the svg output from shapely

+ 1 - 3
camlib.py

@@ -877,9 +877,7 @@ class Geometry(object):
         """
         """
         # Sometimes self.solid_geometry can be a list instead of a Shapely class
         # Sometimes self.solid_geometry can be a list instead of a Shapely class
         # Make sure we see it as a Shapely Geometry class
         # Make sure we see it as a Shapely Geometry class
-        geom = self.solid_geometry
-        if type(self.solid_geometry) is list:
-            geom = [cascaded_union(self.solid_geometry)][0]
+        geom = cascaded_union(self.flatten())
 
 
         # Convert to a SVG
         # Convert to a SVG
         svg_elem = geom.svg(scale_factor=0.05)
         svg_elem = geom.svg(scale_factor=0.05)