- in CNCJob UI Autolevelling - Added entries in Preferences

This commit is contained in:
Marius Stanciu 2020-08-17 00:40:45 +03:00
parent cd34223f6d
commit 3ef47da370
6 changed files with 149 additions and 29 deletions

View File

@ -13,6 +13,7 @@ CHANGELOG for FlatCAM beta
- in CNCJob UI Autolevelling - added a mini gcode sender for the GRBL to be able to send the probing GCode and get the height map (I may make a small and light app for that so it does not need to have FlatCAM on the GCode sender PC)
- in CNCJob UI Autolevelling finished the probing GCode generation for MACH/LinuxCNC controllers; this GCode can also be viewed
- in CNCJob UI Autolevelling - Probing GCode has now a header
- in CNCJob UI Autolevelling - Added entries in Preferences
14.08.2020

View File

@ -2028,7 +2028,7 @@ class CNCObjectUI(ObjectUI):
grid0.addWidget(self.pdepth_entry, 20, 1)
# Probe feedrate
self.feedrate_probe_label = QtWidgets.QLabel('%s:' % _("Feedrate Probe"))
self.feedrate_probe_label = QtWidgets.QLabel('%s:' % _("Probe Feedrate"))
self.feedrate_probe_label.setToolTip(
_("The feedrate used while the probe is probing.")
)
@ -2045,7 +2045,7 @@ class CNCObjectUI(ObjectUI):
grid0.addWidget(separator_line, 23, 0, 1, 2)
self.al_controller_label = FCLabel('<b>%s</b>:' % _("Controller"))
self.al_rows_label.setToolTip(
self.al_controller_label.setToolTip(
_("The kind of controller for which to generate\n"
"height map gcode.")
)
@ -2350,21 +2350,25 @@ class CNCObjectUI(ObjectUI):
# self.custom_box.addLayout(h_lay)
# Review GCode Button
self.review_gcode_button = QtWidgets.QPushButton(_('Review'))
self.review_gcode_button.setToolTip(
_("Review CNC Code.")
)
self.custom_box.addWidget(self.review_gcode_button)
g_export_lay = QtWidgets.QHBoxLayout()
# Save Button
self.export_gcode_button = QtWidgets.QPushButton(_('Save CNC Code'))
self.export_gcode_button = FCButton(_('Save CNC Code'))
self.export_gcode_button.setIcon(QtGui.QIcon(self.app.resource_location + '/save_as.png'))
self.export_gcode_button.setToolTip(
_("Opens dialog to save G-Code\n"
"file.")
)
self.export_gcode_button.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.MinimumExpanding)
self.custom_box.addWidget(self.export_gcode_button)
g_export_lay.addWidget(self.export_gcode_button)
self.review_gcode_button = QtWidgets.QToolButton()
self.review_gcode_button.setToolTip(_("Review CNC Code."))
self.review_gcode_button.setIcon(QtGui.QIcon(self.app.resource_location + '/find32.png'))
g_export_lay.addWidget(self.review_gcode_button)
self.custom_box.addLayout(g_export_lay)
self.custom_box.addStretch()
self.al_probe_points_table.setRowCount(0)

View File

@ -306,8 +306,16 @@ class PreferencesUIManager:
"cncjob_annotation": self.ui.cncjob_defaults_form.cncjob_opt_group.annotation_cb,
# CNC Job Advanced Options
"cncjob_annotation_fontsize": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontsize_sp,
"cncjob_annotation_fontsize": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontsize_sp,
"cncjob_annotation_fontcolor": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontcolor_entry,
# Autolevelling
"cncjob_al_mode": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.al_mode_radio,
"cncjob_al_rows": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.al_rows_entry,
"cncjob_al_columns": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.al_columns_entry,
"cncjob_al_travelz": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.ptravelz_entry,
"cncjob_al_probe_depth": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.pdepth_entry,
"cncjob_al_probe_fr": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.feedrate_probe_entry,
"cncjob_al_controller": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.al_controller_combo,
# CNC Job (GCode) Editor
"cncjob_prepend": self.ui.cncjob_defaults_form.cncjob_editor_group.prepend_text,

View File

