Преглед изворни кода

Added "exteriors" shell command.

Juan Pablo Caram пре 10 година
родитељ
комит
a9ddcbbe5c
1 измењених фајлова са 43 додато и 0 уклоњено
  1. 43 0
      FlatCAMApp.py

+ 43 - 0
FlatCAMApp.py

@@ -2173,6 +2173,42 @@ class App(QtCore.QObject):
 
             return 'Ok'
 
+        def exteriors(obj_name, *args):
+            a, kwa = h(*args)
+            types = {}
+
+            for key in kwa:
+                if key not in types:
+                    return 'Unknown parameter: %s' % key
+                kwa[key] = types[key](kwa[key])
+
+            try:
+                obj = self.collection.get_by_name(str(obj_name))
+            except:
+                return "Could not retrieve object: %s" % obj_name
+
+            if obj is None:
+                return "Object not found: %s" % obj_name
+
+            assert isinstance(obj, Geometry)
+
+            obj_exteriors = obj.get_exteriors()
+
+            def geo_init(geo_obj, app_obj):
+                geo_obj.solid_geometry = obj_exteriors
+
+            if 'outname' in kwa:
+                outname = kwa['outname']
+            else:
+                outname = obj_name + ".exteriors"
+
+            try:
+                self.new_object('geometry', outname, geo_init)
+            except Exception as e:
+                return "Failed: %s" % str(e)
+
+            return 'Ok'
+
         def isolate(name, *args):
             a, kwa = h(*args)
             types = {'dia': float,
@@ -2525,6 +2561,13 @@ class App(QtCore.QObject):
                         "   box: Name of object which act as box (cutout for example)\n" +
                         "   axis: Axis mirror over X or Y"
             },
+            'exteriors': {
+                'fcn': exteriors,
+                'help': "Get exteriors of polygons.\n" +
+                        "> exteriors <name> [-outname <outname>]\n" +
+                        "   name: Name of the source Geometry object.\n" +
+                        "   outname: Name of the resulting Geometry object."
+            },
             'drillcncjob': {
                 'fcn': drillcncjob,
                 'help': "Drill CNC job.\n" +