- in Geometry Properties UI restored the plot functionality

This commit is contained in:
Marius Stanciu
2020-11-19 15:42:23 +02:00
parent e8160ba6c5
commit 3d869279dc
2 changed files with 161 additions and 158 deletions

View File

@@ -10,6 +10,7 @@ CHANGELOG for FlatCAM beta
19.11.2020
- cleaned up the Geometry Properties UI
- in Geometry Properties UI restored the plot functionality
17.11.2020

View File

@@ -142,8 +142,8 @@ class GeometryObject(FlatCAMObj, Geometry):
# engine of FlatCAM. Most likely are generated by some of tools and are special cases of geometries.
self.special_group = None
self.old_pp_state = self.app.defaults["geometry_multidepth"]
self.old_toolchangeg_state = self.app.defaults["geometry_toolchange"]
# self.old_pp_state = self.app.defaults["geometry_multidepth"]
# self.old_toolchangeg_state = self.app.defaults["geometry_toolchange"]
self.units_found = self.app.defaults['units']
# this variable can be updated by the Object that generates the geometry
@@ -328,6 +328,8 @@ class GeometryObject(FlatCAMObj, Geometry):
else:
self.ui.geo_tools_table.setColumnHidden(6, False)
self.ui_connect()
# self.set_tool_offset_visibility(selected_row)
# #############################################################################################################
@@ -526,62 +528,62 @@ class GeometryObject(FlatCAMObj, Geometry):
oname = opt_key[len('tools_mill') + 1:]
self.default_data[oname] = self.app.options[opt_key]
# fill in self.default_data values from self.options
# for def_key in self.default_data:
# for opt_key, opt_val in self.options.items():
# if def_key == opt_key:
# self.default_data[def_key] = deepcopy(opt_val)
for def_key in self.default_data:
for opt_key, opt_val in self.options.items():
if def_key == opt_key:
self.default_data[def_key] = deepcopy(opt_val)
# if type(self.options["cnctooldia"]) == float:
# tools_list = [self.options["cnctooldia"]]
# else:
# try:
# temp_tools = self.options["cnctooldia"].split(",")
# tools_list = [
# float(eval(dia)) for dia in temp_tools if dia != ''
# ]
# except Exception as e:
# log.error("GeometryObject.set_ui() -> At least one tool diameter needed. "
# "Verify in Edit -> Preferences -> Geometry General -> Tool dia. %s" % str(e))
# return
if type(self.options["cnctooldia"]) == float:
tools_list = [self.options["cnctooldia"]]
else:
try:
temp_tools = self.options["cnctooldia"].split(",")
tools_list = [
float(eval(dia)) for dia in temp_tools if dia != ''
]
except Exception as e:
log.error("GeometryObject.set_ui() -> At least one tool diameter needed. "
"Verify in Edit -> Preferences -> Geometry General -> Tool dia. %s" % str(e))
return
self.tooluid += 1
if not self.tools:
for toold in tools_list:
new_data = deepcopy(self.default_data)
self.tools.update({
self.tooluid: {
'tooldia': self.app.dec_format(float(toold), self.decimals),
'offset': 'Path',
'offset_value': 0.0,
'type': 'Rough',
'tool_type': self.tool_type,
'data': new_data,
'solid_geometry': self.solid_geometry
}
})
self.tooluid += 1
else:
# if self.tools is not empty then it can safely be assumed that it comes from an opened project.
# Because of the serialization the self.tools list on project save, the dict keys (members of self.tools
# are each a dict) are turned into strings so we rebuild the self.tools elements so the keys are
# again float type; dict's don't like having keys changed when iterated through therefore the need for the
# following convoluted way of changing the keys from string to float type
temp_tools = {}
for tooluid_key in self.tools:
val = deepcopy(self.tools[tooluid_key])
new_key = deepcopy(int(tooluid_key))
temp_tools[new_key] = val
self.tools.clear()
self.tools = deepcopy(temp_tools)
# self.tooluid += 1
#
# if not self.tools:
# for toold in tools_list:
# new_data = deepcopy(self.default_data)
# self.tools.update({
# self.tooluid: {
# 'tooldia': self.app.dec_format(float(toold), self.decimals),
# 'offset': 'Path',
# 'offset_value': 0.0,
# 'type': 'Rough',
# 'tool_type': self.tool_type,
# 'data': new_data,
# 'solid_geometry': self.solid_geometry
# }
# })
# self.tooluid += 1
# else:
# # if self.tools is not empty then it can safely be assumed that it comes from an opened project.
# # Because of the serialization the self.tools list on project save, the dict keys (members of self.tools
# # are each a dict) are turned into strings so we rebuild the self.tools elements so the keys are
# # again float type; dict's don't like having keys changed when iterated through therefore the need for the
# # following convoluted way of changing the keys from string to float type
# temp_tools = {}
# for tooluid_key in self.tools:
# val = deepcopy(self.tools[tooluid_key])
# new_key = deepcopy(int(tooluid_key))
# temp_tools[new_key] = val
#
# self.tools.clear()
# self.tools = deepcopy(temp_tools)
#
# self.ui.tool_offset_entry.hide()
# self.ui.tool_offset_lbl.hide()
# used to store the state of the mpass_cb if the selected preprocessor for geometry is hpgl
self.old_pp_state = self.default_data['multidepth']
self.old_toolchangeg_state = self.default_data['toolchange']
# self.old_pp_state = self.default_data['multidepth']
# self.old_toolchangeg_state = self.default_data['toolchange']
if not isinstance(self.ui, GeometryObjectUI):
log.debug("Expected a GeometryObjectUI, got %s" % type(self.ui))
@@ -1957,112 +1959,112 @@ class GeometryObject(FlatCAMObj, Geometry):
item[0] = str(item[0])
return table_tools_items
def on_pp_changed(self):
current_pp = self.ui.pp_geometry_name_cb.get_value()
if current_pp == 'hpgl':
self.old_pp_state = self.ui.mpass_cb.get_value()
self.old_toolchangeg_state = self.ui.toolchangeg_cb.get_value()
self.ui.mpass_cb.set_value(False)
self.ui.mpass_cb.setDisabled(True)
self.ui.toolchangeg_cb.set_value(True)
self.ui.toolchangeg_cb.setDisabled(True)
else:
self.ui.mpass_cb.set_value(self.old_pp_state)
self.ui.mpass_cb.setDisabled(False)
self.ui.toolchangeg_cb.set_value(self.old_toolchangeg_state)
self.ui.toolchangeg_cb.setDisabled(False)
if "toolchange_probe" in current_pp.lower():
self.ui.pdepth_entry.setVisible(True)
self.ui.pdepth_label.show()
self.ui.feedrate_probe_entry.setVisible(True)
self.ui.feedrate_probe_label.show()
else:
self.ui.pdepth_entry.setVisible(False)
self.ui.pdepth_label.hide()
self.ui.feedrate_probe_entry.setVisible(False)
self.ui.feedrate_probe_label.hide()
if 'marlin' in current_pp.lower() or 'custom' in current_pp.lower():
self.ui.fr_rapidlabel.show()
self.ui.feedrate_rapid_entry.show()
else:
self.ui.fr_rapidlabel.hide()
self.ui.feedrate_rapid_entry.hide()
if 'laser' in current_pp.lower():
self.ui.cutzlabel.hide()
self.ui.cutz_entry.hide()
try:
self.ui.mpass_cb.hide()
self.ui.maxdepth_entry.hide()
except AttributeError:
pass
if 'marlin' in current_pp.lower():
self.ui.travelzlabel.setText('%s:' % _("Focus Z"))
self.ui.endz_label.show()
self.ui.endz_entry.show()
else:
self.ui.travelzlabel.hide()
self.ui.travelz_entry.hide()
self.ui.endz_label.hide()
self.ui.endz_entry.hide()
try:
self.ui.frzlabel.hide()
self.ui.feedrate_z_entry.hide()
except AttributeError:
pass
self.ui.dwell_cb.hide()
self.ui.dwelltime_entry.hide()
self.ui.spindle_label.setText('%s:' % _("Laser Power"))
try:
self.ui.tool_offset_label.hide()
self.ui.offset_entry.hide()
except AttributeError:
pass
else:
self.ui.cutzlabel.show()
self.ui.cutz_entry.show()
try:
self.ui.mpass_cb.show()
self.ui.maxdepth_entry.show()
except AttributeError:
pass
self.ui.travelzlabel.setText('%s:' % _('Travel Z'))
self.ui.travelzlabel.show()
self.ui.travelz_entry.show()
self.ui.endz_label.show()
self.ui.endz_entry.show()
try:
self.ui.frzlabel.show()
self.ui.feedrate_z_entry.show()
except AttributeError:
pass
self.ui.dwell_cb.show()
self.ui.dwelltime_entry.show()
self.ui.spindle_label.setText('%s:' % _('Spindle speed'))
try:
self.ui.tool_offset_lbl.show()
self.ui.offset_entry.show()
except AttributeError:
pass
# def on_pp_changed(self):
# current_pp = self.ui.pp_geometry_name_cb.get_value()
# if current_pp == 'hpgl':
# self.old_pp_state = self.ui.mpass_cb.get_value()
# self.old_toolchangeg_state = self.ui.toolchangeg_cb.get_value()
#
# self.ui.mpass_cb.set_value(False)
# self.ui.mpass_cb.setDisabled(True)
#
# self.ui.toolchangeg_cb.set_value(True)
# self.ui.toolchangeg_cb.setDisabled(True)
# else:
# self.ui.mpass_cb.set_value(self.old_pp_state)
# self.ui.mpass_cb.setDisabled(False)
#
# self.ui.toolchangeg_cb.set_value(self.old_toolchangeg_state)
# self.ui.toolchangeg_cb.setDisabled(False)
#
# if "toolchange_probe" in current_pp.lower():
# self.ui.pdepth_entry.setVisible(True)
# self.ui.pdepth_label.show()
#
# self.ui.feedrate_probe_entry.setVisible(True)
# self.ui.feedrate_probe_label.show()
# else:
# self.ui.pdepth_entry.setVisible(False)
# self.ui.pdepth_label.hide()
#
# self.ui.feedrate_probe_entry.setVisible(False)
# self.ui.feedrate_probe_label.hide()
#
# if 'marlin' in current_pp.lower() or 'custom' in current_pp.lower():
# self.ui.fr_rapidlabel.show()
# self.ui.feedrate_rapid_entry.show()
# else:
# self.ui.fr_rapidlabel.hide()
# self.ui.feedrate_rapid_entry.hide()
#
# if 'laser' in current_pp.lower():
# self.ui.cutzlabel.hide()
# self.ui.cutz_entry.hide()
# try:
# self.ui.mpass_cb.hide()
# self.ui.maxdepth_entry.hide()
# except AttributeError:
# pass
#
# if 'marlin' in current_pp.lower():
# self.ui.travelzlabel.setText('%s:' % _("Focus Z"))
# self.ui.endz_label.show()
# self.ui.endz_entry.show()
# else:
# self.ui.travelzlabel.hide()
# self.ui.travelz_entry.hide()
#
# self.ui.endz_label.hide()
# self.ui.endz_entry.hide()
#
# try:
# self.ui.frzlabel.hide()
# self.ui.feedrate_z_entry.hide()
# except AttributeError:
# pass
#
# self.ui.dwell_cb.hide()
# self.ui.dwelltime_entry.hide()
#
# self.ui.spindle_label.setText('%s:' % _("Laser Power"))
#
# try:
# self.ui.tool_offset_label.hide()
# self.ui.offset_entry.hide()
# except AttributeError:
# pass
# else:
# self.ui.cutzlabel.show()
# self.ui.cutz_entry.show()
# try:
# self.ui.mpass_cb.show()
# self.ui.maxdepth_entry.show()
# except AttributeError:
# pass
#
# self.ui.travelzlabel.setText('%s:' % _('Travel Z'))
#
# self.ui.travelzlabel.show()
# self.ui.travelz_entry.show()
#
# self.ui.endz_label.show()
# self.ui.endz_entry.show()
#
# try:
# self.ui.frzlabel.show()
# self.ui.feedrate_z_entry.show()
# except AttributeError:
# pass
# self.ui.dwell_cb.show()
# self.ui.dwelltime_entry.show()
#
# self.ui.spindle_label.setText('%s:' % _('Spindle speed'))
#
# try:
# self.ui.tool_offset_lbl.show()
# self.ui.offset_entry.show()
# except AttributeError:
# pass
def on_generatecnc_button_click(self):
log.debug("Generating CNCJob from Geometry ...")