@ -1,7 +1,7 @@
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtCore import QSettings, Qt
from appGUI.GUIElements import FCTextArea, FCCheckBox, FCComboBox, FCSpinner, FCColorEntry
from appGUI.GUIElements import FCComboBox, FCSpinner, FCColorEntry, FCLabel, FCDoubleSpinner, RadioSet
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import appTranslation as fcTranslate
@ -26,30 +26,29 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI):
self.setTitle(str(_("CNC Job Adv. Options")))
grid0 = QtWidgets.QGridLayout()
grid0.setColumnStretch(0, 0)
grid0.setColumnStretch(1, 1)
self.layout.addLayout(grid0)
# ## Export G-Code
self.export_gcode_label = QtWidgets.QLabel("<b>%s:</b>" % _("Export CNC Code"))
self.export_gcode_label = QtWidgets.QLabel("<b>%s:</b>" % _("Parameters"))
self.export_gcode_label.setToolTip(
_("Export and save G-Code to\n"
"make this object to a file.")
)
self.layout.addWidget(self.export_gcode_label)
grid0 = QtWidgets.QGridLayout()
self.layout.addLayout(grid0)
grid0.addWidget(QtWidgets.QLabel(''), 1, 0, 1, 2)
grid0.addWidget(self.export_gcode_label, 0, 0, 1, 2)
# Annotation Font Size
self.annotation_fontsize_label = QtWidgets.QLabel('%s:' % _("Annotation Size"))
self.annotation_fontsize_label.setToolTip(
_("The font size of the annotation text. In pixels.")
)
grid0.addWidget(self.annotation_fontsize_label, 2, 0)
self.annotation_fontsize_sp = FCSpinner()
self.annotation_fontsize_sp.set_range(0, 9999)
grid0.addWidget(self.annotation_fontsize_label, 2, 0)
grid0.addWidget(self.annotation_fontsize_sp, 2, 1)
grid0.addWidget(QtWidgets.QLabel(''), 2, 2)
# Annotation Font Color
self.annotation_color_label = QtWidgets.QLabel('%s:' % _('Annotation Color'))
@ -58,10 +57,103 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI):
)
self.annotation_fontcolor_entry = FCColorEntry()
grid0.addWidget(self.annotation_color_label, 3, 0)
grid0.addWidget(self.annotation_fontcolor_entry, 3, 1)
grid0.addWidget(self.annotation_color_label, 4, 0)
grid0.addWidget(self.annotation_fontcolor_entry, 4, 1)
# ## Autolevelling
self.autolevelling_gcode_label = QtWidgets.QLabel("<b>%s</b>" % _("Autolevelling"))
self.autolevelling_gcode_label.setToolTip(
_("Parameters for the autolevelling.")
)
grid0.addWidget(self.autolevelling_gcode_label, 6, 0, 1, 2)
# Probe points mode
al_mode_lbl = FCLabel('%s:' % _("Mode"))
al_mode_lbl.setToolTip(_("Choose a mode for height map generation.\n"
"- Manual: will pick a selection of probe points by clicking on canvas\n"
"- Grid: will automatically generate a grid of probe points"))
self.al_mode_radio = RadioSet(
[
{'label': _('Manual'), 'value': 'manual'},
{'label': _('Grid'), 'value': 'grid'}
])
grid0.addWidget(al_mode_lbl, 8, 0)
grid0.addWidget(self.al_mode_radio, 8, 1)
# ## Columns
self.al_columns_entry = FCSpinner()
self.al_columns_label = QtWidgets.QLabel('%s:' % _("Columns"))
self.al_columns_label.setToolTip(
_("The number of grid columns.")
)
grid0.addWidget(self.al_columns_label, 10, 0)
grid0.addWidget(self.al_columns_entry, 10, 1)
# ## Rows
self.al_rows_entry = FCSpinner()
self.al_rows_label = QtWidgets.QLabel('%s:' % _("Rows"))
self.al_rows_label.setToolTip(
_("The number of gird rows.")
)
grid0.addWidget(self.al_rows_label, 12, 0)
grid0.addWidget(self.al_rows_entry, 12, 1)
# Travel Z Probe
self.ptravelz_label = QtWidgets.QLabel('%s:' % _("Probe Z travel"))
self.ptravelz_label.setToolTip(
_("The safe Z for probe travelling between probe points.")
)
self.ptravelz_entry = FCDoubleSpinner()
self.ptravelz_entry.set_precision(self.decimals)
self.ptravelz_entry.set_range(0.0000, 9999.9999)
grid0.addWidget(self.ptravelz_label, 14, 0)
grid0.addWidget(self.ptravelz_entry, 14, 1)
# Probe depth
self.pdepth_label = QtWidgets.QLabel('%s:' % _("Probe Z depth"))
self.pdepth_label.setToolTip(
_("The maximum depth that the probe is allowed\n"
"to probe. Negative value, in current units.")
)
self.pdepth_entry = FCDoubleSpinner()
self.pdepth_entry.set_precision(self.decimals)
self.pdepth_entry.set_range(-99999.9999, 0.0000)
grid0.addWidget(self.pdepth_label, 16, 0)
grid0.addWidget(self.pdepth_entry, 16, 1)
# Probe feedrate
self.feedrate_probe_label = QtWidgets.QLabel('%s:' % _("Probe Feedrate"))
self.feedrate_probe_label.setToolTip(
_("The feedrate used while the probe is probing.")
)
self.feedrate_probe_entry = FCDoubleSpinner()
self.feedrate_probe_entry.set_precision(self.decimals)
self.feedrate_probe_entry.set_range(0, 99999.9999)
grid0.addWidget(self.feedrate_probe_label, 18, 0)
grid0.addWidget(self.feedrate_probe_entry, 18, 1)
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
grid0.addWidget(separator_line, 20, 0, 1, 2)
self.al_controller_label = FCLabel('%s:' % _("Controller"))
self.al_controller_label.setToolTip(
_("The kind of controller for which to generate\n"
"height map gcode.")
)
self.al_controller_combo = FCComboBox()
self.al_controller_combo.addItems(["MACH3", "MACH4", "LinuxCNC", "GRBL"])
grid0.addWidget(self.al_controller_label, 22, 0)
grid0.addWidget(self.al_controller_combo, 22, 1)
grid0.addWidget(QtWidgets.QLabel(''), 3, 2)
self.layout.addStretch()
self.annotation_fontcolor_entry.editingFinished.connect(self.on_annotation_fontcolor_entry)

