Fixed bug introduced to clear_poly() in previous commit.

This commit is contained in:
jpcaram
2015-01-30 15:17:57 -05:00
parent d903356a55
commit f92255b8f9
2 changed files with 19 additions and 4 deletions

View File

@@ -987,9 +987,12 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
assert isinstance(geo_obj, FlatCAMGeometry)
#assert isinstance(app_obj, App)
cp = self.clear_polygon(poly.buffer(-self.options["paintmargin"]), tooldia, overlap=overlap)
if self.options["paintmethod"] == "seed":
cp = self.clear_polygon2(poly.buffer(-self.options["paintmargin"]), tooldia, overlap=overlap)
else:
cp = self.clear_polygon(poly.buffer(-self.options["paintmargin"]), tooldia, overlap=overlap)
geo_obj.solid_geometry = list(cp.get_objects())
geo_obj.options["cnctooldia"] = tooldia
self.app.inform.emit("Done.")

View File

@@ -331,6 +331,8 @@ class Geometry(object):
:return:
"""
assert type(polygon) == Polygon
## The toolpaths
# Index first and last points in paths
def get_pts(o):
@@ -347,9 +349,19 @@ class Geometry(object):
while True:
current = current.buffer(-tooldia * (1 - overlap))
if current.area > 0:
geoms.insert(current.exterior)
for i in current.interiors:
geoms.insert(i)
# current can be a MultiPolygon
try:
for p in current:
geoms.insert(p.exterior)
for i in p.interiors:
geoms.insert(i)
# Not a Multipolygon.
except TypeError:
geoms.insert(current.exterior)
for i in current.interiors:
geoms.insert(i)
else:
break
return geoms