- modified the Geometry UI tools table. Replaced the comboboxes with labels.

- Fixed the SolderPaste Plugin regarding the special designation 'SP' job type and 'DN' tool shape
- some fixes in the GCode Editor regarding the new changes in the data structure
This commit is contained in:
Marius Stanciu
2021-07-18 12:01:41 +03:00
committed by Marius
parent a36be12960
commit 9c139d3ea2
8 changed files with 110 additions and 869 deletions

View File

@@ -226,17 +226,30 @@ class CNCJobObject(FlatCAMObj, CNCjob):
dia_item = QtWidgets.QTableWidgetItem('%.*f' % (self.decimals, float(dia_value['tooldia'])))
offset_txt = list(str(dia_value['offset']))
offset_txt = list(str(dia_value['data']['tools_mill_offset_value']))
offset_txt[0] = offset_txt[0].upper()
offset_item = QtWidgets.QTableWidgetItem(''.join(offset_txt))
type_item = QtWidgets.QTableWidgetItem(str(dia_value['data']['job']))
tool_type_item = QtWidgets.QTableWidgetItem(str(dia_value['data']['tools_mill_shape']))
job_item_options = [_('Roughing'), _('Finishing'), _('Isolation'), _('Polishing')]
tool_shape_options = ["C1", "C2", "C3", "C4", "B", "V"]
try:
job_item_txt = job_item_options[dia_value['data']['tools_mill_job_type']]
except TypeError:
job_item_txt = dia_value['data']['tools_mill_job_type']
job_item = QtWidgets.QTableWidgetItem(job_item_txt)
try:
tool_shape_item_txt = tool_shape_options[dia_value['data']['tools_mill_shape']]
except TypeError:
tool_shape_item_txt = dia_value['data']['tools_mill_shape']
tool_shape_item = QtWidgets.QTableWidgetItem(tool_shape_item_txt)
t_id.setFlags(QtCore.Qt.ItemIsEnabled)
dia_item.setFlags(QtCore.Qt.ItemIsEnabled)
offset_item.setFlags(QtCore.Qt.ItemIsEnabled)
type_item.setFlags(QtCore.Qt.ItemIsEnabled)
tool_type_item.setFlags(QtCore.Qt.ItemIsEnabled)
job_item.setFlags(QtCore.Qt.ItemIsEnabled)
tool_shape_item.setFlags(QtCore.Qt.ItemIsEnabled)
# hack so the checkbox stay centered in the table cell
# used this:
@@ -256,8 +269,8 @@ class CNCJobObject(FlatCAMObj, CNCjob):
self.ui.cnc_tools_table.setItem(row_no, 1, dia_item) # Diameter
self.ui.cnc_tools_table.setItem(row_no, 2, offset_item) # Offset
self.ui.cnc_tools_table.setItem(row_no, 3, type_item) # Toolpath Type
self.ui.cnc_tools_table.setItem(row_no, 4, tool_type_item) # Tool Type
self.ui.cnc_tools_table.setItem(row_no, 3, job_item) # Job Type
self.ui.cnc_tools_table.setItem(row_no, 4, tool_shape_item) # Tool Shape
# ## REMEMBER: THIS COLUMN IS HIDDEN IN OBJECTUI.PY # ##
self.ui.cnc_tools_table.setItem(row_no, 5, tool_uid_item) # Tool unique ID)
@@ -1301,7 +1314,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
if self.tools:
for tooluid_key in self.tools:
dia_plot = self.app.dec_format(
float(self.tools[tooluid_key]['data']['tools_mill_tooldia']),
float(self.tools[tooluid_key]['tooldia']),
self.decimals
)
gcode_parsed = self.tools[tooluid_key]['gcode_parsed']

View File

