diff --git a/CHANGELOG.md b/CHANGELOG.md index a33c7a9c..2e025aa9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ CHANGELOG for FlatCAM beta ================================================= +13.01.2021 + +- working on the Follow Tool and Milling Tool + 12.01.2021 - in Gerber parser added a fix for Gerber region geometry that is self-intersecting diff --git a/appObjects/FlatCAMCNCJob.py b/appObjects/FlatCAMCNCJob.py index 9fedb02e..20b03b01 100644 --- a/appObjects/FlatCAMCNCJob.py +++ b/appObjects/FlatCAMCNCJob.py @@ -1270,7 +1270,7 @@ class CNCJobObject(FlatCAMObj, CNCjob): if self.cnc_tools: for tooluid_key in self.cnc_tools: tooldia = self.app.dec_format( - float(self.cnc_tools[tooluid_key]['tools_mill_tooldia']), + float(self.cnc_tools[tooluid_key]['data']['tools_mill_tooldia']), self.decimals ) gcode_parsed = self.cnc_tools[tooluid_key]['gcode_parsed'] diff --git a/appTools/ToolFollow.py b/appTools/ToolFollow.py index 307b70bf..7a95d530 100644 --- a/appTools/ToolFollow.py +++ b/appTools/ToolFollow.py @@ -316,7 +316,8 @@ class ToolFollow(AppTool, Gerber): 'solid_geometry': new_obj.solid_geometry } } - + for d in new_data: + print(d, new_data[d]) ret = self.app.app_obj.new_object("geometry", outname, follow_init) if ret == 'fail': self.app.inform.emit("[ERROR_NOTCL] %s" % _("Failed to create Follow Geometry.")) @@ -356,12 +357,12 @@ class ToolFollow(AppTool, Gerber): if opt_key.find('geometry' + "_") == 0: oname = opt_key[len('geometry') + 1:] new_data[oname] = app_obj.options[opt_key] - if opt_key.find('tools_mill' + "_") == 0: - oname = opt_key[len('tools_mill') + 1:] - new_data[oname] = app_obj.options[opt_key] + if opt_key.find('tools_') == 0: + new_data[opt_key] = app_obj.options[opt_key] # Propagate options new_obj.options["tools_mill_tooldia"] = app_obj.defaults["tools_mill_tooldia"] + new_data["tools_mill_tooldia"] = app_obj.defaults["tools_mill_tooldia"] target_geo = unary_union(followed_obj.follow_geometry) area_follow = target_geo.intersection(deepcopy(unary_union(self.sel_rect))) diff --git a/appTools/ToolMilling.py b/appTools/ToolMilling.py index 900e0903..4c33c0d3 100644 --- a/appTools/ToolMilling.py +++ b/appTools/ToolMilling.py @@ -2766,10 +2766,9 @@ class ToolMilling(AppTool, Excellon): tool_cnt += 1 dia_cnc_dict = deepcopy(tools_dict[tooluid_key]) - tooldia_val = app_obj.dec_format(float(tools_dict[tooluid_key]['tools_mill_tooldia']), self.decimals) - dia_cnc_dict.update({ - 'tools_mill_tooldia': tooldia_val - }) + tooldia_val = app_obj.dec_format( + float(tools_dict[tooluid_key]['data']['tools_mill_tooldia']), self.decimals) + dia_cnc_dict['data']['tools_mill_tooldia'] = tooldia_val if "optimization_type" not in tools_dict[tooluid_key]['data']: def_optimization_type = self.app.defaults["tools_mill_optimization_type"] @@ -2800,9 +2799,7 @@ class ToolMilling(AppTool, Excellon): else: tool_offset = 0.0 - dia_cnc_dict.update({ - 'tools_mill_offset_value': tool_offset - }) + dia_cnc_dict['data']['tools_mill_offset_value'] = tool_offset z_cut = tools_dict[tooluid_key]['data']["tools_mill_cutz"] z_move = tools_dict[tooluid_key]['data']["tools_mill_travelz"] @@ -2932,10 +2929,9 @@ class ToolMilling(AppTool, Excellon): dia_cnc_dict = deepcopy(tools_dict[tooluid_key]) # Tooldia update - tooldia_val = app_obj.dec_format(float(tools_dict[tooluid_key]['tooldia']), self.decimals) - dia_cnc_dict.update({ - 'tooldia': tooldia_val - }) + tooldia_val = app_obj.dec_format( + float(tools_dict[tooluid_key]['data']['tools_mill_tooldia']), self.decimals) + dia_cnc_dict['data']['tools_mill_tooldia'] = tooldia_val if "optimization_type" not in tools_dict[tooluid_key]['data']: def_optimization_type = self.app.defaults["tools_mill_optimization_type"] @@ -2969,12 +2965,12 @@ 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'].lower() - if offset_type == 'in': + offset_type = dia_cnc_dict['tools_mill_offset_type'] + if offset_type == 1: # 'in' tool_offset = -tooldia_val / 2 - elif offset_type == 'out': + elif offset_type == 2: # 'out' tool_offset = tooldia_val / 2 - elif offset_type == 'custom': + elif offset_type == 3: # 'custom' offset_value = self.ui.offset_entry.get_value() if offset_value: tool_offset = float(offset_value) @@ -2987,9 +2983,7 @@ class ToolMilling(AppTool, Excellon): else: tool_offset = 0.0 - dia_cnc_dict.update({ - 'offset_value': tool_offset - }) + dia_cnc_dict['data']['tools_mill_offset_value'] = tool_offset # Solid Geometry tool_solid_geometry = self.target_obj.tools[tooluid_key]['solid_geometry']