- in Paint and NCC Tools made sure that using the key ESCAPE to cancel the tool will not create mouse events issues
- some updates in Tcl commands Paint and CopperClear data dicts
This commit is contained in:
parent
1fb1b1cdbe
commit
c0a4e2f3cc
|
@ -17,6 +17,9 @@ CHANGELOG for FlatCAM beta
|
|||
- NCC Tool - now the tools can be reordered (if the order UI radio is set to 'no')
|
||||
- remade the UI in Paint Tool and the tools in tools table ca now be reordered (if the order UI radio is set to 'no')
|
||||
- some updates in NCC Tool using code from Paint Tool
|
||||
- in Paint and NCC Tools made sure that using the key ESCAPE to cancel the tool will not create mouse events issues
|
||||
- some updates in Tcl commands Paint and CopperClear data dicts
|
||||
|
||||
|
||||
13.06.2020
|
||||
|
||||
|
|
|
@ -1621,19 +1621,19 @@ class ToolsDB2(QtWidgets.QWidget):
|
|||
self.grid3.addWidget(self.paintoverlap_entry, 1, 1)
|
||||
|
||||
# Margin
|
||||
marginlabel = QtWidgets.QLabel('%s:' % _('Margin'))
|
||||
marginlabel = QtWidgets.QLabel('%s:' % _('Offset'))
|
||||
marginlabel.setToolTip(
|
||||
_("Distance by which to avoid\n"
|
||||
"the edges of the polygon to\n"
|
||||
"be painted.")
|
||||
)
|
||||
self.paintmargin_entry = FCDoubleSpinner()
|
||||
self.paintmargin_entry.set_precision(self.decimals)
|
||||
self.paintmargin_entry.set_range(-9999.9999, 9999.9999)
|
||||
self.paintmargin_entry.setObjectName('gdb_p_margin')
|
||||
self.paint_offset_entry = FCDoubleSpinner()
|
||||
self.paint_offset_entry.set_precision(self.decimals)
|
||||
self.paint_offset_entry.set_range(-9999.9999, 9999.9999)
|
||||
self.paint_offset_entry.setObjectName('gdb_p_offset')
|
||||
|
||||
self.grid3.addWidget(marginlabel, 2, 0)
|
||||
self.grid3.addWidget(self.paintmargin_entry, 2, 1)
|
||||
self.grid3.addWidget(self.paint_offset_entry, 2, 1)
|
||||
|
||||
# Method
|
||||
methodlabel = QtWidgets.QLabel('%s:' % _('Method'))
|
||||
|
@ -1899,7 +1899,7 @@ class ToolsDB2(QtWidgets.QWidget):
|
|||
|
||||
# Paint
|
||||
"tools_paintoverlap": self.paintoverlap_entry,
|
||||
"tools_paintmargin": self.paintmargin_entry,
|
||||
"tools_paintoffset": self.paint_offset_entry,
|
||||
"tools_paintmethod": self.paintmethod_combo,
|
||||
"tools_pathconnect": self.pathconnect_cb,
|
||||
"tools_paintcontour": self.paintcontour_cb,
|
||||
|
@ -1952,7 +1952,7 @@ class ToolsDB2(QtWidgets.QWidget):
|
|||
|
||||
# Paint
|
||||
'gdb_p_overlap': "tools_paintoverlap",
|
||||
'gdb_p_margin': "tools_paintmargin",
|
||||
'gdb_p_offset': "tools_paintoffset",
|
||||
'gdb_p_method': "tools_paintmethod",
|
||||
'gdb_p_connect': "tools_pathconnect",
|
||||
'gdb_p_contour': "tools_paintcontour",
|
||||
|
@ -2210,7 +2210,7 @@ class ToolsDB2(QtWidgets.QWidget):
|
|||
|
||||
# Paint
|
||||
"tools_paintoverlap": float(self.app.defaults["tools_paintoverlap"]),
|
||||
"tools_paintmargin": float(self.app.defaults["tools_paintmargin"]),
|
||||
"tools_paintoffset": float(self.app.defaults["tools_paintoffset"]),
|
||||
"tools_paintmethod": self.app.defaults["tools_paintmethod"],
|
||||
"tools_pathconnect": self.app.defaults["tools_pathconnect"],
|
||||
"tools_paintcontour": self.app.defaults["tools_paintcontour"],
|
||||
|
@ -2656,8 +2656,8 @@ class ToolsDB2(QtWidgets.QWidget):
|
|||
# Paint Tool
|
||||
elif wdg_name == "gdb_p_overlap":
|
||||
self.db_tool_dict[tool_id]['data']['tools_paintoverlap'] = val
|
||||
elif wdg_name == "gdb_p_margin":
|
||||
self.db_tool_dict[tool_id]['data']['tools_paintmargin'] = val
|
||||
elif wdg_name == "gdb_p_offset":
|
||||
self.db_tool_dict[tool_id]['data']['tools_paintoffset'] = val
|
||||
elif wdg_name == "gdb_p_method":
|
||||
self.db_tool_dict[tool_id]['data']['tools_paintmethod'] = val
|
||||
elif wdg_name == "gdb_p_connect":
|
||||
|
|
|
@ -557,8 +557,8 @@ class PaintOptionsTool(AppTool):
|
|||
else:
|
||||
self.paintoverlap_entry.set_value(0.0)
|
||||
|
||||
if self.app.defaults["tools_paintmargin"]:
|
||||
self.paintmargin_entry.set_value(self.app.defaults["tools_paintmargin"])
|
||||
if self.app.defaults["tools_paintoffset"]:
|
||||
self.paintmargin_entry.set_value(self.app.defaults["tools_paintoffset"])
|
||||
else:
|
||||
self.paintmargin_entry.set_value(0.0)
|
||||
|
||||
|
|
|
@ -391,7 +391,7 @@ class PreferencesUIManager:
|
|||
"tools_painttooldia": self.ui.tools_defaults_form.tools_paint_group.painttooldia_entry,
|
||||
"tools_paintorder": self.ui.tools_defaults_form.tools_paint_group.paint_order_radio,
|
||||
"tools_paintoverlap": self.ui.tools_defaults_form.tools_paint_group.paintoverlap_entry,
|
||||
"tools_paintmargin": self.ui.tools_defaults_form.tools_paint_group.paintmargin_entry,
|
||||
"tools_paintoffset": self.ui.tools_defaults_form.tools_paint_group.paintmargin_entry,
|
||||
"tools_paintmethod": self.ui.tools_defaults_form.tools_paint_group.paintmethod_combo,
|
||||
"tools_selectmethod": self.ui.tools_defaults_form.tools_paint_group.selectmethod_combo,
|
||||
"tools_paint_area_shape": self.ui.tools_defaults_form.tools_paint_group.area_shape_radio,
|
||||
|
|
|
@ -52,49 +52,69 @@ class HPGL2:
|
|||
|
||||
self.default_data = {}
|
||||
self.default_data.update({
|
||||
"name": '_ncc',
|
||||
"plot": self.app.defaults["geometry_plot"],
|
||||
"cutz": self.app.defaults["geometry_cutz"],
|
||||
"vtipdia": self.app.defaults["geometry_vtipdia"],
|
||||
"vtipangle": self.app.defaults["geometry_vtipangle"],
|
||||
"travelz": self.app.defaults["geometry_travelz"],
|
||||
"feedrate": self.app.defaults["geometry_feedrate"],
|
||||
"feedrate_z": self.app.defaults["geometry_feedrate_z"],
|
||||
"feedrate_rapid": self.app.defaults["geometry_feedrate_rapid"],
|
||||
"dwell": self.app.defaults["geometry_dwell"],
|
||||
"dwelltime": self.app.defaults["geometry_dwelltime"],
|
||||
"multidepth": self.app.defaults["geometry_multidepth"],
|
||||
"ppname_g": self.app.defaults["geometry_ppname_g"],
|
||||
"depthperpass": self.app.defaults["geometry_depthperpass"],
|
||||
"extracut": self.app.defaults["geometry_extracut"],
|
||||
"extracut_length": self.app.defaults["geometry_extracut_length"],
|
||||
"toolchange": self.app.defaults["geometry_toolchange"],
|
||||
"toolchangez": self.app.defaults["geometry_toolchangez"],
|
||||
"endz": self.app.defaults["geometry_endz"],
|
||||
"endxy": self.app.defaults["geometry_endxy"],
|
||||
"area_exclusion": self.app.defaults["geometry_area_exclusion"],
|
||||
"area_shape": self.app.defaults["geometry_area_shape"],
|
||||
"area_strategy": self.app.defaults["geometry_area_strategy"],
|
||||
"area_overz": self.app.defaults["geometry_area_overz"],
|
||||
"name": '_ncc',
|
||||
"plot": self.app.defaults["geometry_plot"],
|
||||
"cutz": self.app.defaults["geometry_cutz"],
|
||||
"vtipdia": self.app.defaults["geometry_vtipdia"],
|
||||
"vtipangle": self.app.defaults["geometry_vtipangle"],
|
||||
"travelz": self.app.defaults["geometry_travelz"],
|
||||
"feedrate": self.app.defaults["geometry_feedrate"],
|
||||
"feedrate_z": self.app.defaults["geometry_feedrate_z"],
|
||||
"feedrate_rapid": self.app.defaults["geometry_feedrate_rapid"],
|
||||
"dwell": self.app.defaults["geometry_dwell"],
|
||||
"dwelltime": self.app.defaults["geometry_dwelltime"],
|
||||
"multidepth": self.app.defaults["geometry_multidepth"],
|
||||
"ppname_g": self.app.defaults["geometry_ppname_g"],
|
||||
"depthperpass": self.app.defaults["geometry_depthperpass"],
|
||||
"extracut": self.app.defaults["geometry_extracut"],
|
||||
"extracut_length": self.app.defaults["geometry_extracut_length"],
|
||||
"toolchange": self.app.defaults["geometry_toolchange"],
|
||||
"toolchangez": self.app.defaults["geometry_toolchangez"],
|
||||
"endz": self.app.defaults["geometry_endz"],
|
||||
"endxy": self.app.defaults["geometry_endxy"],
|
||||
"area_exclusion": self.app.defaults["geometry_area_exclusion"],
|
||||
"area_shape": self.app.defaults["geometry_area_shape"],
|
||||
"area_strategy": self.app.defaults["geometry_area_strategy"],
|
||||
"area_overz": self.app.defaults["geometry_area_overz"],
|
||||
|
||||
"spindlespeed": self.app.defaults["geometry_spindlespeed"],
|
||||
"toolchangexy": self.app.defaults["geometry_toolchangexy"],
|
||||
"startz": self.app.defaults["geometry_startz"],
|
||||
"spindlespeed": self.app.defaults["geometry_spindlespeed"],
|
||||
"toolchangexy": self.app.defaults["geometry_toolchangexy"],
|
||||
"startz": self.app.defaults["geometry_startz"],
|
||||
|
||||
"tooldia": self.app.defaults["tools_painttooldia"],
|
||||
"paintmargin": self.app.defaults["tools_paintmargin"],
|
||||
"paintmethod": self.app.defaults["tools_paintmethod"],
|
||||
"selectmethod": self.app.defaults["tools_selectmethod"],
|
||||
"pathconnect": self.app.defaults["tools_pathconnect"],
|
||||
"paintcontour": self.app.defaults["tools_paintcontour"],
|
||||
"paintoverlap": self.app.defaults["tools_paintoverlap"],
|
||||
"tooldia": self.app.defaults["tools_painttooldia"],
|
||||
"tools_paintoffset": self.app.defaults["tools_paintoffset"],
|
||||
"tools_paintmethod": self.app.defaults["tools_paintmethod"],
|
||||
"tools_selectmethod": self.app.defaults["tools_selectmethod"],
|
||||
"tools_pathconnect": self.app.defaults["tools_pathconnect"],
|
||||
"tools_paintcontour": self.app.defaults["tools_paintcontour"],
|
||||
"tools_paintoverlap": self.app.defaults["tools_paintoverlap"],
|
||||
"tools_paintrest": self.app.defaults["tools_paintrest"],
|
||||
|
||||
"nccoverlap": self.app.defaults["tools_nccoverlap"],
|
||||
"nccmargin": self.app.defaults["tools_nccmargin"],
|
||||
"nccmethod": self.app.defaults["tools_nccmethod"],
|
||||
"nccconnect": self.app.defaults["tools_nccconnect"],
|
||||
"ncccontour": self.app.defaults["tools_ncccontour"],
|
||||
"nccrest": self.app.defaults["tools_nccrest"]
|
||||
"tools_nccoperation": self.app.defaults["tools_nccoperation"],
|
||||
"tools_nccmargin": self.app.defaults["tools_nccmargin"],
|
||||
"tools_nccmethod": self.app.defaults["tools_nccmethod"],
|
||||
"tools_nccconnect": self.app.defaults["tools_nccconnect"],
|
||||
"tools_ncccontour": self.app.defaults["tools_ncccontour"],
|
||||
"tools_nccoverlap": self.app.defaults["tools_nccoverlap"],
|
||||
"tools_nccrest": self.app.defaults["tools_nccrest"],
|
||||
"tools_nccref": self.app.defaults["tools_nccref"],
|
||||
"tools_ncc_offset_choice": self.app.defaults["tools_ncc_offset_choice"],
|
||||
"tools_ncc_offset_value": self.app.defaults["tools_ncc_offset_value"],
|
||||
"tools_nccmilling_type": self.app.defaults["tools_nccmilling_type"],
|
||||
|
||||
"tools_iso_passes": self.app.defaults["tools_iso_passes"],
|
||||
"tools_iso_overlap": self.app.defaults["tools_iso_overlap"],
|
||||
"tools_iso_milling_type": self.app.defaults["tools_iso_milling_type"],
|
||||
"tools_iso_follow": self.app.defaults["tools_iso_follow"],
|
||||
"tools_iso_isotype": self.app.defaults["tools_iso_isotype"],
|
||||
|
||||
"tools_iso_rest": self.app.defaults["tools_iso_rest"],
|
||||
"tools_iso_combine_passes": self.app.defaults["tools_iso_combine_passes"],
|
||||
"tools_iso_isoexcept": self.app.defaults["tools_iso_isoexcept"],
|
||||
"tools_iso_selection": self.app.defaults["tools_iso_selection"],
|
||||
"tools_iso_poly_ints": self.app.defaults["tools_iso_poly_ints"],
|
||||
"tools_iso_force": self.app.defaults["tools_iso_force"],
|
||||
"tools_iso_area_shape": self.app.defaults["tools_iso_area_shape"]
|
||||
})
|
||||
|
||||
# will store the geometry here for compatibility reason
|
||||
|
|
|
@ -527,7 +527,7 @@ class CutOut(AppTool):
|
|||
|
||||
# Paint
|
||||
"tools_paintoverlap": float(self.app.defaults["tools_paintoverlap"]),
|
||||
"tools_paintmargin": float(self.app.defaults["tools_paintmargin"]),
|
||||
"tools_paintoffset": float(self.app.defaults["tools_paintoffset"]),
|
||||
"tools_paintmethod": self.app.defaults["tools_paintmethod"],
|
||||
"tools_pathconnect": self.app.defaults["tools_pathconnect"],
|
||||
"tools_paintcontour": self.app.defaults["tools_paintcontour"],
|
||||
|
|
|
@ -106,9 +106,11 @@ class NonCopperClear(AppTool, Gerber):
|
|||
|
||||
self.mm = None
|
||||
self.mr = None
|
||||
|
||||
self.kp = None
|
||||
|
||||
# disconnect flags
|
||||
self.area_sel_disconnect_flag = False
|
||||
|
||||
# store here solid_geometry when there are tool with isolation job
|
||||
self.solid_geometry = []
|
||||
|
||||
|
@ -186,10 +188,7 @@ class NonCopperClear(AppTool, Gerber):
|
|||
|
||||
# all the tools are selected by default
|
||||
# self.ui.tools_table.selectColumn(0)
|
||||
self.ui.tools_table.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
|
||||
for row in range(self.ui.tools_table.rowCount()):
|
||||
self.ui.tools_table.selectRow(row)
|
||||
self.ui.tools_table.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
|
||||
self.ui.tools_table.selectAll()
|
||||
|
||||
self.app.ui.notebook.setTabText(2, _("NCC Tool"))
|
||||
|
||||
|
@ -506,47 +505,47 @@ class NonCopperClear(AppTool, Gerber):
|
|||
# init the working variables
|
||||
self.default_data.clear()
|
||||
self.default_data = {
|
||||
"name": '_ncc',
|
||||
"plot": self.app.defaults["geometry_plot"],
|
||||
"cutz": float(self.ui.cutz_entry.get_value()),
|
||||
"vtipdia": float(self.ui.tipdia_entry.get_value()),
|
||||
"vtipangle": float(self.ui.tipangle_entry.get_value()),
|
||||
"travelz": self.app.defaults["geometry_travelz"],
|
||||
"feedrate": self.app.defaults["geometry_feedrate"],
|
||||
"feedrate_z": self.app.defaults["geometry_feedrate_z"],
|
||||
"feedrate_rapid": self.app.defaults["geometry_feedrate_rapid"],
|
||||
"dwell": self.app.defaults["geometry_dwell"],
|
||||
"dwelltime": self.app.defaults["geometry_dwelltime"],
|
||||
"multidepth": self.app.defaults["geometry_multidepth"],
|
||||
"ppname_g": self.app.defaults["geometry_ppname_g"],
|
||||
"depthperpass": self.app.defaults["geometry_depthperpass"],
|
||||
"extracut": self.app.defaults["geometry_extracut"],
|
||||
"extracut_length": self.app.defaults["geometry_extracut_length"],
|
||||
"toolchange": self.app.defaults["geometry_toolchange"],
|
||||
"toolchangez": self.app.defaults["geometry_toolchangez"],
|
||||
"endz": self.app.defaults["geometry_endz"],
|
||||
"endxy": self.app.defaults["geometry_endxy"],
|
||||
"name": '_ncc',
|
||||
"plot": self.app.defaults["geometry_plot"],
|
||||
"cutz": float(self.app.defaults["geometry_cutz"]),
|
||||
"vtipdia": float(self.app.defaults["geometry_vtipdia"]),
|
||||
"vtipangle": float(self.app.defaults["geometry_vtipangle"]),
|
||||
"travelz": self.app.defaults["geometry_travelz"],
|
||||
"feedrate": self.app.defaults["geometry_feedrate"],
|
||||
"feedrate_z": self.app.defaults["geometry_feedrate_z"],
|
||||
"feedrate_rapid": self.app.defaults["geometry_feedrate_rapid"],
|
||||
"dwell": self.app.defaults["geometry_dwell"],
|
||||
"dwelltime": self.app.defaults["geometry_dwelltime"],
|
||||
"multidepth": self.app.defaults["geometry_multidepth"],
|
||||
"ppname_g": self.app.defaults["geometry_ppname_g"],
|
||||
"depthperpass": self.app.defaults["geometry_depthperpass"],
|
||||
"extracut": self.app.defaults["geometry_extracut"],
|
||||
"extracut_length": self.app.defaults["geometry_extracut_length"],
|
||||
"toolchange": self.app.defaults["geometry_toolchange"],
|
||||
"toolchangez": self.app.defaults["geometry_toolchangez"],
|
||||
"endz": self.app.defaults["geometry_endz"],
|
||||
"endxy": self.app.defaults["geometry_endxy"],
|
||||
|
||||
"spindlespeed": self.app.defaults["geometry_spindlespeed"],
|
||||
"toolchangexy": self.app.defaults["geometry_toolchangexy"],
|
||||
"startz": self.app.defaults["geometry_startz"],
|
||||
"spindlespeed": self.app.defaults["geometry_spindlespeed"],
|
||||
"toolchangexy": self.app.defaults["geometry_toolchangexy"],
|
||||
"startz": self.app.defaults["geometry_startz"],
|
||||
|
||||
"area_exclusion": self.app.defaults["geometry_area_exclusion"],
|
||||
"area_shape": self.app.defaults["geometry_area_shape"],
|
||||
"area_strategy": self.app.defaults["geometry_area_strategy"],
|
||||
"area_overz": float(self.app.defaults["geometry_area_overz"]),
|
||||
"area_exclusion": self.app.defaults["geometry_area_exclusion"],
|
||||
"area_shape": self.app.defaults["geometry_area_shape"],
|
||||
"area_strategy": self.app.defaults["geometry_area_strategy"],
|
||||
"area_overz": float(self.app.defaults["geometry_area_overz"]),
|
||||
|
||||
"tools_nccoperation": self.app.defaults["tools_nccoperation"],
|
||||
"tools_nccmargin": self.app.defaults["tools_nccmargin"],
|
||||
"tools_nccmethod": self.app.defaults["tools_nccmethod"],
|
||||
"tools_nccconnect": self.app.defaults["tools_nccconnect"],
|
||||
"tools_ncccontour": self.app.defaults["tools_ncccontour"],
|
||||
"tools_nccoverlap": self.app.defaults["tools_nccoverlap"],
|
||||
"nccrest": self.app.defaults["tools_nccrest"],
|
||||
"nccref": self.app.defaults["tools_nccref"],
|
||||
"tools_ncc_offset_choice": self.app.defaults["tools_ncc_offset_choice"],
|
||||
"tools_ncc_offset_value": self.app.defaults["tools_ncc_offset_value"],
|
||||
"tools_nccmilling_type": self.app.defaults["tools_nccmilling_type"],
|
||||
"tools_nccoperation": self.app.defaults["tools_nccoperation"],
|
||||
"tools_nccmargin": self.app.defaults["tools_nccmargin"],
|
||||
"tools_nccmethod": self.app.defaults["tools_nccmethod"],
|
||||
"tools_nccconnect": self.app.defaults["tools_nccconnect"],
|
||||
"tools_ncccontour": self.app.defaults["tools_ncccontour"],
|
||||
"tools_nccoverlap": self.app.defaults["tools_nccoverlap"],
|
||||
"tools_nccrest": self.app.defaults["tools_nccrest"],
|
||||
"tools_nccref": self.app.defaults["tools_nccref"],
|
||||
"tools_ncc_offset_choice": self.app.defaults["tools_ncc_offset_choice"],
|
||||
"tools_ncc_offset_value": self.app.defaults["tools_ncc_offset_value"],
|
||||
"tools_nccmilling_type": self.app.defaults["tools_nccmilling_type"]
|
||||
}
|
||||
|
||||
try:
|
||||
|
@ -1204,6 +1203,9 @@ class NonCopperClear(AppTool, Gerber):
|
|||
self.mm = self.app.plotcanvas.graph_event_connect('mouse_move', self.on_mouse_move)
|
||||
self.kp = self.app.plotcanvas.graph_event_connect('key_press', self.on_key_press)
|
||||
|
||||
# disconnect flags
|
||||
self.area_sel_disconnect_flag = True
|
||||
|
||||
elif self.select_method == _("Reference Object"):
|
||||
self.bound_obj_name = self.ui.reference_combo.currentText()
|
||||
# Get source object.
|
||||
|
@ -1327,6 +1329,9 @@ class NonCopperClear(AppTool, Gerber):
|
|||
self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
|
||||
self.app.on_mouse_click_release_over_plot)
|
||||
|
||||
# disconnect flags
|
||||
self.area_sel_disconnect_flag = False
|
||||
|
||||
if len(self.sel_rect) == 0:
|
||||
return
|
||||
|
||||
|
@ -1432,37 +1437,39 @@ class NonCopperClear(AppTool, Gerber):
|
|||
key = event.key
|
||||
|
||||
if key == QtCore.Qt.Key_Escape or key == 'Escape':
|
||||
if self.app.is_legacy is False:
|
||||
self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release)
|
||||
self.app.plotcanvas.graph_event_disconnect('mouse_move', self.on_mouse_move)
|
||||
self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_press)
|
||||
else:
|
||||
self.app.plotcanvas.graph_event_disconnect(self.mr)
|
||||
self.app.plotcanvas.graph_event_disconnect(self.mm)
|
||||
self.app.plotcanvas.graph_event_disconnect(self.kp)
|
||||
|
||||
try:
|
||||
# restore the Grid snapping if it was active before
|
||||
if self.grid_status_memory is True:
|
||||
self.app.ui.grid_snap_btn.trigger()
|
||||
|
||||
if self.area_sel_disconnect_flag is True:
|
||||
if self.app.is_legacy is False:
|
||||
self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_single_poly_mouse_release)
|
||||
self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release)
|
||||
self.app.plotcanvas.graph_event_disconnect('mouse_move', self.on_mouse_move)
|
||||
self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_press)
|
||||
else:
|
||||
self.app.plotcanvas.graph_event_disconnect(self.mr)
|
||||
self.app.plotcanvas.graph_event_disconnect(self.mm)
|
||||
self.app.plotcanvas.graph_event_disconnect(self.kp)
|
||||
|
||||
self.app.tool_shapes.clear(update=True)
|
||||
except Exception as e:
|
||||
log.debug("ToolPaint.on_key_press() _2 --> %s" % str(e))
|
||||
try:
|
||||
# restore the Grid snapping if it was active before
|
||||
if self.grid_status_memory is True:
|
||||
self.app.ui.grid_snap_btn.trigger()
|
||||
|
||||
self.app.mp = self.app.plotcanvas.graph_event_connect('mouse_press',
|
||||
self.app.on_mouse_click_over_plot)
|
||||
self.app.mm = self.app.plotcanvas.graph_event_connect('mouse_move',
|
||||
self.app.on_mouse_move_over_plot)
|
||||
self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
|
||||
self.app.on_mouse_click_release_over_plot)
|
||||
if self.app.is_legacy is False:
|
||||
self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_single_poly_mouse_release)
|
||||
self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_press)
|
||||
else:
|
||||
self.app.plotcanvas.graph_event_disconnect(self.mr)
|
||||
self.app.plotcanvas.graph_event_disconnect(self.kp)
|
||||
|
||||
self.app.tool_shapes.clear(update=True)
|
||||
except Exception as e:
|
||||
log.debug("ToolPaint.on_key_press() _2 --> %s" % str(e))
|
||||
|
||||
self.app.mp = self.app.plotcanvas.graph_event_connect('mouse_press',
|
||||
self.app.on_mouse_click_over_plot)
|
||||
self.app.mm = self.app.plotcanvas.graph_event_connect('mouse_move',
|
||||
self.app.on_mouse_move_over_plot)
|
||||
self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
|
||||
self.app.on_mouse_click_release_over_plot)
|
||||
self.points = []
|
||||
self.poly_drawn = False
|
||||
|
||||
|
|
|
@ -85,6 +85,10 @@ class ToolPaint(AppTool, Gerber):
|
|||
self.mr = None
|
||||
self.kp = None
|
||||
|
||||
# disconnect flags
|
||||
self.area_sel_disconnect_flag = False
|
||||
self.poly_sel_disconnect_flag = False
|
||||
|
||||
self.sel_rect = []
|
||||
|
||||
# store here if the grid snapping is active
|
||||
|
@ -100,7 +104,7 @@ class ToolPaint(AppTool, Gerber):
|
|||
|
||||
self.form_fields = {
|
||||
"tools_paintoverlap": self.ui.paintoverlap_entry,
|
||||
"tools_paintmargin": self.ui.paintmargin_entry,
|
||||
"tools_paintoffset": self.ui.offset_entry,
|
||||
"tools_paintmethod": self.ui.paintmethod_combo,
|
||||
"tools_pathconnect": self.ui.pathconnect_cb,
|
||||
"tools_paintcontour": self.ui.paintcontour_cb,
|
||||
|
@ -108,7 +112,7 @@ class ToolPaint(AppTool, Gerber):
|
|||
|
||||
self.name2option = {
|
||||
'p_overlap': "tools_paintoverlap",
|
||||
'p_margin': "tools_paintmargin",
|
||||
'p_offset': "tools_paintoffset",
|
||||
'p_method': "tools_paintmethod",
|
||||
'p_connect': "tools_pathconnect",
|
||||
'p_contour': "tools_paintcontour",
|
||||
|
@ -222,10 +226,7 @@ class ToolPaint(AppTool, Gerber):
|
|||
self.build_ui()
|
||||
|
||||
# all the tools are selected by default
|
||||
self.ui.tools_table.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
|
||||
for row in range(self.ui.tools_table.rowCount()):
|
||||
self.ui.tools_table.selectRow(row)
|
||||
self.ui.tools_table.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
|
||||
self.ui.tools_table.selectAll()
|
||||
|
||||
self.app.ui.notebook.setTabText(2, _("Paint Tool"))
|
||||
|
||||
|
@ -510,49 +511,49 @@ class ToolPaint(AppTool, Gerber):
|
|||
|
||||
self.default_data.clear()
|
||||
self.default_data.update({
|
||||
"name": '_paint',
|
||||
"plot": self.app.defaults["geometry_plot"],
|
||||
"cutz": float(self.app.defaults["tools_paintcutz"],),
|
||||
"vtipdia": float(self.app.defaults["tools_painttipdia"],),
|
||||
"vtipangle": float(self.app.defaults["tools_painttipangle"],),
|
||||
"travelz": float(self.app.defaults["geometry_travelz"]),
|
||||
"feedrate": float(self.app.defaults["geometry_feedrate"]),
|
||||
"feedrate_z": float(self.app.defaults["geometry_feedrate_z"]),
|
||||
"feedrate_rapid": float(self.app.defaults["geometry_feedrate_rapid"]),
|
||||
"dwell": self.app.defaults["geometry_dwell"],
|
||||
"dwelltime": float(self.app.defaults["geometry_dwelltime"]),
|
||||
"multidepth": self.app.defaults["geometry_multidepth"],
|
||||
"ppname_g": self.app.defaults["geometry_ppname_g"],
|
||||
"depthperpass": float(self.app.defaults["geometry_depthperpass"]),
|
||||
"extracut": self.app.defaults["geometry_extracut"],
|
||||
"extracut_length": self.app.defaults["geometry_extracut_length"],
|
||||
"toolchange": self.app.defaults["geometry_toolchange"],
|
||||
"toolchangez": float(self.app.defaults["geometry_toolchangez"]),
|
||||
"endz": float(self.app.defaults["geometry_endz"]),
|
||||
"endxy": self.app.defaults["geometry_endxy"],
|
||||
"name": '_paint',
|
||||
"plot": self.app.defaults["geometry_plot"],
|
||||
"cutz": float(self.app.defaults["tools_paintcutz"]),
|
||||
"vtipdia": float(self.app.defaults["tools_painttipdia"]),
|
||||
"vtipangle": float(self.app.defaults["tools_painttipangle"]),
|
||||
"travelz": float(self.app.defaults["geometry_travelz"]),
|
||||
"feedrate": float(self.app.defaults["geometry_feedrate"]),
|
||||
"feedrate_z": float(self.app.defaults["geometry_feedrate_z"]),
|
||||
"feedrate_rapid": float(self.app.defaults["geometry_feedrate_rapid"]),
|
||||
"dwell": self.app.defaults["geometry_dwell"],
|
||||
"dwelltime": float(self.app.defaults["geometry_dwelltime"]),
|
||||
"multidepth": self.app.defaults["geometry_multidepth"],
|
||||
"ppname_g": self.app.defaults["geometry_ppname_g"],
|
||||
"depthperpass": float(self.app.defaults["geometry_depthperpass"]),
|
||||
"extracut": self.app.defaults["geometry_extracut"],
|
||||
"extracut_length": self.app.defaults["geometry_extracut_length"],
|
||||
"toolchange": self.app.defaults["geometry_toolchange"],
|
||||
"toolchangez": float(self.app.defaults["geometry_toolchangez"]),
|
||||
"endz": float(self.app.defaults["geometry_endz"]),
|
||||
"endxy": self.app.defaults["geometry_endxy"],
|
||||
|
||||
"spindlespeed": self.app.defaults["geometry_spindlespeed"],
|
||||
"toolchangexy": self.app.defaults["geometry_toolchangexy"],
|
||||
"startz": self.app.defaults["geometry_startz"],
|
||||
"spindlespeed": self.app.defaults["geometry_spindlespeed"],
|
||||
"toolchangexy": self.app.defaults["geometry_toolchangexy"],
|
||||
"startz": self.app.defaults["geometry_startz"],
|
||||
|
||||
"area_exclusion": self.app.defaults["geometry_area_exclusion"],
|
||||
"area_shape": self.app.defaults["geometry_area_shape"],
|
||||
"area_strategy": self.app.defaults["geometry_area_strategy"],
|
||||
"area_overz": float(self.app.defaults["geometry_area_overz"]),
|
||||
"area_exclusion": self.app.defaults["geometry_area_exclusion"],
|
||||
"area_shape": self.app.defaults["geometry_area_shape"],
|
||||
"area_strategy": self.app.defaults["geometry_area_strategy"],
|
||||
"area_overz": float(self.app.defaults["geometry_area_overz"]),
|
||||
|
||||
"tooldia": self.app.defaults["tools_painttooldia"],
|
||||
"tools_paintmargin": self.app.defaults["tools_paintmargin"],
|
||||
"tools_paintmethod": self.app.defaults["tools_paintmethod"],
|
||||
"tools_selectmethod": self.app.defaults["tools_selectmethod"],
|
||||
"tools_pathconnect": self.app.defaults["tools_pathconnect"],
|
||||
"tools_paintcontour": self.app.defaults["tools_paintcontour"],
|
||||
"tools_paintoverlap": self.app.defaults["tools_paintoverlap"],
|
||||
"tools_paintrest": self.app.defaults["tools_paintrest"],
|
||||
"tooldia": self.app.defaults["tools_painttooldia"],
|
||||
"tools_paintoffset": self.app.defaults["tools_paintoffset"],
|
||||
"tools_paintmethod": self.app.defaults["tools_paintmethod"],
|
||||
"tools_selectmethod": self.app.defaults["tools_selectmethod"],
|
||||
"tools_pathconnect": self.app.defaults["tools_pathconnect"],
|
||||
"tools_paintcontour": self.app.defaults["tools_paintcontour"],
|
||||
"tools_paintoverlap": self.app.defaults["tools_paintoverlap"],
|
||||
"tools_paintrest": self.app.defaults["tools_paintrest"],
|
||||
})
|
||||
|
||||
# ## Init the GUI interface
|
||||
self.ui.order_radio.set_value(self.app.defaults["tools_paintorder"])
|
||||
self.ui.paintmargin_entry.set_value(self.app.defaults["tools_paintmargin"])
|
||||
self.ui.offset_entry.set_value(self.app.defaults["tools_paintoffset"])
|
||||
self.ui.paintmethod_combo.set_value(self.app.defaults["tools_paintmethod"])
|
||||
self.ui.selectmethod_combo.set_value(self.app.defaults["tools_selectmethod"])
|
||||
self.ui.area_shape_radio.set_value(self.app.defaults["tools_paint_area_shape"])
|
||||
|
@ -1026,6 +1027,9 @@ class ToolPaint(AppTool, Gerber):
|
|||
self.app.plotcanvas.graph_event_disconnect(self.app.mr)
|
||||
self.app.plotcanvas.graph_event_disconnect(self.app.mp)
|
||||
|
||||
# disconnect flags
|
||||
self.poly_sel_disconnect_flag = True
|
||||
|
||||
elif self.select_method == _("Area Selection"):
|
||||
self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click the start point of the paint area."))
|
||||
|
||||
|
@ -1042,6 +1046,9 @@ class ToolPaint(AppTool, Gerber):
|
|||
self.mm = self.app.plotcanvas.graph_event_connect('mouse_move', self.on_mouse_move)
|
||||
self.kp = self.app.plotcanvas.graph_event_connect('key_press', self.on_key_press)
|
||||
|
||||
# disconnect flags
|
||||
self.area_sel_disconnect_flag = True
|
||||
|
||||
elif self.select_method == _("Reference Object"):
|
||||
self.bound_obj_name = self.reference_combo.currentText()
|
||||
# Get source object.
|
||||
|
@ -1127,6 +1134,9 @@ class ToolPaint(AppTool, Gerber):
|
|||
self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
|
||||
self.app.on_mouse_click_release_over_plot)
|
||||
|
||||
# disconnect flags
|
||||
self.poly_sel_disconnect_flag = False
|
||||
|
||||
self.app.tool_shapes.clear(update=True)
|
||||
|
||||
if self.poly_dict:
|
||||
|
@ -1250,6 +1260,9 @@ class ToolPaint(AppTool, Gerber):
|
|||
self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
|
||||
self.app.on_mouse_click_release_over_plot)
|
||||
|
||||
# disconnect flags
|
||||
self.area_sel_disconnect_flag = False
|
||||
|
||||
if len(self.sel_rect) == 0:
|
||||
return
|
||||
|
||||
|
@ -1360,41 +1373,47 @@ class ToolPaint(AppTool, Gerber):
|
|||
key = event.key
|
||||
|
||||
if key == QtCore.Qt.Key_Escape or key == 'Escape':
|
||||
try:
|
||||
if self.app.is_legacy is False:
|
||||
self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release)
|
||||
self.app.plotcanvas.graph_event_disconnect('mouse_move', self.on_mouse_move)
|
||||
self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_press)
|
||||
else:
|
||||
self.app.plotcanvas.graph_event_disconnect(self.mr)
|
||||
self.app.plotcanvas.graph_event_disconnect(self.mm)
|
||||
self.app.plotcanvas.graph_event_disconnect(self.kp)
|
||||
except Exception as e:
|
||||
log.debug("ToolPaint.on_key_press() _1 --> %s" % str(e))
|
||||
if self.area_sel_disconnect_flag is True:
|
||||
try:
|
||||
if self.app.is_legacy is False:
|
||||
self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_mouse_release)
|
||||
self.app.plotcanvas.graph_event_disconnect('mouse_move', self.on_mouse_move)
|
||||
self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_press)
|
||||
else:
|
||||
self.app.plotcanvas.graph_event_disconnect(self.mr)
|
||||
self.app.plotcanvas.graph_event_disconnect(self.mm)
|
||||
self.app.plotcanvas.graph_event_disconnect(self.kp)
|
||||
except Exception as e:
|
||||
log.debug("ToolPaint.on_key_press() _1 --> %s" % str(e))
|
||||
|
||||
try:
|
||||
# restore the Grid snapping if it was active before
|
||||
if self.grid_status_memory is True:
|
||||
self.app.ui.grid_snap_btn.trigger()
|
||||
self.app.mp = self.app.plotcanvas.graph_event_connect('mouse_press',
|
||||
self.app.on_mouse_click_over_plot)
|
||||
self.app.mm = self.app.plotcanvas.graph_event_connect('mouse_move',
|
||||
self.app.on_mouse_move_over_plot)
|
||||
self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
|
||||
self.app.on_mouse_click_release_over_plot)
|
||||
|
||||
if self.app.is_legacy is False:
|
||||
self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_single_poly_mouse_release)
|
||||
self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_press)
|
||||
else:
|
||||
self.app.plotcanvas.graph_event_disconnect(self.mr)
|
||||
self.app.plotcanvas.graph_event_disconnect(self.kp)
|
||||
if self.poly_sel_disconnect_flag is False:
|
||||
try:
|
||||
# restore the Grid snapping if it was active before
|
||||
if self.grid_status_memory is True:
|
||||
self.app.ui.grid_snap_btn.trigger()
|
||||
|
||||
self.app.tool_shapes.clear(update=True)
|
||||
except Exception as e:
|
||||
log.debug("ToolPaint.on_key_press() _2 --> %s" % str(e))
|
||||
if self.app.is_legacy is False:
|
||||
self.app.plotcanvas.graph_event_disconnect('mouse_release', self.on_single_poly_mouse_release)
|
||||
self.app.plotcanvas.graph_event_disconnect('key_press', self.on_key_press)
|
||||
else:
|
||||
self.app.plotcanvas.graph_event_disconnect(self.mr)
|
||||
self.app.plotcanvas.graph_event_disconnect(self.kp)
|
||||
|
||||
self.app.mp = self.app.plotcanvas.graph_event_connect('mouse_press',
|
||||
self.app.on_mouse_click_over_plot)
|
||||
self.app.mm = self.app.plotcanvas.graph_event_connect('mouse_move',
|
||||
self.app.on_mouse_move_over_plot)
|
||||
self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
|
||||
self.app.on_mouse_click_release_over_plot)
|
||||
self.app.tool_shapes.clear(update=True)
|
||||
except Exception as e:
|
||||
log.debug("ToolPaint.on_key_press() _2 --> %s" % str(e))
|
||||
|
||||
self.app.mr = self.app.plotcanvas.graph_event_connect('mouse_release',
|
||||
self.app.on_mouse_click_release_over_plot)
|
||||
self.app.mp = self.app.plotcanvas.graph_event_connect('mouse_press',
|
||||
self.app.on_mouse_click_over_plot)
|
||||
self.points = []
|
||||
self.poly_drawn = False
|
||||
self.poly_dict.clear()
|
||||
|
@ -1643,9 +1662,8 @@ class ToolPaint(AppTool, Gerber):
|
|||
self.app.inform.emit('[ERROR_NOTCL] %s' % _('Geometry could not be painted completely'))
|
||||
return None
|
||||
|
||||
def paint_poly(self, obj, inside_pt=None, poly_list=None, tooldia=None, order=None,
|
||||
method=None, outname=None, tools_storage=None,
|
||||
plot=True, run_threaded=True):
|
||||
def paint_poly(self, obj, inside_pt=None, poly_list=None, tooldia=None, order=None, method=None, outname=None,
|
||||
tools_storage=None, plot=True, run_threaded=True):
|
||||
"""
|
||||
Paints a polygon selected by clicking on its interior or by having a point coordinates given
|
||||
|
||||
|
@ -1752,11 +1770,11 @@ class ToolPaint(AppTool, Gerber):
|
|||
conn = tools_storage[current_uid]['data']['tools_pathconnect']
|
||||
cont = tools_storage[current_uid]['data']['tools_paintcontour']
|
||||
|
||||
paint_margin = float(tools_storage[current_uid]['data']['tools_paintmargin'])
|
||||
paint_offset = float(tools_storage[current_uid]['data']['tools_paintoffset'])
|
||||
|
||||
poly_buf = []
|
||||
for pol in polygon_list:
|
||||
buffered_pol = pol.buffer(-paint_margin)
|
||||
buffered_pol = pol.buffer(-paint_offset)
|
||||
if buffered_pol and not buffered_pol.is_empty:
|
||||
poly_buf.append(buffered_pol)
|
||||
|
||||
|
@ -1918,8 +1936,8 @@ class ToolPaint(AppTool, Gerber):
|
|||
else:
|
||||
job_thread(app_obj=self.app)
|
||||
|
||||
def paint_poly_all(self, obj, tooldia=None, order=None, method=None, outname=None,
|
||||
tools_storage=None, plot=True, run_threaded=True):
|
||||
def paint_poly_all(self, obj, tooldia=None, order=None, method=None, outname=None, tools_storage=None, plot=True,
|
||||
run_threaded=True):
|
||||
"""
|
||||
Paints all polygons in this object.
|
||||
|
||||
|
@ -2069,11 +2087,11 @@ class ToolPaint(AppTool, Gerber):
|
|||
conn = tools_storage[current_uid]['data']['tools_pathconnect']
|
||||
cont = tools_storage[current_uid]['data']['tools_paintcontour']
|
||||
|
||||
paint_margin = float(tools_storage[current_uid]['data']['tools_paintmargin'])
|
||||
paint_offset = float(tools_storage[current_uid]['data']['tools_paintoffset'])
|
||||
poly_buf = []
|
||||
for pol in painted_area:
|
||||
pol = Polygon(pol) if not isinstance(pol, Polygon) else pol
|
||||
buffered_pol = pol.buffer(-paint_margin)
|
||||
buffered_pol = pol.buffer(-paint_offset)
|
||||
if buffered_pol and not buffered_pol.is_empty:
|
||||
poly_buf.append(buffered_pol)
|
||||
|
||||
|
@ -2264,11 +2282,11 @@ class ToolPaint(AppTool, Gerber):
|
|||
conn = tools_storage[current_uid]['data']['tools_pathconnect']
|
||||
cont = tools_storage[current_uid]['data']['tools_paintcontour']
|
||||
|
||||
paint_margin = float(tools_storage[current_uid]['data']['tools_paintmargin'])
|
||||
paint_offset = float(tools_storage[current_uid]['data']['tools_paintoffset'])
|
||||
poly_buf = []
|
||||
for pol in painted_area:
|
||||
pol = Polygon(pol) if not isinstance(pol, Polygon) else pol
|
||||
buffered_pol = pol.buffer(-paint_margin)
|
||||
buffered_pol = pol.buffer(-paint_offset)
|
||||
if buffered_pol and not buffered_pol.is_empty:
|
||||
poly_buf.append(buffered_pol)
|
||||
|
||||
|
@ -2573,12 +2591,12 @@ class ToolPaint(AppTool, Gerber):
|
|||
conn = tools_storage[current_uid]['data']['tools_pathconnect']
|
||||
cont = tools_storage[current_uid]['data']['tools_paintcontour']
|
||||
|
||||
paint_margin = float(tools_storage[current_uid]['data']['tools_paintmargin'])
|
||||
paint_offset = float(tools_storage[current_uid]['data']['tools_paintoffset'])
|
||||
|
||||
poly_buf = []
|
||||
for pol in painted_area:
|
||||
pol = Polygon(pol) if not isinstance(pol, Polygon) else pol
|
||||
buffered_pol = pol.buffer(-paint_margin)
|
||||
buffered_pol = pol.buffer(-paint_offset)
|
||||
if buffered_pol and not buffered_pol.is_empty:
|
||||
poly_buf.append(buffered_pol)
|
||||
|
||||
|
@ -2754,12 +2772,12 @@ class ToolPaint(AppTool, Gerber):
|
|||
conn = tools_storage[current_uid]['data']['tools_pathconnect']
|
||||
cont = tools_storage[current_uid]['data']['tools_paintcontour']
|
||||
|
||||
paint_margin = float(tools_storage[current_uid]['data']['tools_paintmargin'])
|
||||
paint_offset = float(tools_storage[current_uid]['data']['tools_paintoffset'])
|
||||
|
||||
poly_buf = []
|
||||
for pol in painted_area:
|
||||
pol = Polygon(pol) if not isinstance(pol, Polygon) else pol
|
||||
buffered_pol = pol.buffer(-paint_margin)
|
||||
buffered_pol = pol.buffer(-paint_offset)
|
||||
if buffered_pol and not buffered_pol.is_empty:
|
||||
poly_buf.append(buffered_pol)
|
||||
|
||||
|
@ -3535,19 +3553,19 @@ class PaintUI:
|
|||
grid4.addWidget(self.paintoverlap_entry, 1, 1)
|
||||
|
||||
# Margin
|
||||
marginlabel = QtWidgets.QLabel('%s:' % _('Margin'))
|
||||
marginlabel = QtWidgets.QLabel('%s:' % _('Offset'))
|
||||
marginlabel.setToolTip(
|
||||
_("Distance by which to avoid\n"
|
||||
"the edges of the polygon to\n"
|
||||
"be painted.")
|
||||
)
|
||||
self.paintmargin_entry = FCDoubleSpinner(callback=self.confirmation_message)
|
||||
self.paintmargin_entry.set_precision(self.decimals)
|
||||
self.paintmargin_entry.set_range(-9999.9999, 9999.9999)
|
||||
self.paintmargin_entry.setObjectName('p_margin')
|
||||
self.offset_entry = FCDoubleSpinner(callback=self.confirmation_message)
|
||||
self.offset_entry.set_precision(self.decimals)
|
||||
self.offset_entry.set_range(-9999.9999, 9999.9999)
|
||||
self.offset_entry.setObjectName('p_offset')
|
||||
|
||||
grid4.addWidget(marginlabel, 2, 0)
|
||||
grid4.addWidget(self.paintmargin_entry, 2, 1)
|
||||
grid4.addWidget(self.offset_entry, 2, 1)
|
||||
|
||||
# Method
|
||||
methodlabel = QtWidgets.QLabel('%s:' % _('Method'))
|
||||
|
|
|
@ -4071,7 +4071,7 @@ class App(QtCore.QObject):
|
|||
|
||||
'cncjob_tooldia',
|
||||
|
||||
'tools_paintmargin', 'tools_painttooldia', "tools_paintcutz", "tools_painttipdia",
|
||||
'tools_paintoffset', 'tools_painttooldia', "tools_paintcutz", "tools_painttipdia",
|
||||
"tools_paintnewdia",
|
||||
|
||||
"tools_ncctools", "tools_nccmargin", "tools_ncccutz", "tools_ncctipdia",
|
||||
|
|
|
@ -460,7 +460,7 @@ class FlatCAMDefaults:
|
|||
"tools_painttooldia": 0.3,
|
||||
"tools_paintorder": 'rev',
|
||||
"tools_paintoverlap": 20,
|
||||
"tools_paintmargin": 0.0,
|
||||
"tools_paintoffset": 0.0,
|
||||
"tools_paintmethod": _("Seed"),
|
||||
"tools_selectmethod": _("All"),
|
||||
"tools_paint_area_shape": "square",
|
||||
|
|
|
@ -194,42 +194,48 @@ class TclCommandCopperClear(TclCommand):
|
|||
# store here the default data for Geometry Data
|
||||
default_data = {}
|
||||
default_data.update({
|
||||
"name": outname,
|
||||
"plot": False,
|
||||
"cutz": self.app.defaults["geometry_cutz"],
|
||||
"vtipdia": 0.1,
|
||||
"vtipangle": 30,
|
||||
"travelz": self.app.defaults["geometry_travelz"],
|
||||
"feedrate": self.app.defaults["geometry_feedrate"],
|
||||
"feedrate_z": self.app.defaults["geometry_feedrate_z"],
|
||||
"feedrate_rapid": self.app.defaults["geometry_feedrate_rapid"],
|
||||
"dwell": self.app.defaults["geometry_dwell"],
|
||||
"dwelltime": self.app.defaults["geometry_dwelltime"],
|
||||
"multidepth": self.app.defaults["geometry_multidepth"],
|
||||
"ppname_g": self.app.defaults["geometry_ppname_g"],
|
||||
"depthperpass": self.app.defaults["geometry_depthperpass"],
|
||||
"extracut": self.app.defaults["geometry_extracut"],
|
||||
"extracut_length": self.app.defaults["geometry_extracut_length"],
|
||||
"toolchange": self.app.defaults["geometry_toolchange"],
|
||||
"toolchangez": self.app.defaults["geometry_toolchangez"],
|
||||
"endz": self.app.defaults["geometry_endz"],
|
||||
"endxy": self.app.defaults["geometry_endxy"],
|
||||
"spindlespeed": self.app.defaults["geometry_spindlespeed"],
|
||||
"toolchangexy": self.app.defaults["geometry_toolchangexy"],
|
||||
"startz": self.app.defaults["geometry_startz"],
|
||||
"name": outname,
|
||||
"plot": False,
|
||||
"cutz": self.app.defaults["geometry_cutz"],
|
||||
"vtipdia": float(self.app.defaults["geometry_vtipdia"]),
|
||||
"vtipangle": float(self.app.defaults["geometry_vtipangle"]),
|
||||
"travelz": self.app.defaults["geometry_travelz"],
|
||||
"feedrate": self.app.defaults["geometry_feedrate"],
|
||||
"feedrate_z": self.app.defaults["geometry_feedrate_z"],
|
||||
"feedrate_rapid": self.app.defaults["geometry_feedrate_rapid"],
|
||||
"dwell": self.app.defaults["geometry_dwell"],
|
||||
"dwelltime": self.app.defaults["geometry_dwelltime"],
|
||||
"multidepth": self.app.defaults["geometry_multidepth"],
|
||||
"ppname_g": self.app.defaults["geometry_ppname_g"],
|
||||
"depthperpass": self.app.defaults["geometry_depthperpass"],
|
||||
"extracut": self.app.defaults["geometry_extracut"],
|
||||
"extracut_length": self.app.defaults["geometry_extracut_length"],
|
||||
"toolchange": self.app.defaults["geometry_toolchange"],
|
||||
"toolchangez": self.app.defaults["geometry_toolchangez"],
|
||||
"endz": self.app.defaults["geometry_endz"],
|
||||
"endxy": self.app.defaults["geometry_endxy"],
|
||||
"spindlespeed": self.app.defaults["geometry_spindlespeed"],
|
||||
"toolchangexy": self.app.defaults["geometry_toolchangexy"],
|
||||
"startz": self.app.defaults["geometry_startz"],
|
||||
|
||||
"area_exclusion": self.app.defaults["geometry_area_exclusion"],
|
||||
"area_shape": self.app.defaults["geometry_area_shape"],
|
||||
"area_strategy": self.app.defaults["geometry_area_strategy"],
|
||||
"area_overz": float(self.app.defaults["geometry_area_overz"]),
|
||||
"area_exclusion": self.app.defaults["geometry_area_exclusion"],
|
||||
"area_shape": self.app.defaults["geometry_area_shape"],
|
||||
"area_strategy": self.app.defaults["geometry_area_strategy"],
|
||||
"area_overz": float(self.app.defaults["geometry_area_overz"]),
|
||||
|
||||
"tooldia": self.app.defaults["tools_painttooldia"],
|
||||
"tools_nccmargin": margin,
|
||||
"tools_nccmethod": method_data,
|
||||
"tools_nccref": select,
|
||||
"tooldia": self.app.defaults["tools_painttooldia"],
|
||||
"tools_nccoperation": self.app.defaults["tools_nccoperation"],
|
||||
|
||||
"tools_nccmargin": margin,
|
||||
"tools_nccmethod": method_data,
|
||||
"tools_nccref": select,
|
||||
"tools_nccconnect": connect,
|
||||
"tools_ncccontour": contour,
|
||||
"tools_nccoverlap": overlap
|
||||
"tools_nccoverlap": overlap,
|
||||
|
||||
"tools_ncc_offset_choice": self.app.defaults["tools_ncc_offset_choice"],
|
||||
"tools_ncc_offset_value": self.app.defaults["tools_ncc_offset_value"],
|
||||
"tools_nccmilling_type": self.app.defaults["tools_nccmilling_type"]
|
||||
})
|
||||
ncc_tools = {}
|
||||
|
||||
|
@ -238,13 +244,13 @@ class TclCommandCopperClear(TclCommand):
|
|||
tooluid += 1
|
||||
ncc_tools.update({
|
||||
int(tooluid): {
|
||||
'tooldia': float('%.*f' % (obj.decimals, tool)),
|
||||
'offset': 'Path',
|
||||
'offset_value': 0.0,
|
||||
'type': 'Iso',
|
||||
'tool_type': 'C1',
|
||||
'data': dict(default_data),
|
||||
'solid_geometry': []
|
||||
'tooldia': float('%.*f' % (obj.decimals, tool)),
|
||||
'offset': 'Path',
|
||||
'offset_value': 0.0,
|
||||
'type': 'Iso',
|
||||
'tool_type': 'C1',
|
||||
'data': dict(default_data),
|
||||
'solid_geometry': []
|
||||
}
|
||||
})
|
||||
ncc_tools[int(tooluid)]['data']['tooldia'] = float('%.*f' % (obj.decimals, tool))
|
||||
|
|
|
@ -34,7 +34,7 @@ class TclCommandPaint(TclCommand):
|
|||
('tooldia', str),
|
||||
('overlap', float),
|
||||
('order', str),
|
||||
('margin', float),
|
||||
('offset', float),
|
||||
('method', str),
|
||||
('connect', str),
|
||||
('contour', str),
|
||||
|
@ -59,7 +59,7 @@ class TclCommandPaint(TclCommand):
|
|||
'WARNING: No space is allowed between tool diameters. E.g: correct: 0.5,1 / incorrect: 0.5, 1'),
|
||||
('overlap', 'Percentage of tool diameter to overlap current pass over previous pass. Float [0, 99.9999]\n'
|
||||
'E.g: for a 25% from tool diameter overlap use -overlap 25'),
|
||||
('margin', 'Bounding box margin. Float number.'),
|
||||
('offset', 'Distance from the polygon border where painting starts. Float number.'),
|
||||
('order', 'Can have the values: "no", "fwd" and "rev". String.\n'
|
||||
'It is useful when there are multiple tools in tooldia parameter.\n'
|
||||
'"no" -> the order used is the one provided.\n'
|
||||
|
@ -75,8 +75,8 @@ class TclCommandPaint(TclCommand):
|
|||
'WARNING: No spaces allowed in the value. Use dot decimals separator.'),
|
||||
('outname', 'Name of the resulting Geometry object. String. No spaces.'),
|
||||
]),
|
||||
'examples': ["paint obj_name -tooldia 0.3 -margin 0.1 -method 'seed' -all",
|
||||
"paint obj_name -tooldia 0.3 -margin 0.1 -method 'seed' -single 3.3,2.0"]
|
||||
'examples': ["paint obj_name -tooldia 0.3 -offset 0.1 -method 'seed' -all",
|
||||
"paint obj_name -tooldia 0.3 -offset 0.1 -method 'seed' -single 3.3,2.0"]
|
||||
}
|
||||
|
||||
def execute(self, args, unnamed_args):
|
||||
|
@ -114,10 +114,10 @@ class TclCommandPaint(TclCommand):
|
|||
else:
|
||||
order = str(self.app.defaults["tools_paintorder"])
|
||||
|
||||
if 'margin' in args:
|
||||
margin = float(args['margin'])
|
||||
if 'offset' in args:
|
||||
offset = float(args['offset'])
|
||||
else:
|
||||
margin = float(self.app.defaults["tools_paintmargin"])
|
||||
offset = float(self.app.defaults["tools_paintoffset"])
|
||||
|
||||
if 'method' in args:
|
||||
method = args['method']
|
||||
|
@ -172,43 +172,43 @@ class TclCommandPaint(TclCommand):
|
|||
# store here the default data for Geometry Data
|
||||
default_data = {}
|
||||
default_data.update({
|
||||
"name": outname,
|
||||
"plot": False,
|
||||
"cutz": self.app.defaults["geometry_cutz"],
|
||||
"vtipdia": 0.1,
|
||||
"vtipangle": 30,
|
||||
"travelz": self.app.defaults["geometry_travelz"],
|
||||
"feedrate": self.app.defaults["geometry_feedrate"],
|
||||
"feedrate_z": self.app.defaults["geometry_feedrate_z"],
|
||||
"feedrate_rapid": self.app.defaults["geometry_feedrate_rapid"],
|
||||
"dwell": self.app.defaults["geometry_dwell"],
|
||||
"dwelltime": self.app.defaults["geometry_dwelltime"],
|
||||
"multidepth": self.app.defaults["geometry_multidepth"],
|
||||
"ppname_g": self.app.defaults["geometry_ppname_g"],
|
||||
"depthperpass": self.app.defaults["geometry_depthperpass"],
|
||||
"extracut": self.app.defaults["geometry_extracut"],
|
||||
"extracut_length": self.app.defaults["geometry_extracut_length"],
|
||||
"toolchange": self.app.defaults["geometry_toolchange"],
|
||||
"toolchangez": self.app.defaults["geometry_toolchangez"],
|
||||
"endz": self.app.defaults["geometry_endz"],
|
||||
"endxy": self.app.defaults["geometry_endxy"],
|
||||
"name": outname,
|
||||
"plot": False,
|
||||
"cutz": self.app.defaults["geometry_cutz"],
|
||||
"vtipdia": float(self.app.defaults["tools_painttipdia"]),
|
||||
"vtipangle": float(self.app.defaults["tools_painttipangle"]),
|
||||
"travelz": self.app.defaults["geometry_travelz"],
|
||||
"feedrate": self.app.defaults["geometry_feedrate"],
|
||||
"feedrate_z": self.app.defaults["geometry_feedrate_z"],
|
||||
"feedrate_rapid": self.app.defaults["geometry_feedrate_rapid"],
|
||||
"dwell": self.app.defaults["geometry_dwell"],
|
||||
"dwelltime": self.app.defaults["geometry_dwelltime"],
|
||||
"multidepth": self.app.defaults["geometry_multidepth"],
|
||||
"ppname_g": self.app.defaults["geometry_ppname_g"],
|
||||
"depthperpass": self.app.defaults["geometry_depthperpass"],
|
||||
"extracut": self.app.defaults["geometry_extracut"],
|
||||
"extracut_length": self.app.defaults["geometry_extracut_length"],
|
||||
"toolchange": self.app.defaults["geometry_toolchange"],
|
||||
"toolchangez": self.app.defaults["geometry_toolchangez"],
|
||||
"endz": self.app.defaults["geometry_endz"],
|
||||
"endxy": self.app.defaults["geometry_endxy"],
|
||||
|
||||
"spindlespeed": self.app.defaults["geometry_spindlespeed"],
|
||||
"toolchangexy": self.app.defaults["geometry_toolchangexy"],
|
||||
"startz": self.app.defaults["geometry_startz"],
|
||||
"spindlespeed": self.app.defaults["geometry_spindlespeed"],
|
||||
"toolchangexy": self.app.defaults["geometry_toolchangexy"],
|
||||
"startz": self.app.defaults["geometry_startz"],
|
||||
|
||||
"area_exclusion": self.app.defaults["geometry_area_exclusion"],
|
||||
"area_shape": self.app.defaults["geometry_area_shape"],
|
||||
"area_strategy": self.app.defaults["geometry_area_strategy"],
|
||||
"area_overz": float(self.app.defaults["geometry_area_overz"]),
|
||||
"area_exclusion": self.app.defaults["geometry_area_exclusion"],
|
||||
"area_shape": self.app.defaults["geometry_area_shape"],
|
||||
"area_strategy": self.app.defaults["geometry_area_strategy"],
|
||||
"area_overz": float(self.app.defaults["geometry_area_overz"]),
|
||||
|
||||
"tooldia": self.app.defaults["tools_painttooldia"],
|
||||
"paintmargin": margin,
|
||||
"paintmethod": method,
|
||||
"selectmethod": select,
|
||||
"pathconnect": connect,
|
||||
"paintcontour": contour,
|
||||
"paintoverlap": overlap
|
||||
"tooldia": self.app.defaults["tools_painttooldia"],
|
||||
"tools_paintoffset": offset,
|
||||
"tools_paintmethod": method,
|
||||
"tools_selectmethod": select,
|
||||
"tools_pathconnect": connect,
|
||||
"tools_paintcontour": contour,
|
||||
"tools_paintoverlap": overlap
|
||||
})
|
||||
paint_tools = {}
|
||||
|
||||
|
|
Loading…
Reference in New Issue