View File

@ -474,12 +474,19 @@ class CNCJobObject(FlatCAMObj, CNCjob):
# self.ui.toolchange_cb.toggled.connect(self.on_toolchange_custom_clicked)
self.form_fields.update({
"plot": self.ui.plot_cb,
"tooldia": self.ui.tooldia_entry,
# "append": self.ui.append_text,
# "prepend": self.ui.prepend_text,
"plot": self.ui.plot_cb,
"tooldia": self.ui.tooldia_entry,
# "append": self.ui.append_text,
# "prepend": self.ui.prepend_text,
# "toolchange_macro": self.ui.toolchange_text,
# "toolchange_macro_enable": self.ui.toolchange_cb
# "toolchange_macro_enable": self.ui.toolchange_cb,
"al_travelz": self.ui.ptravelz_entry,
"al_probe_depth": self.ui.pdepth_entry,
"al_probe_fr": self.ui.feedrate_probe_entry,
"al_controller": self.ui.al_controller_combo,
"al_mode": self.ui.al_mode_radio,
"al_rows": self.ui.al_rows_entry,
"al_columns": self.ui.al_columns_entry,
})
self.append_snippet = self.app.defaults['cncjob_append']
@ -572,7 +579,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
gc = self.export_gcode(preamble=preamble, postamble=postamble, to_file=True)
self.source_file = gc.getvalue()
self.ui.al_mode_radio.set_value('grid')
self.ui.al_mode_radio.set_value(self.options['al_mode'])
self.on_controller_change()
# def on_cnc_custom_parameters(self, signal_text):

View File

@ -375,6 +375,14 @@ class FlatCAMDefaults:
# CNC Job Advanced Options
"cncjob_annotation_fontsize": 9,
"cncjob_annotation_fontcolor": '#990000',
# Autolevelling
"cncjob_al_mode": 'grid',
"cncjob_al_rows": 4,
"cncjob_al_columns": 4,
"cncjob_al_travelz": 2.0,
"cncjob_al_probe_depth": -1.0,
"cncjob_al_probe_fr": 120,
"cncjob_al_controller": 'MACH3',
# CNC Job (GCode) Editor
"cncjob_prepend": "",