- added new FlatCAM Tool: Corner Markers Tool which will add line markers in the selected corners of the bounding box of the targeted Gerber object
This commit is contained in:
@@ -954,6 +954,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
|
||||
QtGui.QIcon(self.app.resource_location + '/punch32.png'), _("Punch Gerber Tool"))
|
||||
self.invert_btn = self.toolbartools.addAction(
|
||||
QtGui.QIcon(self.app.resource_location + '/invert32.png'), _("Invert Gerber Tool"))
|
||||
self.corners_tool_btn = self.toolbartools.addAction(
|
||||
QtGui.QIcon(self.app.resource_location + '/corners_32.png'), _("Corner Markers Tool"))
|
||||
|
||||
# ########################################################################
|
||||
# ########################## Excellon Editor Toolbar# ####################
|
||||
@@ -1612,6 +1614,10 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
|
||||
<td height="20"><strong>Alt+L</strong></td>
|
||||
<td> %s</td>
|
||||
</tr>
|
||||
<tr height="20">
|
||||
<td height="20"><strong>Alt+M</strong></td>
|
||||
<td> %s</td>
|
||||
</tr>
|
||||
<tr height="20">
|
||||
<td height="20"><strong>Alt+N</strong></td>
|
||||
<td> %s</td>
|
||||
@@ -1742,7 +1748,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
|
||||
_("Align Objects Tool"), _("Calculators Tool"), _("2-Sided PCB Tool"), _("Transformations Tool"),
|
||||
_("Punch Gerber Tool"), _("Extract Drills Tool"), _("Fiducials Tool"),
|
||||
_("Solder Paste Dispensing Tool"),
|
||||
_("Film PCB Tool"), _("Non-Copper Clearing Tool"), _("Optimal Tool"),
|
||||
_("Film PCB Tool"), _("Corner Markers Tool"), _("Non-Copper Clearing Tool"), _("Optimal Tool"),
|
||||
_("Paint Area Tool"), _("QRCode Tool"), _("Rules Check Tool"),
|
||||
_("View File Source"),
|
||||
_("Cutout PCB Tool"), _("Enable all Plots"), _("Disable all Plots"), _("Disable Non-selected Plots"),
|
||||
@@ -2633,6 +2639,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
|
||||
QtGui.QIcon(self.app.resource_location + '/punch32.png'), _("Punch Gerber Tool"))
|
||||
self.invert_btn = self.toolbartools.addAction(
|
||||
QtGui.QIcon(self.app.resource_location + '/invert32.png'), _("Invert Gerber Tool"))
|
||||
self.corners_tool_btn = self.toolbartools.addAction(
|
||||
QtGui.QIcon(self.app.resource_location + '/corners_32.png'), _("Corner Markers Tool"))
|
||||
|
||||
# ########################################################################
|
||||
# ## Excellon Editor Toolbar # ##
|
||||
@@ -3022,6 +3030,11 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
|
||||
self.app.film_tool.run(toggle=True)
|
||||
return
|
||||
|
||||
# Corner Markers Tool
|
||||
if key == QtCore.Qt.Key_M:
|
||||
self.app.corners_tool.run(toggle=True)
|
||||
return
|
||||
|
||||
# Non-Copper Clear Tool
|
||||
if key == QtCore.Qt.Key_N:
|
||||
self.app.ncclear_tool.run(toggle=True)
|
||||
|
||||
@@ -467,6 +467,12 @@ class PreferencesUIManager:
|
||||
"tools_solderpaste_pp": self.ui.tools_defaults_form.tools_solderpaste_group.pp_combo,
|
||||
"tools_sub_close_paths": self.ui.tools_defaults_form.tools_sub_group.close_paths_cb,
|
||||
|
||||
# Corner Markers Tool
|
||||
|
||||
"tools_corners_thickness": self.ui.tools_defaults_form.tools_corners_group.thick_entry,
|
||||
"tools_corners_length": self.ui.tools_defaults_form.tools_corners_group.l_entry,
|
||||
"tools_corners_margin": self.ui.tools_defaults_form.tools_corners_group.margin_entry,
|
||||
|
||||
# #######################################################################################################
|
||||
# ########################################## TOOLS 2 ####################################################
|
||||
# #######################################################################################################
|
||||
|
||||
81
flatcamGUI/preferences/tools/ToolsCornersPrefGroupUI.py
Normal file
81
flatcamGUI/preferences/tools/ToolsCornersPrefGroupUI.py
Normal file
@@ -0,0 +1,81 @@
|
||||
from PyQt5 import QtWidgets
|
||||
from PyQt5.QtCore import QSettings
|
||||
|
||||
from flatcamGUI.GUIElements import FCDoubleSpinner
|
||||
from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
|
||||
|
||||
import gettext
|
||||
import FlatCAMTranslation 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 ToolsCornersPrefGroupUI(OptionsGroupUI):
|
||||
def __init__(self, decimals=4, parent=None):
|
||||
# OptionsGroupUI.__init__(self, "Calculators Tool Options", parent=parent)
|
||||
super(ToolsCornersPrefGroupUI, self).__init__(self, parent=parent)
|
||||
|
||||
self.setTitle(str(_("Corner Markers Options")))
|
||||
self.decimals = decimals
|
||||
|
||||
grid0 = QtWidgets.QGridLayout()
|
||||
grid0.setColumnStretch(0, 0)
|
||||
grid0.setColumnStretch(1, 1)
|
||||
self.layout.addLayout(grid0)
|
||||
|
||||
self.param_label = QtWidgets.QLabel('<b>%s:</b>' % _('Parameters'))
|
||||
self.param_label.setToolTip(
|
||||
_("Parameters used for this tool.")
|
||||
)
|
||||
grid0.addWidget(self.param_label, 0, 0, 1, 2)
|
||||
|
||||
# Thickness #
|
||||
self.thick_label = QtWidgets.QLabel('%s:' % _("Thickness"))
|
||||
self.thick_label.setToolTip(
|
||||
_("The thickness of the line that makes the corner marker.")
|
||||
)
|
||||
self.thick_entry = FCDoubleSpinner()
|
||||
self.thick_entry.set_range(0.0000, 9.9999)
|
||||
self.thick_entry.set_precision(self.decimals)
|
||||
self.thick_entry.setWrapping(True)
|
||||
self.thick_entry.setSingleStep(10 ** -self.decimals)
|
||||
|
||||
grid0.addWidget(self.thick_label, 1, 0)
|
||||
grid0.addWidget(self.thick_entry, 1, 1)
|
||||
|
||||
# Length #
|
||||
self.l_label = QtWidgets.QLabel('%s:' % _("Length"))
|
||||
self.l_label.setToolTip(
|
||||
_("The length of the line that makes the corner marker.")
|
||||
)
|
||||
self.l_entry = FCDoubleSpinner()
|
||||
self.l_entry.set_range(-9999.9999, 9999.9999)
|
||||
self.l_entry.set_precision(self.decimals)
|
||||
self.l_entry.setSingleStep(10 ** -self.decimals)
|
||||
|
||||
# Margin #
|
||||
self.margin_label = QtWidgets.QLabel('%s:' % _("Margin"))
|
||||
self.margin_label.setToolTip(
|
||||
_("Bounding box margin.")
|
||||
)
|
||||
self.margin_entry = FCDoubleSpinner()
|
||||
self.margin_entry.set_range(-9999.9999, 9999.9999)
|
||||
self.margin_entry.set_precision(self.decimals)
|
||||
self.margin_entry.setSingleStep(0.1)
|
||||
|
||||
grid0.addWidget(self.margin_label, 2, 0)
|
||||
grid0.addWidget(self.margin_entry, 2, 1)
|
||||
|
||||
grid0.addWidget(self.l_label, 4, 0)
|
||||
grid0.addWidget(self.l_entry, 4, 1)
|
||||
|
||||
self.layout.addStretch()
|
||||
@@ -3,6 +3,7 @@ from PyQt5.QtCore import QSettings
|
||||
|
||||
from flatcamGUI.preferences.tools.ToolsSubPrefGroupUI import ToolsSubPrefGroupUI
|
||||
from flatcamGUI.preferences.tools.ToolsSolderpastePrefGroupUI import ToolsSolderpastePrefGroupUI
|
||||
from flatcamGUI.preferences.tools.ToolsCornersPrefGroupUI import ToolsCornersPrefGroupUI
|
||||
from flatcamGUI.preferences.tools.ToolsTransformPrefGroupUI import ToolsTransformPrefGroupUI
|
||||
from flatcamGUI.preferences.tools.ToolsCalculatorsPrefGroupUI import ToolsCalculatorsPrefGroupUI
|
||||
from flatcamGUI.preferences.tools.ToolsPanelizePrefGroupUI import ToolsPanelizePrefGroupUI
|
||||
@@ -62,6 +63,9 @@ class ToolsPreferencesUI(QtWidgets.QWidget):
|
||||
self.tools_solderpaste_group = ToolsSolderpastePrefGroupUI(decimals=self.decimals)
|
||||
self.tools_solderpaste_group.setMinimumWidth(200)
|
||||
|
||||
self.tools_corners_group = ToolsCornersPrefGroupUI(decimals=self.decimals)
|
||||
self.tools_corners_group.setMinimumWidth(200)
|
||||
|
||||
self.tools_sub_group = ToolsSubPrefGroupUI(decimals=self.decimals)
|
||||
self.tools_sub_group.setMinimumWidth(200)
|
||||
|
||||
@@ -84,6 +88,7 @@ class ToolsPreferencesUI(QtWidgets.QWidget):
|
||||
|
||||
self.vlay4 = QtWidgets.QVBoxLayout()
|
||||
self.vlay4.addWidget(self.tools_solderpaste_group)
|
||||
self.vlay4.addWidget(self.tools_corners_group)
|
||||
|
||||
self.layout.addLayout(self.vlay)
|
||||
self.layout.addLayout(self.vlay1)
|
||||
|
||||
Reference in New Issue
Block a user