diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e025aa9..92e9c1c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ CHANGELOG for FlatCAM beta 13.01.2021 - working on the Follow Tool and Milling Tool +- working on the Isolation Tool and Milling Tool 12.01.2021 diff --git a/appTools/ToolIsolation.py b/appTools/ToolIsolation.py index 2267d4f5..7bea4a05 100644 --- a/appTools/ToolIsolation.py +++ b/appTools/ToolIsolation.py @@ -1722,8 +1722,8 @@ class ToolIsolation(AppTool, Gerber): iso_except = self.ui.except_cb.get_value() + tool_dia = tools_storage[tool]['tooldia'] for i in range(passes): - tool_dia = tools_storage[tool]['tooldia'] tool_type = tools_storage[tool]['tool_type'] iso_offset = tool_dia * ((2 * i + 1) / 2.0000001) - (i * overlap * tool_dia) @@ -1775,6 +1775,8 @@ class ToolIsolation(AppTool, Gerber): def iso_init(geo_obj, fc_obj): # Propagate options geo_obj.options["tools_mill_tooldia"] = str(tool_dia) + tool_data["tools_mill_tooldia"] = float(tool_dia) + geo_obj.solid_geometry = deepcopy(new_solid_geo) # ############################################################ @@ -1958,7 +1960,7 @@ class ToolIsolation(AppTool, Gerber): 'solid_geometry': deepcopy(new_solid_geo) } }) - + tools_storage[tool]['data']['tools_mill_tooldia'] = float(tool_dia) total_solid_geometry += new_solid_geo # if the geometry is all isolated @@ -2150,6 +2152,7 @@ class ToolIsolation(AppTool, Gerber): 'solid_geometry': deepcopy(new_solid_geo) } }) + tools_storage[tool]['data']['tools_mill_tooldia'] = float(tool_dia) total_solid_geometry += new_solid_geo diff --git a/appTools/ToolMilling.py b/appTools/ToolMilling.py index 4c33c0d3..21e5d083 100644 --- a/appTools/ToolMilling.py +++ b/appTools/ToolMilling.py @@ -2965,7 +2965,7 @@ class ToolMilling(AppTool, Excellon): tools_dict[tooluid_key]['data']['ppname_g'] = self.ui.pp_geo_name_cb.get_value() # Offset calculation - offset_type = dia_cnc_dict['tools_mill_offset_type'] + offset_type = dia_cnc_dict['data']['tools_mill_offset_type'] if offset_type == 1: # 'in' tool_offset = -tooldia_val / 2 elif offset_type == 2: # 'out' diff --git a/camlib.py b/camlib.py index d1664a5a..6fac92d8 100644 --- a/camlib.py +++ b/camlib.py @@ -3501,14 +3501,14 @@ class CNCjob(Geometry): tool_dict = tools[tool]['data'] # this is the tool diameter, it is used as such to accommodate the preprocessor who need the tool diameter # given under the name 'toolC' - self.postdata['toolC'] = float(tools[tool]['tools_mill_tooldia']) - self.tooldia = float(tools[tool]['tools_mill_tooldia']) + self.postdata['toolC'] = float(tool_dict['tools_mill_tooldia']) + self.tooldia = float(tool_dict['tools_mill_tooldia']) self.use_ui = True self.tolerance = tolerance # Optimization type. Can be: 'M', 'B', 'T', 'R', 'No' opt_type = tool_dict['tools_mill_optimization_type'] - opt_time = tool_dict['search_time'] if 'search_time' in tool_dict else 'R' + opt_time = tool_dict['tools_mill_search_time'] if 'tools_mill_search_time' in tool_dict else 'R' if opt_type == 'M': log.debug("Using OR-Tools Metaheuristic Guided Local Search path optimization.") @@ -3527,12 +3527,12 @@ class CNCjob(Geometry): p = self.pp_geometry # Offset the Geometry if it is the case - if tools[tool]['tools_mill_offset'] == 1: # 'in' - tool_offset = -float(tools[tool]['tooldia']) / 2.0 - elif tools[tool]['tools_mill_offset'] == 2: # 'out' - tool_offset = float(tools[tool]['tooldia']) / 2.0 - elif tools[tool]['tools_mill_offset'] == 3: # 'custom' - tool_offset = tools[tool]['tools_mill_offset_value'] + if tool_dict['tools_mill_offset'] == 1: # 'in' + tool_offset = -float(tool_dict['tools_mill_tooldia']) / 2.0 + elif tool_dict['tools_mill_offset'] == 2: # 'out' + tool_offset = float(tool_dict['tools_mill_tooldia']) / 2.0 + elif tool_dict['tools_mill_offset'] == 3: # 'custom' + tool_offset = tool_dict['tools_mill_offset_value'] else: tool_offset = 0.0