- added a new setting named 'Allow Machinist Unsafe Settings' that will allow the Travel Z and Cut Z to take both positive and negative values

This commit is contained in:
Marius Stanciu
2019-11-05 15:12:10 +02:00
parent c85e397eca
commit 14917456ab
8 changed files with 249 additions and 159 deletions

View File

@@ -12,7 +12,7 @@
# ##########################################################
from PyQt5 import QtGui, QtCore, QtWidgets
from PyQt5.QtCore import Qt, pyqtSlot
from PyQt5.QtCore import Qt, pyqtSlot, QSettings
from PyQt5.QtWidgets import QTextEdit, QCompleter, QAction
from PyQt5.QtGui import QKeySequence, QTextCursor

View File

@@ -22,6 +22,12 @@ fcTranslate.apply_language('strings')
if '_' not in builtins.__dict__:
_ = gettext.gettext
settings = QtCore.QSettings("Open Source", "FlatCAM")
if settings.contains("machinist"):
machinist_setting = settings.value('machinist', type=int)
else:
machinist_setting = 0
class ObjectUI(QtWidgets.QWidget):
"""
@@ -754,7 +760,12 @@ class ExcellonObjectUI(ObjectUI):
grid1.addWidget(cutzlabel, 0, 0)
self.cutz_entry = FCDoubleSpinner()
self.cutz_entry.set_precision(self.decimals)
self.cutz_entry.setRange(-9999.9999, -0.000001)
if machinist_setting == 0:
self.cutz_entry.setRange(-9999.9999, -0.000001)
else:
self.cutz_entry.setRange(-9999.9999, 9999.9999)
self.cutz_entry.setSingleStep(0.1)
grid1.addWidget(self.cutz_entry, 0, 1)
@@ -768,7 +779,12 @@ class ExcellonObjectUI(ObjectUI):
grid1.addWidget(travelzlabel, 1, 0)
self.travelz_entry = FCDoubleSpinner()
self.travelz_entry.set_precision(self.decimals)
self.travelz_entry.setRange(0.0, 9999.9999)
if machinist_setting == 0:
self.travelz_entry.setRange(0.00001, 9999.9999)
else:
self.travelz_entry.setRange(-9999.9999, 9999.9999)
self.travelz_entry.setSingleStep(0.1)
grid1.addWidget(self.travelz_entry, 1, 1)
@@ -790,7 +806,12 @@ class ExcellonObjectUI(ObjectUI):
grid1.addWidget(toolchzlabel, 3, 0)
self.toolchangez_entry = FCDoubleSpinner()
self.toolchangez_entry.set_precision(self.decimals)
self.toolchangez_entry.setRange(0.0, 9999.9999)
if machinist_setting == 0:
self.toolchangez_entry.setRange(0.0, 9999.9999)
else:
self.toolchangez_entry.setRange(-9999.9999, 9999.9999)
self.toolchangez_entry.setSingleStep(0.1)
grid1.addWidget(self.toolchangez_entry, 3, 1)
@@ -815,7 +836,12 @@ class ExcellonObjectUI(ObjectUI):
grid1.addWidget(self.eendz_label, 5, 0)
self.eendz_entry = FCDoubleSpinner()
self.eendz_entry.set_precision(self.decimals)
self.eendz_entry.setRange(0.0, 9999.9999)
if machinist_setting == 0:
self.eendz_entry.setRange(0.0, 9999.9999)
else:
self.eendz_entry.setRange(-9999.9999, 9999.9999)
self.eendz_entry.setSingleStep(0.1)
grid1.addWidget(self.eendz_entry, 5, 1)
@@ -1166,7 +1192,6 @@ class GeometryObjectUI(ObjectUI):
self.grid1.addWidget(self.tool_offset_lbl, 0, 0)
self.grid1.addWidget(self.tool_offset_entry, 0, 1, 1, 2)
self.addtool_entry_lbl = QtWidgets.QLabel('<b>%s:</b>' % _('Tool Dia'))
self.addtool_entry_lbl.setToolTip(
_("Diameter for the new tool")
@@ -1279,7 +1304,12 @@ class GeometryObjectUI(ObjectUI):
)
self.cutz_entry = FCDoubleSpinner()
self.cutz_entry.set_precision(self.decimals)
self.cutz_entry.setRange(-9999.9999, -0.00001)
if machinist_setting == 0:
self.cutz_entry.setRange(-9999.9999, -0.00001)
else:
self.cutz_entry.setRange(-9999.9999, 9999.9999)
self.cutz_entry.setSingleStep(0.1)
self.grid3.addWidget(cutzlabel, 3, 0)
@@ -1319,7 +1349,12 @@ class GeometryObjectUI(ObjectUI):
)
self.travelz_entry = FCDoubleSpinner()
self.travelz_entry.set_precision(self.decimals)
self.travelz_entry.setRange(0, 9999.9999)
if machinist_setting == 0:
self.travelz_entry.setRange(0.00001, 9999.9999)
else:
self.travelz_entry.setRange(-9999.9999, 9999.9999)
self.travelz_entry.setSingleStep(0.1)
self.grid3.addWidget(travelzlabel, 5, 0)
@@ -1342,7 +1377,12 @@ class GeometryObjectUI(ObjectUI):
)
self.toolchangez_entry = FCDoubleSpinner()
self.toolchangez_entry.set_precision(self.decimals)
self.toolchangez_entry.setRange(0, 9999.9999)
if machinist_setting == 0:
self.toolchangez_entry.setRange(0, 9999.9999)
else:
self.toolchangez_entry.setRange(-9999.9999, 9999.9999)
self.toolchangez_entry.setSingleStep(0.1)
self.grid3.addWidget(self.toolchangeg_cb, 6, 0, 1, 2)
@@ -1369,7 +1409,12 @@ class GeometryObjectUI(ObjectUI):
)
self.gendz_entry = FCDoubleSpinner()
self.gendz_entry.set_precision(self.decimals)
self.gendz_entry.setRange(0, 9999.9999)
if machinist_setting == 0:
self.gendz_entry.setRange(0, 9999.9999)
else:
self.gendz_entry.setRange(-9999.9999, 9999.9999)
self.gendz_entry.setSingleStep(0.1)
self.grid3.addWidget(self.endzlabel, 9, 0)

View File

@@ -18,6 +18,12 @@ fcTranslate.apply_language('strings')
if '_' not in builtins.__dict__:
_ = gettext.gettext
settings = QtCore.QSettings("Open Source", "FlatCAM")
if settings.contains("machinist"):
machinist_setting = settings.value('machinist', type=int)
else:
machinist_setting = 0
class OptionsGroupUI(QtWidgets.QGroupBox):
def __init__(self, title, parent=None):
@@ -1166,6 +1172,7 @@ class GeneralAppPrefGroupUI(OptionsGroupUI):
self.proj_ois = OptionalInputSection(self.save_type_cb, [self.compress_label, self.compress_spinner], True)
# Bookmarks Limit in the Help Menu
self.bm_limit_spinner = FCSpinner()
self.bm_limit_label = QtWidgets.QLabel('%s:' % _('Bookmarks limit'))
self.bm_limit_label.setToolTip(
@@ -1177,6 +1184,18 @@ class GeneralAppPrefGroupUI(OptionsGroupUI):
grid0.addWidget(self.bm_limit_label, 18, 0)
grid0.addWidget(self.bm_limit_spinner, 18, 1)
# Machinist settings that allow unsafe settings
self.machinist_cb = FCCheckBox(_("Allow Machinist Unsafe Settings"))
self.machinist_cb.setToolTip(
_("If checked, some of the application settings will be allowed\n"
"to have values that are usually unsafe to use.\n"
"Like Z travel negative values or Z Cut positive values.\n"
"It will applied at the next application start.\n"
"<<WARNING>>: Don't change this unless you know what you are doing !!!")
)
grid0.addWidget(self.machinist_cb, 19, 0, 1, 2)
self.layout.addStretch()
if sys.platform != 'win32':
@@ -2154,7 +2173,12 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI):
)
grid2.addWidget(cutzlabel, 0, 0)
self.cutz_entry = FCDoubleSpinner()
self.cutz_entry.set_range(-9999, -0.000001)
if machinist_setting == 0:
self.cutz_entry.set_range(-9999.9999, -0.000001)
else:
self.cutz_entry.set_range(-9999.9999, 9999.9999)
self.cutz_entry.setSingleStep(0.1)
self.cutz_entry.set_precision(4)
grid2.addWidget(self.cutz_entry, 0, 1)
@@ -2168,7 +2192,11 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI):
grid2.addWidget(travelzlabel, 1, 0)
self.travelz_entry = FCDoubleSpinner()
self.travelz_entry.set_precision(4)
self.travelz_entry.set_range(0, 999)
if machinist_setting == 0:
self.travelz_entry.set_range(0.0001, 9999.9999)
else:
self.travelz_entry.set_range(-9999.9999, 9999.9999)
grid2.addWidget(self.travelz_entry, 1, 1)
@@ -2190,7 +2218,11 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI):
grid2.addWidget(toolchangezlabel, 3, 0)
self.toolchangez_entry = FCDoubleSpinner()
self.toolchangez_entry.set_precision(4)
self.toolchangez_entry.set_range(0, 999)
if machinist_setting == 0:
self.toolchangez_entry.set_range(0.0001, 9999.9999)
else:
self.toolchangez_entry.set_range(-9999.9999, 9999.9999)
grid2.addWidget(self.toolchangez_entry, 3, 1)
@@ -2202,7 +2234,11 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI):
)
self.eendz_entry = FCDoubleSpinner()
self.eendz_entry.set_precision(4)
self.eendz_entry.set_range(0, 999)
if machinist_setting == 0:
self.eendz_entry.set_range(0.0000, 9999.9999)
else:
self.eendz_entry.set_range(-9999.9999, 9999.9999)
grid2.addWidget(endzlabel, 4, 0)
grid2.addWidget(self.eendz_entry, 4, 1)
@@ -2975,7 +3011,12 @@ class GeometryOptPrefGroupUI(OptionsGroupUI):
"below the copper surface.")
)
self.cutz_entry = FCDoubleSpinner()
self.cutz_entry.set_range(-999.999, -0.000001)
if machinist_setting == 0:
self.cutz_entry.set_range(-9999.9999, -0.000001)
else:
self.cutz_entry.set_range(-9999.9999, 9999.9999)
self.cutz_entry.set_precision(4)
self.cutz_entry.setSingleStep(0.1)
self.cutz_entry.setWrapping(True)
@@ -3023,7 +3064,12 @@ class GeometryOptPrefGroupUI(OptionsGroupUI):
"moving without cutting.")
)
self.travelz_entry = FCDoubleSpinner()
self.travelz_entry.set_range(0, 99999)
if machinist_setting == 0:
self.travelz_entry.set_range(0.0001, 9999.9999)
else:
self.travelz_entry.set_range(-9999.9999, 9999.9999)
self.travelz_entry.set_precision(4)
self.travelz_entry.setSingleStep(0.1)
self.travelz_entry.setWrapping(True)
@@ -3052,7 +3098,12 @@ class GeometryOptPrefGroupUI(OptionsGroupUI):
)
)
self.toolchangez_entry = FCDoubleSpinner()
self.toolchangez_entry.set_range(0, 99999)
if machinist_setting == 0:
self.toolchangez_entry.set_range(0.000, 9999.9999)
else:
self.toolchangez_entry.set_range(-9999.9999, 9999.9999)
self.toolchangez_entry.set_precision(4)
self.toolchangez_entry.setSingleStep(0.1)
self.toolchangez_entry.setWrapping(True)
@@ -3067,7 +3118,12 @@ class GeometryOptPrefGroupUI(OptionsGroupUI):
"the last move at the end of the job.")
)
self.gendz_entry = FCDoubleSpinner()
self.gendz_entry.set_range(0, 99999)
if machinist_setting == 0:
self.gendz_entry.set_range(0.000, 9999.9999)
else:
self.gendz_entry.set_range(-9999.9999, 9999.9999)
self.gendz_entry.set_precision(4)
self.gendz_entry.setSingleStep(0.1)
self.gendz_entry.setWrapping(True)