- in FlatCAMGeometry fixed the scale and offset methods to always process the self.solid_geometry

- Calibration Tool - finished the calibrated object creation method
This commit is contained in:
Marius Stanciu
2019-12-09 16:20:22 +02:00
parent 38756175f6
commit 1f1d200ab6
6 changed files with 220 additions and 97 deletions

View File

@@ -5370,9 +5370,8 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
try:
xfactor = float(xfactor)
except Exception as e:
self.app.inform.emit('[ERROR_NOTCL] %s' %
_("Scale factor has to be a number: integer or float."))
except Exception:
self.app.inform.emit('[ERROR_NOTCL] %s' % _("Scale factor has to be a number: integer or float."))
return
if yfactor is None:
@@ -5380,29 +5379,19 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
else:
try:
yfactor = float(yfactor)
except Exception as e:
self.app.inform.emit('[ERROR_NOTCL] %s' %
_("Scale factor has to be a number: integer or float."))
except Exception:
self.app.inform.emit('[ERROR_NOTCL] %s' % _("Scale factor has to be a number: integer or float."))
return
if xfactor == 1 and yfactor == 1:
return
if point is None:
px = 0
py = 0
else:
px, py = point
# if type(self.solid_geometry) == list:
# geo_list = self.flatten(self.solid_geometry)
# self.solid_geometry = []
# # for g in geo_list:
# # self.solid_geometry.append(affinity.scale(g, xfactor, yfactor, origin=(px, py)))
# self.solid_geometry = [affinity.scale(g, xfactor, yfactor, origin=(px, py))
# for g in geo_list]
# else:
# self.solid_geometry = affinity.scale(self.solid_geometry, xfactor, yfactor,
# origin=(px, py))
# self.app.inform.emit("[success] Geometry Scale done.")
self.geo_len = 0
self.old_disp_number = 0
self.el_count = 0
@@ -5438,25 +5427,24 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
self.el_count = 0
self.tools[tool]['solid_geometry'] = scale_recursion(self.tools[tool]['solid_geometry'])
else:
try:
# variables to display the percentage of work done
self.geo_len = 0
try:
self.geo_len = len(self.solid_geometry)
except TypeError:
self.geo_len = 1
self.old_disp_number = 0
self.el_count = 0
self.solid_geometry = scale_recursion(self.solid_geometry)
except AttributeError:
self.solid_geometry = []
return
try:
# variables to display the percentage of work done
self.geo_len = 0
try:
self.geo_len = len(self.solid_geometry)
except TypeError:
self.geo_len = 1
self.old_disp_number = 0
self.el_count = 0
self.solid_geometry = scale_recursion(self.solid_geometry)
except AttributeError:
self.solid_geometry = []
return
self.app.proc_container.new_text = ''
if xfactor != 1 and yfactor != 1:
self.app.inform.emit('[success] %s' % _("Geometry Scale done."))
self.app.inform.emit('[success] %s' % _("Geometry Scale done."))
def offset(self, vect):
"""
@@ -5478,6 +5466,9 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
)
return
if dx == 0 and dy == 0:
return
self.geo_len = 0
self.old_disp_number = 0
self.el_count = 0
@@ -5513,18 +5504,18 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
self.el_count = 0
self.tools[tool]['solid_geometry'] = translate_recursion(self.tools[tool]['solid_geometry'])
else:
# variables to display the percentage of work done
self.geo_len = 0
try:
for g in self.solid_geometry:
self.geo_len += 1
except TypeError:
self.geo_len = 1
self.old_disp_number = 0
self.el_count = 0
self.solid_geometry = translate_recursion(self.solid_geometry)
# variables to display the percentage of work done
self.geo_len = 0
try:
for g in self.solid_geometry:
self.geo_len += 1
except TypeError:
self.geo_len = 1
self.old_disp_number = 0
self.el_count = 0
self.solid_geometry = translate_recursion(self.solid_geometry)
self.app.proc_container.new_text = ''
self.app.inform.emit('[success] %s' % _("Geometry Offset done."))