@@ -194,7 +194,7 @@ class GeometryObject(FlatCAMObj, Geometry):
# -------------------- ID ------------------------------------------ #
tool_id = QtWidgets.QTableWidgetItem('%d' % int(row_idx + 1))
tool_id.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
tool_id.setFlags(QtCore.Qt.ItemIsEnabled)
self.ui.geo_tools_table.setItem(row_idx, 0, tool_id) # Tool name/id
# Make sure that the tool diameter when in MM is with no more than 2 decimals.
@@ -207,44 +207,31 @@ class GeometryObject(FlatCAMObj, Geometry):
self.ui.geo_tools_table.setItem(row_idx, 1, dia_item) # Diameter
# -------------------- OFFSET ------------------------------------- #
offset_item = FCComboBox2(policy=False)
offset_item.addItems(self.offset_item_options)
# val = tooluid_value['data']['tools_mill_offset_type']
# idx = offset_item.findText(val)
idx = int(tooluid_value['data']['tools_mill_offset_type'])
# protection against having this translated or loading a project with translated values
# if idx == -1:
if idx not in [0, 1, 2, 3]:
offset_item.setCurrentIndex(0)
else:
offset_item.setCurrentIndex(idx)
self.ui.geo_tools_table.setCellWidget(row_idx, 2, offset_item)
try:
offset_item_txt = self.offset_item_options[tooluid_value['data']['tools_mill_offset_type']]
except TypeError:
offset_item_txt = tooluid_value['data']['tools_mill_offset_type']
offset_item = QtWidgets.QTableWidgetItem(offset_item_txt)
offset_item.setFlags(QtCore.Qt.ItemIsEnabled)
self.ui.geo_tools_table.setItem(row_idx, 2, offset_item) # Offset Type
# -------------------- JOB ------------------------------------- #
type_item = FCComboBox2(policy=False)
type_item.addItems(self.job_item_options)
# pos = tooluid_value['data']['tools_mill_job_type']
# idx = type_item.findText(self.job_item_options[pos])
idx = int(tooluid_value['data']['tools_mill_job_type'])
# protection against having this translated or loading a project with translated values
# if idx == -1:
if idx not in [0, 1, 2, 3]:
type_item.setCurrentIndex(0)
else:
type_item.setCurrentIndex(idx)
self.ui.geo_tools_table.setCellWidget(row_idx, 3, type_item)
try:
job_item_txt = self.job_item_options[tooluid_value['data']['tools_mill_job_type']]
except TypeError:
job_item_txt = tooluid_value['data']['tools_mill_job_type']
job_item = QtWidgets.QTableWidgetItem(job_item_txt)
job_item.setFlags(QtCore.Qt.ItemIsEnabled)
self.ui.geo_tools_table.setItem(row_idx, 3, job_item) # Job Type
# -------------------- TOOL SHAPE ------------------------------------- #
tool_shape_item = FCComboBox2(policy=False)
tool_shape_item.addItems(self.tool_type_item_options)
idx = int(tooluid_value['data']['tools_mill_shape'])
# protection against having this translated or loading a project with translated values
# if idx == -1:
if idx not in range(6):
tool_shape_item.setCurrentIndex(0)
else:
tool_shape_item.setCurrentIndex(idx)
self.ui.geo_tools_table.setCellWidget(row_idx, 4, tool_shape_item)
try:
tool_shape_item_txt = self.tool_type_item_options[tooluid_value['data']['tools_mill_shape']]
except TypeError:
tool_shape_item_txt = tooluid_value['data']['tools_mill_shape']
tool_shape_item = QtWidgets.QTableWidgetItem(tool_shape_item_txt)
tool_shape_item.setFlags(QtCore.Qt.ItemIsEnabled)
self.ui.geo_tools_table.setItem(row_idx, 4, tool_shape_item) # Tool Shape
# -------------------- TOOL UID ------------------------------------- #
tool_uid_item = QtWidgets.QTableWidgetItem(str(tooluid_key))
@@ -261,24 +248,11 @@ class GeometryObject(FlatCAMObj, Geometry):
plot_item.setChecked(True)
self.ui.geo_tools_table.setCellWidget(row_idx, 6, plot_item)
# set an initial value for the OFFSET ENTRY
# try:
# self.ui.tool_offset_entry.set_value(tooluid_value['offset_value'])
# except Exception as e:
# log.error("build_ui() --> Could not set the 'offset_value' key in self.tools. Error: %s" % str(e))
row_idx += 1
# make the diameter column editable
# for row in range(row_idx):
# self.ui.geo_tools_table.item(row, 1).setFlags(QtCore.Qt.ItemIsSelectable |
# QtCore.Qt.ItemIsEditable |
# QtCore.Qt.ItemIsEnabled)
# sort the tool diameter column
# self.ui.geo_tools_table.sortItems(1)
# all the tools are selected by default
# self.ui.geo_tools_table.selectColumn(0)
for row in range(row_idx):
self.ui.geo_tools_table.item(row, 0).setFlags(
self.ui.geo_tools_table.item(row, 0).flags() ^ QtCore.Qt.ItemIsSelectable)
self.ui.geo_tools_table.resizeColumnsToContents()
self.ui.geo_tools_table.resizeRowsToContents()
@@ -294,13 +268,12 @@ class GeometryObject(FlatCAMObj, Geometry):
horizontal_header.setSectionResizeMode(0, QtWidgets.QHeaderView.Fixed)
horizontal_header.resizeSection(0, 20)
horizontal_header.setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch)
# horizontal_header.setColumnWidth(2, QtWidgets.QHeaderView.ResizeToContents)
horizontal_header.setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents)
horizontal_header.setSectionResizeMode(3, QtWidgets.QHeaderView.ResizeToContents)
horizontal_header.setSectionResizeMode(4, QtWidgets.QHeaderView.Fixed)
horizontal_header.resizeSection(4, 40)
horizontal_header.setSectionResizeMode(6, QtWidgets.QHeaderView.Fixed)
horizontal_header.resizeSection(4, 17)
horizontal_header.resizeSection(6, 17)
# horizontal_header.setStretchLastSection(True)
self.ui.geo_tools_table.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
@@ -313,12 +286,6 @@ class GeometryObject(FlatCAMObj, Geometry):
self.ui.geo_tools_table.setMinimumHeight(self.ui.geo_tools_table.getHeight())
self.ui.geo_tools_table.setMaximumHeight(self.ui.geo_tools_table.getHeight())
# update UI for all rows - useful after units conversion but only if there is at least one row
# row_cnt = self.ui.geo_tools_table.rowCount()
# if row_cnt > 0:
# for r in range(row_cnt):
# self.update_ui(r)
# select only the first tool / row
selected_row = 0
try:
@@ -543,9 +510,6 @@ class GeometryObject(FlatCAMObj, Geometry):
self.tools.update({
self.tooluid: {
'tooldia': self.app.dec_format(float(toold), self.decimals),
'offset': 'Path',
'offset_value': 0.0,
'tool_type': self.tool_type,
'data': new_data,
'solid_geometry': self.solid_geometry
}
@@ -591,40 +555,8 @@ class GeometryObject(FlatCAMObj, Geometry):
# _("Delete"), lambda: self.on_tool_delete(clicked_signal=None, all_tools=None),
# icon=QtGui.QIcon(self.app.resource_location + "/trash16.png"))
# #############################################################################################################
# ############################## EXCLUSION TABLE context menu #################################################
# #############################################################################################################
# self.ui.exclusion_table.setupContextMenu()
# self.ui.exclusion_table.addContextMenu(
# _("Delete"), self.on_delete_sel_areas, icon=QtGui.QIcon(self.app.resource_location + "/trash16.png")
# )
# Show/Hide Advanced Options
# if self.app.defaults["global_app_level"] == 'b':
# self.ui.level.setText('<span style="color:green;"><b>%s</b></span>' % _('Basic'))
#
# self.ui.geo_tools_table.setColumnHidden(2, True)
# self.ui.geo_tools_table.setColumnHidden(3, True)
# # self.ui.geo_tools_table.setColumnHidden(4, True)
# self.ui.addtool_entry_lbl.hide()
# self.ui.addtool_entry.hide()
# self.ui.search_and_add_btn.hide()
# self.ui.deltool_btn.hide()
# # self.ui.endz_label.hide()
# # self.ui.endz_entry.hide()
# self.ui.fr_rapidlabel.hide()
# self.ui.feedrate_rapid_entry.hide()
# self.ui.extracut_cb.hide()
# self.ui.e_cut_entry.hide()
# self.ui.pdepth_label.hide()
# self.ui.pdepth_entry.hide()
# self.ui.feedrate_probe_label.hide()
# self.ui.feedrate_probe_entry.hide()
# else:
# self.ui.level.setText('<span style="color:red;"><b>%s</b></span>' % _('Advanced'))
self.ui.geo_tools_table.setColumnHidden(2, True)
self.ui.geo_tools_table.setColumnHidden(3, True)
# self.ui.geo_tools_table.setColumnHidden(2, True)
# self.ui.geo_tools_table.setColumnHidden(3, True)
# #############################################################################################################
# ##################################### Setting Values#########################################################