diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 46bdfaa8..265d1d71 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -91,7 +91,7 @@ class App(QtCore.QObject): # Version version = 8.905 - version_date = "2019/01/28" + version_date = "2019/01/29" beta = True # URL for update checks and statistics diff --git a/FlatCAMObj.py b/FlatCAMObj.py index fb16ca7a..3c62f059 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -3470,8 +3470,20 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): :rtype: None """ + try: + xfactor = float(xfactor) + except: + self.app.inform.emit("[error_notcl] Scale factor has to be a number: integer or float.") + return + if yfactor is None: yfactor = xfactor + else: + try: + yfactor = float(yfactor) + except: + self.app.inform.emit("[error_notcl] Scale factor has to be a number: integer or float.") + return if point is None: px = 0 @@ -3489,6 +3501,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): else: self.solid_geometry = affinity.scale(self.solid_geometry, xfactor, yfactor, origin=(px, py)) + self.app.inform.emit("[success]Geometry Scale done.") def offset(self, vect): """ @@ -3500,7 +3513,12 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): :rtype: None """ - dx, dy = vect + try: + dx, dy = vect + except TypeError: + self.app.inform.emit("[error_notcl]An (x,y) pair of values are needed. " + "Probable you entered only one value in the Offset field.") + return def translate_recursion(geom): if type(geom) == list: @@ -3516,6 +3534,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.tools[tool]['solid_geometry'] = translate_recursion(self.tools[tool]['solid_geometry']) else: self.solid_geometry=translate_recursion(self.solid_geometry) + self.app.inform.emit("[success]Geometry Offset done.") def convert_units(self, units): self.ui_disconnect() diff --git a/README.md b/README.md index 23e17b88..c16952f6 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,11 @@ CAD program, and create G-Code for Isolation routing. ================================================= +29.01.2019 + +- fixed issue in Tool Calculators when a float value was entered starting only with the dot. +- added protection for entering incorrect values in Offset and Scale fields for Gerber and Geometry objects (in Selected Tab) + 28.01.2018 - fixed the FlatCAMGerber.merge() function diff --git a/camlib.py b/camlib.py index ea9f2646..ef317ee6 100644 --- a/camlib.py +++ b/camlib.py @@ -3018,8 +3018,20 @@ class Gerber (Geometry): :rtype : None """ + try: + xfactor = float(xfactor) + except: + self.app.inform.emit("[error_notcl] Scale factor has to be a number: integer or float.") + return + if yfactor is None: yfactor = xfactor + else: + try: + yfactor = float(yfactor) + except: + self.app.inform.emit("[error_notcl] Scale factor has to be a number: integer or float.") + return if point is None: px = 0 @@ -3038,6 +3050,7 @@ class Gerber (Geometry): yfactor, origin=(px, py)) self.solid_geometry = scale_geom(self.solid_geometry) + self.app.inform.emit("[success]Gerber Scale done.") ## solid_geometry ??? # It's a cascaded union of objects. @@ -3066,8 +3079,12 @@ class Gerber (Geometry): :type vect: tuple :return: None """ - - dx, dy = vect + try: + dx, dy = vect + except TypeError: + self.app.inform.emit("[error_notcl]An (x,y) pair of values are needed. " + "Probable you entered only one value in the Offset field.") + return def offset_geom(obj): if type(obj) is list: @@ -3081,6 +3098,7 @@ class Gerber (Geometry): ## Solid geometry # self.solid_geometry = affinity.translate(self.solid_geometry, xoff=dx, yoff=dy) self.solid_geometry = offset_geom(self.solid_geometry) + self.app.inform.emit("[success]Gerber Offset done.") def mirror(self, axis, point): """ diff --git a/flatcamTools/ToolCalculators.py b/flatcamTools/ToolCalculators.py index dc499972..b937a2e0 100644 --- a/flatcamTools/ToolCalculators.py +++ b/flatcamTools/ToolCalculators.py @@ -157,7 +157,7 @@ class ToolCalculator(FlatCAMTool): tip_diameter = float(self.tipDia_entry.get_value()) half_tip_angle = float(self.tipAngle_entry.get_value()) / 2 cut_depth = float(self.cutDepth_entry.get_value()) - except TypeError: + except: return tool_diameter = tip_diameter + (2 * cut_depth * math.tan(math.radians(half_tip_angle)))