- 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 19.11.2020
- cleaned up the Geometry Properties UI - cleaned up the Geometry Properties UI
- in Geometry Properties UI restored the plot functionality
17.11.2020 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. # engine of FlatCAM. Most likely are generated by some of tools and are special cases of geometries.
self.special_group = None self.special_group = None
self.old_pp_state = self.app.defaults["geometry_multidepth"] # self.old_pp_state = self.app.defaults["geometry_multidepth"]
self.old_toolchangeg_state = self.app.defaults["geometry_toolchange"] # self.old_toolchangeg_state = self.app.defaults["geometry_toolchange"]
self.units_found = self.app.defaults['units'] self.units_found = self.app.defaults['units']
# this variable can be updated by the Object that generates the geometry # this variable can be updated by the Object that generates the geometry
@@ -328,6 +328,8 @@ class GeometryObject(FlatCAMObj, Geometry):
else: else:
self.ui.geo_tools_table.setColumnHidden(6, False) self.ui.geo_tools_table.setColumnHidden(6, False)
self.ui_connect()
# self.set_tool_offset_visibility(selected_row) # self.set_tool_offset_visibility(selected_row)
# ############################################################################################################# # #############################################################################################################
@@ -526,62 +528,62 @@ class GeometryObject(FlatCAMObj, Geometry):
oname = opt_key[len('tools_mill') + 1:] oname = opt_key[len('tools_mill') + 1:]
self.default_data[oname] = self.app.options[opt_key] self.default_data[oname] = self.app.options[opt_key]
# fill in self.default_data values from self.options # fill in self.default_data values from self.options
# for def_key in self.default_data: for def_key in self.default_data:
# for opt_key, opt_val in self.options.items(): for opt_key, opt_val in self.options.items():
# if def_key == opt_key: if def_key == opt_key:
# self.default_data[def_key] = deepcopy(opt_val) self.default_data[def_key] = deepcopy(opt_val)
# if type(self.options["cnctooldia"]) == float: if type(self.options["cnctooldia"]) == float:
# tools_list = [self.options["cnctooldia"]] tools_list = [self.options["cnctooldia"]]
# else: else:
# try: try:
# temp_tools = self.options["cnctooldia"].split(",") temp_tools = self.options["cnctooldia"].split(",")
# tools_list = [ tools_list = [
# float(eval(dia)) for dia in temp_tools if dia != '' float(eval(dia)) for dia in temp_tools if dia != ''
# ] ]
# except Exception as e: except Exception as e:
# log.error("GeometryObject.set_ui() -> At least one tool diameter needed. " log.error("GeometryObject.set_ui() -> At least one tool diameter needed. "
# "Verify in Edit -> Preferences -> Geometry General -> Tool dia. %s" % str(e)) "Verify in Edit -> Preferences -> Geometry General -> Tool dia. %s" % str(e))
# return 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_entry.hide()
# self.ui.tool_offset_lbl.hide() # self.ui.tool_offset_lbl.hide()
# used to store the state of the mpass_cb if the selected preprocessor for geometry is hpgl # 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_pp_state = self.default_data['multidepth']
self.old_toolchangeg_state = self.default_data['toolchange'] # self.old_toolchangeg_state = self.default_data['toolchange']
if not isinstance(self.ui, GeometryObjectUI): if not isinstance(self.ui, GeometryObjectUI):
log.debug("Expected a GeometryObjectUI, got %s" % type(self.ui)) log.debug("Expected a GeometryObjectUI, got %s" % type(self.ui))
@@ -1957,112 +1959,112 @@ class GeometryObject(FlatCAMObj, Geometry):
item[0] = str(item[0]) item[0] = str(item[0])
return table_tools_items return table_tools_items
def on_pp_changed(self): # def on_pp_changed(self):
current_pp = self.ui.pp_geometry_name_cb.get_value() # current_pp = self.ui.pp_geometry_name_cb.get_value()
if current_pp == 'hpgl': # if current_pp == 'hpgl':
self.old_pp_state = self.ui.mpass_cb.get_value() # self.old_pp_state = self.ui.mpass_cb.get_value()
self.old_toolchangeg_state = self.ui.toolchangeg_cb.get_value() # self.old_toolchangeg_state = self.ui.toolchangeg_cb.get_value()
#
self.ui.mpass_cb.set_value(False) # self.ui.mpass_cb.set_value(False)
self.ui.mpass_cb.setDisabled(True) # self.ui.mpass_cb.setDisabled(True)
#
self.ui.toolchangeg_cb.set_value(True) # self.ui.toolchangeg_cb.set_value(True)
self.ui.toolchangeg_cb.setDisabled(True) # self.ui.toolchangeg_cb.setDisabled(True)
else: # else:
self.ui.mpass_cb.set_value(self.old_pp_state) # self.ui.mpass_cb.set_value(self.old_pp_state)
self.ui.mpass_cb.setDisabled(False) # self.ui.mpass_cb.setDisabled(False)
#
self.ui.toolchangeg_cb.set_value(self.old_toolchangeg_state) # self.ui.toolchangeg_cb.set_value(self.old_toolchangeg_state)
self.ui.toolchangeg_cb.setDisabled(False) # self.ui.toolchangeg_cb.setDisabled(False)
#
if "toolchange_probe" in current_pp.lower(): # if "toolchange_probe" in current_pp.lower():
self.ui.pdepth_entry.setVisible(True) # self.ui.pdepth_entry.setVisible(True)
self.ui.pdepth_label.show() # self.ui.pdepth_label.show()
#
self.ui.feedrate_probe_entry.setVisible(True) # self.ui.feedrate_probe_entry.setVisible(True)
self.ui.feedrate_probe_label.show() # self.ui.feedrate_probe_label.show()
else: # else:
self.ui.pdepth_entry.setVisible(False) # self.ui.pdepth_entry.setVisible(False)
self.ui.pdepth_label.hide() # self.ui.pdepth_label.hide()
#
self.ui.feedrate_probe_entry.setVisible(False) # self.ui.feedrate_probe_entry.setVisible(False)
self.ui.feedrate_probe_label.hide() # self.ui.feedrate_probe_label.hide()
#
if 'marlin' in current_pp.lower() or 'custom' in current_pp.lower(): # if 'marlin' in current_pp.lower() or 'custom' in current_pp.lower():
self.ui.fr_rapidlabel.show() # self.ui.fr_rapidlabel.show()
self.ui.feedrate_rapid_entry.show() # self.ui.feedrate_rapid_entry.show()
else: # else:
self.ui.fr_rapidlabel.hide() # self.ui.fr_rapidlabel.hide()
self.ui.feedrate_rapid_entry.hide() # self.ui.feedrate_rapid_entry.hide()
#
if 'laser' in current_pp.lower(): # if 'laser' in current_pp.lower():
self.ui.cutzlabel.hide() # self.ui.cutzlabel.hide()
self.ui.cutz_entry.hide() # self.ui.cutz_entry.hide()
try: # try:
self.ui.mpass_cb.hide() # self.ui.mpass_cb.hide()
self.ui.maxdepth_entry.hide() # self.ui.maxdepth_entry.hide()
except AttributeError: # except AttributeError:
pass # pass
#
if 'marlin' in current_pp.lower(): # if 'marlin' in current_pp.lower():
self.ui.travelzlabel.setText('%s:' % _("Focus Z")) # self.ui.travelzlabel.setText('%s:' % _("Focus Z"))
self.ui.endz_label.show() # self.ui.endz_label.show()
self.ui.endz_entry.show() # self.ui.endz_entry.show()
else: # else:
self.ui.travelzlabel.hide() # self.ui.travelzlabel.hide()
self.ui.travelz_entry.hide() # self.ui.travelz_entry.hide()
#
self.ui.endz_label.hide() # self.ui.endz_label.hide()
self.ui.endz_entry.hide() # self.ui.endz_entry.hide()
#
try: # try:
self.ui.frzlabel.hide() # self.ui.frzlabel.hide()
self.ui.feedrate_z_entry.hide() # self.ui.feedrate_z_entry.hide()
except AttributeError: # except AttributeError:
pass # pass
#
self.ui.dwell_cb.hide() # self.ui.dwell_cb.hide()
self.ui.dwelltime_entry.hide() # self.ui.dwelltime_entry.hide()
#
self.ui.spindle_label.setText('%s:' % _("Laser Power")) # self.ui.spindle_label.setText('%s:' % _("Laser Power"))
#
try: # try:
self.ui.tool_offset_label.hide() # self.ui.tool_offset_label.hide()
self.ui.offset_entry.hide() # self.ui.offset_entry.hide()
except AttributeError: # except AttributeError:
pass # pass
else: # else:
self.ui.cutzlabel.show() # self.ui.cutzlabel.show()
self.ui.cutz_entry.show() # self.ui.cutz_entry.show()
try: # try:
self.ui.mpass_cb.show() # self.ui.mpass_cb.show()
self.ui.maxdepth_entry.show() # self.ui.maxdepth_entry.show()
except AttributeError: # except AttributeError:
pass # pass
#
self.ui.travelzlabel.setText('%s:' % _('Travel Z')) # self.ui.travelzlabel.setText('%s:' % _('Travel Z'))
#
self.ui.travelzlabel.show() # self.ui.travelzlabel.show()
self.ui.travelz_entry.show() # self.ui.travelz_entry.show()
#
self.ui.endz_label.show() # self.ui.endz_label.show()
self.ui.endz_entry.show() # self.ui.endz_entry.show()
#
try: # try:
self.ui.frzlabel.show() # self.ui.frzlabel.show()
self.ui.feedrate_z_entry.show() # self.ui.feedrate_z_entry.show()
except AttributeError: # except AttributeError:
pass # pass
self.ui.dwell_cb.show() # self.ui.dwell_cb.show()
self.ui.dwelltime_entry.show() # self.ui.dwelltime_entry.show()
#
self.ui.spindle_label.setText('%s:' % _('Spindle speed')) # self.ui.spindle_label.setText('%s:' % _('Spindle speed'))
#
try: # try:
self.ui.tool_offset_lbl.show() # self.ui.tool_offset_lbl.show()
self.ui.offset_entry.show() # self.ui.offset_entry.show()
except AttributeError: # except AttributeError:
pass # pass
def on_generatecnc_button_click(self): def on_generatecnc_button_click(self):
log.debug("Generating CNCJob from Geometry ...") log.debug("Generating CNCJob from Geometry ...")