Просмотр исходного кода

Minor fix to "millholes" shell docs. Added get_exterior() method to Geometry.

Juan Pablo Caram 10 лет назад
Родитель
Сommit
4110940d49
2 измененных файлов с 25 добавлено и 1 удалено
  1. 1 1
      FlatCAMApp.py
  2. 24 0
      camlib.py

+ 1 - 1
FlatCAMApp.py

@@ -2541,7 +2541,7 @@ class App(QtCore.QObject):
             'millholes': {
                 'fcn': drillmillgeometry,
                 'help': "Create Geometry Object for milling holes from Excellon.\n" +
-                        "> drillmillgeometry <name> -tools <str> -tooldia <float> -outname <str> \n" +
+                        "> millholes <name> -tools <str> -tooldia <float> -outname <str> \n" +
                         "   name: Name of the Excellon Object\n" +
                         "   tools: Comma separated indexes of tools (example: 1,3 or 2)\n" +
                         "   tooldia: Diameter of the milling tool (example: 0.1)\n" +

+ 24 - 0
camlib.py

@@ -172,6 +172,30 @@ class Geometry(object):
 
         return None
 
+    def get_exteriors(self, geometry=None):
+        """
+        Returns all exteriors of polygons in geometry.
+
+        :return:
+        """
+
+        exteriors = []
+
+        if geometry is None:
+            geometry = self.solid_geometry
+
+        ## If iterable, expand recursively.
+        try:
+            for geo in geometry:
+                exteriors.extend(self.get_exteriors(geometry=geo))
+
+        ## Not iterable, get the exterior if polygon.
+        except TypeError:
+            if type(geometry) == Polygon:
+                exteriors.append(geometry.exterior)
+
+        return exteriors
+
     def flatten(self, geometry=None, reset=True, pathonly=False):
         """
         Creates a list of non-iterable linear geometry objects.