from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings from appGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCCheckBox, FCComboBox from appGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext import appTranslation as fcTranslate import builtins fcTranslate.apply_language('strings') if '_' not in builtins.__dict__: _ = gettext.gettext settings = QSettings("Open Source", "FlatCAM") if settings.contains("machinist"): machinist_setting = settings.value('machinist', type=int) else: machinist_setting = 0 class GerberOptPrefGroupUI(OptionsGroupUI): def __init__(self, decimals=4, parent=None): # OptionsGroupUI.__init__(self, "Gerber Options Preferences", parent=parent) super(GerberOptPrefGroupUI, self).__init__(self, parent=parent) self.decimals = decimals self.setTitle(str(_("Gerber Options"))) # ## Clear non-copper regions self.clearcopper_label = QtWidgets.QLabel("%s:" % _("Non-copper regions")) self.clearcopper_label.setToolTip( _("Create polygons covering the\n" "areas without copper on the PCB.\n" "Equivalent to the inverse of this\n" "object. Can be used to remove all\n" "copper from a specified region.") ) self.layout.addWidget(self.clearcopper_label) grid1 = QtWidgets.QGridLayout() self.layout.addLayout(grid1) # Margin bmlabel = QtWidgets.QLabel('%s:' % _('Boundary Margin')) bmlabel.setToolTip( _("Specify the edge of the PCB\n" "by drawing a box around all\n" "objects with this minimum\n" "distance.") ) grid1.addWidget(bmlabel, 0, 0) self.noncopper_margin_entry = FCDoubleSpinner() self.noncopper_margin_entry.set_precision(self.decimals) self.noncopper_margin_entry.setSingleStep(0.1) self.noncopper_margin_entry.set_range(-9999, 9999) grid1.addWidget(self.noncopper_margin_entry, 0, 1) # Rounded corners self.noncopper_rounded_cb = FCCheckBox(label=_("Rounded Geo")) self.noncopper_rounded_cb.setToolTip( _("Resulting geometry will have rounded corners.") ) grid1.addWidget(self.noncopper_rounded_cb, 1, 0, 1, 2) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) grid1.addWidget(separator_line, 2, 0, 1, 2) # ## Bounding box self.boundingbox_label = QtWidgets.QLabel('%s:' % _('Bounding Box')) self.layout.addWidget(self.boundingbox_label) grid2 = QtWidgets.QGridLayout() self.layout.addLayout(grid2) bbmargin = QtWidgets.QLabel('%s:' % _('Boundary Margin')) bbmargin.setToolTip( _("Distance of the edges of the box\n" "to the nearest polygon.") ) self.bbmargin_entry = FCDoubleSpinner() self.bbmargin_entry.set_precision(self.decimals) self.bbmargin_entry.setSingleStep(0.1) self.bbmargin_entry.set_range(-9999, 9999) grid2.addWidget(bbmargin, 0, 0) grid2.addWidget(self.bbmargin_entry, 0, 1) self.bbrounded_cb = FCCheckBox(label='%s' % _("Rounded Geo")) self.bbrounded_cb.setToolTip( _("If the bounding box is \n" "to have rounded corners\n" "their radius is equal to\n" "the margin.") ) grid2.addWidget(self.bbrounded_cb, 1, 0, 1, 2) self.layout.addStretch()