From b6d4d5e85fff06a0c709721b1708fe2804fa3676 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 3 Nov 2020 02:47:41 +0200 Subject: [PATCH] - fix an older issue that made that only the Custom choice created an effect when changing the Offset in the Geometry Object Tool Table --- CHANGELOG.md | 1 + appObjects/FlatCAMGeometry.py | 2 +- camlib.py | 15 +++++++++++---- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54bae503..97078043 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ CHANGELOG for FlatCAM beta - fixed an issue in Tool Isolation used with tools from the Tools Database: the set offset value was not used - updated the Tools Database to include all the Geometry keys in the every tool from database - made sure that the Operation Type values ('Iso', 'Rough' and 'Finish') are not translated as this may create issues all over the application +- fix an older issue that made that only the Custom choice created an effect when changing the Offset in the Geometry Object Tool Table 2.11.2020 diff --git a/appObjects/FlatCAMGeometry.py b/appObjects/FlatCAMGeometry.py index 893d46dc..385349d7 100644 --- a/appObjects/FlatCAMGeometry.py +++ b/appObjects/FlatCAMGeometry.py @@ -2287,7 +2287,7 @@ class GeometryObject(FlatCAMObj, Geometry): # current_uid = int(k) # break - if dia_cnc_dict['offset'] == 'in': + if dia_cnc_dict['offset'].lower() == 'in': tool_offset = -tooldia_val / 2 elif dia_cnc_dict['offset'].lower() == 'out': tool_offset = tooldia_val / 2 diff --git a/camlib.py b/camlib.py index c68df842..48d4a6e7 100644 --- a/camlib.py +++ b/camlib.py @@ -3517,15 +3517,22 @@ class CNCjob(Geometry): p = self.pp_geometry # Offset the Geometry if it is the case - # FIXME need to test if in ["Path", "In", "Out", "Custom"]. For now only 'Custom' is somehow done - offset = tools[tool]['offset_value'] - if offset != 0.0: + if tools[tool]['offset'].lower() == 'in': + tool_offset = -float(tools[tool]['tooldia']) / 2.0 + elif tools[tool]['offset'].lower() == 'out': + tool_offset = float(tools[tool]['tooldia']) / 2.0 + elif tools[tool]['offset'].lower() == 'custom': + tool_offset = tools[tool]['offset_value'] + else: + tool_offset = 0.0 + + if tool_offset != 0.0: for it in flat_geometry: # if the geometry is a closed shape then create a Polygon out of it if isinstance(it, LineString): if it.is_ring: it = Polygon(it) - temp_solid_geometry.append(it.buffer(offset, join_style=2)) + temp_solid_geometry.append(it.buffer(tool_offset, join_style=2)) temp_solid_geometry = self.flatten(temp_solid_geometry, reset=True, pathonly=True) else: temp_solid_geometry = flat_geometry