- Gerber UI - optimized the mark shapes to use only on ShapeCollection
This commit is contained in:
@@ -7,6 +7,10 @@ CHANGELOG for FlatCAM beta
|
|||||||
|
|
||||||
=================================================
|
=================================================
|
||||||
|
|
||||||
|
14.07.2020
|
||||||
|
|
||||||
|
- Drilling Tool - now there is an Excellon preference that control the autoload of tools from the Tools Database
|
||||||
|
|
||||||
13.07.2020
|
13.07.2020
|
||||||
|
|
||||||
- fixed a bug in Tools Database: due of not disconnecting the signals it created a race that was concluded into a RuntimeError exception (an dict changed size during iteration)
|
- fixed a bug in Tools Database: due of not disconnecting the signals it created a race that was concluded into a RuntimeError exception (an dict changed size during iteration)
|
||||||
@@ -37,7 +41,7 @@ CHANGELOG for FlatCAM beta
|
|||||||
- Isolation Tool - modified the UI; preparing to add new feature of polishing at the end of the milling job
|
- Isolation Tool - modified the UI; preparing to add new feature of polishing at the end of the milling job
|
||||||
- Tool Paint - fixed an issue when launching the tool and an object other than Geometry or Excellon is selected
|
- Tool Paint - fixed an issue when launching the tool and an object other than Geometry or Excellon is selected
|
||||||
- Geometry UI - moved the UI for polishing from Isolation Tool to Geometry UI (actually in the future Milling Tool) where it belongs
|
- Geometry UI - moved the UI for polishing from Isolation Tool to Geometry UI (actually in the future Milling Tool) where it belongs
|
||||||
- Gerber UI - optimized the mark shapes to use only on ShapeCollection
|
- Gerber UI - optimized the mark shapes to use only one ShapeCollection
|
||||||
|
|
||||||
10.07.2020
|
10.07.2020
|
||||||
|
|
||||||
|
|||||||
@@ -603,6 +603,16 @@ class ExcellonObjectUI(ObjectUI):
|
|||||||
# this column is not used; reserved for future usage
|
# this column is not used; reserved for future usage
|
||||||
self.tools_table.setColumnHidden(4, True)
|
self.tools_table.setColumnHidden(4, True)
|
||||||
|
|
||||||
|
# Excellon Tools autoload from DB
|
||||||
|
|
||||||
|
# Auto Load Tools from DB
|
||||||
|
self.autoload_db_cb = FCCheckBox('%s' % _("Auto load from DB"))
|
||||||
|
self.autoload_db_cb.setToolTip(
|
||||||
|
_("Automatic replacement of the tools from related application tools\n"
|
||||||
|
"with tools from DB that have a close diameter value.")
|
||||||
|
)
|
||||||
|
self.tools_box.addWidget(self.autoload_db_cb)
|
||||||
|
|
||||||
# Editor
|
# Editor
|
||||||
self.editor_button = QtWidgets.QPushButton(_('Excellon Editor'))
|
self.editor_button = QtWidgets.QPushButton(_('Excellon Editor'))
|
||||||
self.editor_button.setToolTip(
|
self.editor_button.setToolTip(
|
||||||
|
|||||||
@@ -199,6 +199,7 @@ class PreferencesUIManager:
|
|||||||
|
|
||||||
# Excellon Advanced Options
|
# Excellon Advanced Options
|
||||||
"excellon_tools_table_display": self.ui.excellon_defaults_form.excellon_adv_opt_group.table_visibility_cb,
|
"excellon_tools_table_display": self.ui.excellon_defaults_form.excellon_adv_opt_group.table_visibility_cb,
|
||||||
|
"excellon_autoload_db": self.ui.excellon_defaults_form.excellon_adv_opt_group.autoload_db_cb,
|
||||||
|
|
||||||
# Excellon Export
|
# Excellon Export
|
||||||
"excellon_exp_units": self.ui.excellon_defaults_form.excellon_exp_group.excellon_units_radio,
|
"excellon_exp_units": self.ui.excellon_defaults_form.excellon_exp_group.excellon_units_radio,
|
||||||
|
|||||||
@@ -51,4 +51,12 @@ class ExcellonAdvOptPrefGroupUI(OptionsGroupUI):
|
|||||||
)
|
)
|
||||||
grid0.addWidget(self.table_visibility_cb, 0, 0, 1, 2)
|
grid0.addWidget(self.table_visibility_cb, 0, 0, 1, 2)
|
||||||
|
|
||||||
|
# Auto Load Tools from DB
|
||||||
|
self.autoload_db_cb = FCCheckBox('%s' % _("Auto load from DB"))
|
||||||
|
self.autoload_db_cb.setToolTip(
|
||||||
|
_("Automatic replacement of the tools from related application tools\n"
|
||||||
|
"with tools from DB that have a close diameter value.")
|
||||||
|
)
|
||||||
|
grid0.addWidget(self.autoload_db_cb, 1, 0, 1, 2)
|
||||||
|
|
||||||
self.layout.addStretch()
|
self.layout.addStretch()
|
||||||
|
|||||||
@@ -138,6 +138,7 @@ class ExcellonObject(FlatCAMObj, Excellon):
|
|||||||
"solid": self.ui.solid_cb,
|
"solid": self.ui.solid_cb,
|
||||||
"multicolored": self.ui.multicolored_cb,
|
"multicolored": self.ui.multicolored_cb,
|
||||||
|
|
||||||
|
"autoload_db": self.ui.autoload_db_cb,
|
||||||
"tooldia": self.ui.tooldia_entry,
|
"tooldia": self.ui.tooldia_entry,
|
||||||
"slot_tooldia": self.ui.slot_tooldia_entry,
|
"slot_tooldia": self.ui.slot_tooldia_entry,
|
||||||
})
|
})
|
||||||
@@ -152,11 +153,14 @@ class ExcellonObject(FlatCAMObj, Excellon):
|
|||||||
self.ui.tools_table.setColumnHidden(5, True)
|
self.ui.tools_table.setColumnHidden(5, True)
|
||||||
self.ui.table_visibility_cb.set_value(True)
|
self.ui.table_visibility_cb.set_value(True)
|
||||||
self.ui.table_visibility_cb.hide()
|
self.ui.table_visibility_cb.hide()
|
||||||
|
self.ui.autoload_db_cb.set_value(False)
|
||||||
|
self.ui.autoload_db_cb.hide()
|
||||||
else:
|
else:
|
||||||
self.ui.level.setText('<span style="color:red;"><b>%s</b></span>' % _('Advanced'))
|
self.ui.level.setText('<span style="color:red;"><b>%s</b></span>' % _('Advanced'))
|
||||||
self.ui.table_visibility_cb.show()
|
self.ui.table_visibility_cb.show()
|
||||||
self.ui.table_visibility_cb.set_value(self.app.defaults["excellon_tools_table_display"])
|
self.ui.table_visibility_cb.set_value(self.app.defaults["excellon_tools_table_display"])
|
||||||
self.on_table_visibility_toggle(state=self.app.defaults["excellon_tools_table_display"])
|
self.on_table_visibility_toggle(state=self.app.defaults["excellon_tools_table_display"])
|
||||||
|
self.ui.autoload_db_cb.show()
|
||||||
|
|
||||||
assert isinstance(self.ui, ExcellonObjectUI), \
|
assert isinstance(self.ui, ExcellonObjectUI), \
|
||||||
"Expected a ExcellonObjectUI, got %s" % type(self.ui)
|
"Expected a ExcellonObjectUI, got %s" % type(self.ui)
|
||||||
@@ -164,6 +168,7 @@ class ExcellonObject(FlatCAMObj, Excellon):
|
|||||||
self.ui.plot_cb.stateChanged.connect(self.on_plot_cb_click)
|
self.ui.plot_cb.stateChanged.connect(self.on_plot_cb_click)
|
||||||
self.ui.solid_cb.stateChanged.connect(self.on_solid_cb_click)
|
self.ui.solid_cb.stateChanged.connect(self.on_solid_cb_click)
|
||||||
self.ui.multicolored_cb.stateChanged.connect(self.on_multicolored_cb_click)
|
self.ui.multicolored_cb.stateChanged.connect(self.on_multicolored_cb_click)
|
||||||
|
self.ui.autoload_db_cb.stateChanged.connect(self.on_autoload_db_toggled)
|
||||||
|
|
||||||
# Editor
|
# Editor
|
||||||
self.ui.editor_button.clicked.connect(lambda: self.app.object2editor())
|
self.ui.editor_button.clicked.connect(lambda: self.app.object2editor())
|
||||||
@@ -1042,6 +1047,9 @@ class ExcellonObject(FlatCAMObj, Excellon):
|
|||||||
self.read_form_item('multicolored')
|
self.read_form_item('multicolored')
|
||||||
self.plot()
|
self.plot()
|
||||||
|
|
||||||
|
def on_autoload_db_toggled(self, state):
|
||||||
|
self.app.defaults["excellon_autoload_db"] = True if state else False
|
||||||
|
|
||||||
def on_plot_cb_click(self, *args):
|
def on_plot_cb_click(self, *args):
|
||||||
if self.muted_ui:
|
if self.muted_ui:
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -709,7 +709,7 @@ class ToolDrilling(AppTool, Excellon):
|
|||||||
self.app.collection.set_active(self.obj_name)
|
self.app.collection.set_active(self.obj_name)
|
||||||
self.t_ui.exc_param_frame.setDisabled(False)
|
self.t_ui.exc_param_frame.setDisabled(False)
|
||||||
|
|
||||||
if self.t_ui.autoload_db_cb.get_value():
|
if self.app.defaults["excellon_autoload_db"]:
|
||||||
self.excellon_tools = self.excellon_obj.tools
|
self.excellon_tools = self.excellon_obj.tools
|
||||||
self.on_tool_db_load()
|
self.on_tool_db_load()
|
||||||
else:
|
else:
|
||||||
@@ -1957,24 +1957,14 @@ class DrillingUI:
|
|||||||
grid0.addWidget(self.order_label, 4, 0)
|
grid0.addWidget(self.order_label, 4, 0)
|
||||||
grid0.addWidget(self.order_radio, 4, 1)
|
grid0.addWidget(self.order_radio, 4, 1)
|
||||||
|
|
||||||
# Auto Load Tools from DB
|
|
||||||
self.autoload_db_cb = FCCheckBox('%s:' % _("Auto Load DB"))
|
|
||||||
self.autoload_db_cb.setToolTip(
|
|
||||||
_("Automatic replacement of the tools from Tools Table\n"
|
|
||||||
"with tools from DB that have a close diameter value.")
|
|
||||||
)
|
|
||||||
|
|
||||||
# Manual Load of Tools from DB
|
# Manual Load of Tools from DB
|
||||||
self.manual_load_db_btn = FCButton(_("Manual Load DB"))
|
self.manual_load_db_btn = FCButton(_("Manual Load from DB"))
|
||||||
self.manual_load_db_btn.setToolTip(
|
self.manual_load_db_btn.setToolTip(
|
||||||
_("Manual replacement of the tools from Tools Table\n"
|
_("Manual replacement of the tools from Tools Table\n"
|
||||||
"with tools from DB that have a close diameter value.")
|
"with tools from DB that have a close diameter value.")
|
||||||
)
|
)
|
||||||
|
|
||||||
grid0.addWidget(self.autoload_db_cb, 5, 0)
|
grid0.addWidget(self.manual_load_db_btn, 5, 0, 1, 2)
|
||||||
grid0.addWidget(self.manual_load_db_btn, 5, 1)
|
|
||||||
|
|
||||||
self.l_ois = OptionalInputSection(self.autoload_db_cb, [self.manual_load_db_btn], logic=False)
|
|
||||||
|
|
||||||
separator_line = QtWidgets.QFrame()
|
separator_line = QtWidgets.QFrame()
|
||||||
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
|
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
|
||||||
|
|||||||
@@ -260,6 +260,7 @@ class FlatCAMDefaults:
|
|||||||
|
|
||||||
# Excellon Advanced options
|
# Excellon Advanced options
|
||||||
"excellon_tools_table_display": True,
|
"excellon_tools_table_display": True,
|
||||||
|
"excellon_autoload_db": False,
|
||||||
|
|
||||||
# Excellon Export
|
# Excellon Export
|
||||||
"excellon_exp_units": 'INCH',
|
"excellon_exp_units": 'INCH',
|
||||||
|
|||||||
Reference in New Issue
Block a user