diff --git a/CHANGELOG.md b/CHANGELOG.md index ad61d163..6d9e451e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ CHANGELOG for FlatCAM beta ================================================= +14.03.2021 + +- Geometry Editor can now modify the edited tool diameter + 13.03.2021 - fixed a bug in Gerber merge diff --git a/appEditors/AppGeoEditor.py b/appEditors/AppGeoEditor.py index 1d6c768f..3bdd4e47 100644 --- a/appEditors/AppGeoEditor.py +++ b/appEditors/AppGeoEditor.py @@ -3418,6 +3418,23 @@ class AppGeoEditor(QtCore.QObject): self.level.setCheckable(True) self.title_box.addWidget(self.level) + self.grid_d = QtWidgets.QGridLayout() + self.grid_d.setColumnStretch(0, 0) + self.grid_d.setColumnStretch(1, 1) + self.tools_box.addLayout(self.grid_d) + + # Tool diameter + tooldia_lbl = FCLabel('%s:' % _("Tool dia")) + tooldia_lbl.setToolTip( + _("Edited tool diameter.") + ) + self.tooldia_entry = FCDoubleSpinner() + self.tooldia_entry.set_precision(self.decimals) + self.tooldia_entry.setSingleStep(10 ** -self.decimals) + self.tooldia_entry.set_range(-10000.0000, 10000.0000) + + self.grid_d.addWidget(tooldia_lbl, 0, 0) + self.grid_d.addWidget( self.tooldia_entry, 0, 1) # Tree Widget Title tw_label = FCLabel('%s:' % _("Geometry Table")) tw_label.setToolTip( @@ -5284,13 +5301,15 @@ class AppGeoEditor(QtCore.QObject): else: milling_type = 1 # CW motion = conventional milling (spindle is rotating CCW) + self.multigeo_tool = multigeo_tool + def task_job(editor_obj): # Link shapes into editor. with editor_obj.app.proc_container.new(_("Working...")): editor_obj.app.inform.emit(_("Loading the Geometry into the Editor...")) - if multigeo_tool: - editor_obj.multigeo_tool = multigeo_tool + if self.multigeo_tool: + editor_obj.multigeo_tool = self.multigeo_tool geo_to_edit = editor_obj.flatten(geometry=fcgeometry.tools[self.multigeo_tool]['solid_geometry'], orient_val=milling_type) else: @@ -5335,6 +5354,10 @@ class AppGeoEditor(QtCore.QObject): str(fcgeometry.tools[self.multigeo_tool]['tooldia']) ) ) + self.tooldia_entry.set_value( + float(fcgeometry.tools[self.multigeo_tool]['data']['tools_mill_tooldia'])) + else: + self.tooldia_entry.set_value(float(fcgeometry.options['tools_mill_tooldia'])) self.app.worker_task.emit({'fcn': task_job, 'params': [self]}) @@ -5351,6 +5374,13 @@ class AppGeoEditor(QtCore.QObject): # Link shapes into editor. with editor_obj.app.proc_container.new(_("Working...")): if editor_obj.multigeo_tool: + edited_dia = float(fcgeometry.tools[self.multigeo_tool]['tooldia']) + new_dia = self.tooldia_entry.get_value() + + if new_dia != edited_dia: + fcgeometry.tools[self.multigeo_tool]['tooldia'] = new_dia + fcgeometry.tools[self.multigeo_tool]['data']['tools_mill_tooldia'] = new_dia + fcgeometry.tools[self.multigeo_tool]['solid_geometry'] = [] # for shape in self.shape_buffer: for shape in editor_obj.storage.get_objects(): @@ -5362,6 +5392,12 @@ class AppGeoEditor(QtCore.QObject): fcgeometry.tools[self.multigeo_tool]['solid_geometry'].append(new_geo) editor_obj.multigeo_tool = None + else: + edited_dia = float(fcgeometry.options['tools_mill_tooldia']) + new_dia = self.tooldia_entry.get_value() + + if new_dia != edited_dia: + fcgeometry.options['tools_mill_tooldia'] = new_dia fcgeometry.solid_geometry = [] # for shape in self.shape_buffer: diff --git a/appObjects/FlatCAMGeometry.py b/appObjects/FlatCAMGeometry.py index 538b93c2..f056ae74 100644 --- a/appObjects/FlatCAMGeometry.py +++ b/appObjects/FlatCAMGeometry.py @@ -60,6 +60,7 @@ class GeometryObject(FlatCAMObj, Geometry): self.options.update({ "plot": True, "multicolored": False, + "cutz": -0.002, "vtipdia": 0.1, "vtipangle": 30,