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

This commit is contained in:
Juan Pablo Caram
2015-10-04 20:48:06 -04:00
parent a2ac2b12be
commit 4110940d49
2 changed files with 25 additions and 1 deletions

View File

@@ -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" +

View File

@@ -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.