| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- from PyQt5.QtCore import Qt
- from flatcamGUI.preferences.OptionUI import *
- from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI2
- import gettext
- import FlatCAMTranslation as fcTranslate
- import builtins
- fcTranslate.apply_language('strings')
- if '_' not in builtins.__dict__:
- _ = gettext.gettext
- class CNCJobAdvOptPrefGroupUI(OptionsGroupUI2):
- def __init__(self, decimals=4, **kwargs):
- self.decimals = decimals
- super().__init__(**kwargs)
- self.setTitle(str(_("CNC Job Adv. Options")))
- self.toolchange_text = self.option_dict()["cncjob_toolchange_macro"].get_field()
- # Populate the Combo Box
- self.tc_variable_combo = self.option_dict()["__toolchange_variable"].get_field()
- variables = [_('Parameters'), 'tool', 'tooldia', 't_drills', 'x_toolchange', 'y_toolchange', 'z_toolchange',
- 'z_cut', 'z_move', 'z_depthpercut', 'spindlespeed', 'dwelltime']
- self.tc_variable_combo.addItems(variables)
- self.tc_variable_combo.insertSeparator(1)
- self.tc_variable_combo.setItemData(0, _("FlatCAM CNC parameters"), Qt.ToolTipRole)
- fnt = QtGui.QFont()
- fnt.setBold(True)
- self.tc_variable_combo.setItemData(0, fnt, Qt.FontRole)
- self.tc_variable_combo.setItemData(2, 'tool = %s' % _("tool number"), Qt.ToolTipRole)
- self.tc_variable_combo.setItemData(3, 'tooldia = %s' % _("tool diameter"), Qt.ToolTipRole)
- self.tc_variable_combo.setItemData(4, 't_drills = %s' % _("for Excellon, total number of drills"),
- Qt.ToolTipRole)
- self.tc_variable_combo.setItemData(5, 'x_toolchange = %s' % _("X coord for Toolchange"), Qt.ToolTipRole)
- self.tc_variable_combo.setItemData(6, 'y_toolchange = %s' % _("Y coord for Toolchange"),
- Qt.ToolTipRole)
- self.tc_variable_combo.setItemData(7, 'z_toolchange = %s' % _("Z coord for Toolchange"), Qt.ToolTipRole)
- self.tc_variable_combo.setItemData(8, 'z_cut = %s' % _("Z depth for the cut"), Qt.ToolTipRole)
- self.tc_variable_combo.setItemData(9, 'z_move = %s' % _("Z height for travel"), Qt.ToolTipRole)
- self.tc_variable_combo.setItemData(10, 'z_depthpercut = %s' % _("the step value for multidepth cut"),
- Qt.ToolTipRole)
- self.tc_variable_combo.setItemData(11, 'spindlesspeed = %s' % _("the value for the spindle speed"),
- Qt.ToolTipRole)
- self.tc_variable_combo.setItemData(12,
- _("dwelltime = time to dwell to allow the spindle to reach it's set RPM"),
- Qt.ToolTipRole)
- self.tc_variable_combo.currentIndexChanged[str].connect(self.on_cnc_custom_parameters)
- def build_options(self) -> [OptionUI]:
- return [
- HeadingOptionUI(
- label_text="Export CNC Code",
- label_tooltip="Export and save G-Code to\n"
- "make this object to a file."
- ),
- CheckboxOptionUI(
- option="cncjob_toolchange_macro_enable",
- label_text="Use Toolchange Macro",
- label_tooltip="Check this box if you want to use\n"
- "a Custom Toolchange GCode (macro)."
- ),
- TextAreaOptionUI(
- option="cncjob_toolchange_macro",
- label_text="Toolchange G-Code",
- label_tooltip="Type here any G-Code commands you would "
- "like to be executed when Toolchange event is encountered.\n"
- "This will constitute a Custom Toolchange GCode, "
- "or a Toolchange Macro.\n"
- "The FlatCAM variables are surrounded by '%' symbol.\n"
- "WARNING: it can be used only with a preprocessor file "
- "that has 'toolchange_custom' in it's name."
- ),
- ComboboxOptionUI(
- option="__toolchange_variable",
- label_text="Insert variable",
- label_tooltip="A list of the FlatCAM variables that can be used\n"
- "in the Toolchange event.\n"
- "They have to be surrounded by the '%' symbol",
- choices=[] # see init.
- ),
- SpinnerOptionUI(
- option="cncjob_annotation_fontsize",
- label_text="Annotation Size",
- label_tooltip="The font size of the annotation text. In pixels.",
- min_value=1, max_value=9999, step=1
- ),
- ColorOptionUI(
- option="cncjob_annotation_fontcolor",
- label_text="Annotation Color",
- label_tooltip="Set the font color for the annotation texts."
- )
- ]
- def on_cnc_custom_parameters(self, signal_text):
- if signal_text == _("Parameters"):
- return
- else:
- self.toolchange_text.insertPlainText('%%%s%%' % signal_text)
- self.tc_variable_combo.set_value(_("Parameters"))
|