From b20171a656c9db24bde197a4c9788386b94fa142 Mon Sep 17 00:00:00 2001 From: Syres916 <46537884+Syres916@users.noreply.github.com> Date: Thu, 28 Dec 2023 22:03:47 +0000 Subject: [PATCH] [Path] Implement document level Units Schema check --- src/Mod/Path/Path/Main/Gui/JobDlg.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/Mod/Path/Path/Main/Gui/JobDlg.py b/src/Mod/Path/Path/Main/Gui/JobDlg.py index 0566b2f5be..0a0b5b3bad 100644 --- a/src/Mod/Path/Path/Main/Gui/JobDlg.py +++ b/src/Mod/Path/Path/Main/Gui/JobDlg.py @@ -56,6 +56,34 @@ class JobCreate: DataObject = QtCore.Qt.ItemDataRole.UserRole def __init__(self, parent=None, sel=None): + # Warn user if current schema doesn't use minute for time in velocity + if not Path.Preferences.suppressVelocity(): + schemes = FreeCAD.Units.listSchemas() + for idx, val in enumerate(schemes): + if FreeCAD.ActiveDocument.UnitSystem == FreeCAD.Units.listSchemas(idx): + current_schema = FreeCAD.Units.listSchemas(idx) + if idx not in [2, 3, 6]: + msg = translate( + "Path", + "The currently selected unit schema: \n '{}' for this document\n Does not use 'minutes' for velocity values. \n \nCNC machines require feed rate to be expressed in \nunit/minute. To ensure correct G-code: \nSelect a minute-based schema in preferences.\nFor example:\n 'Metric, Small Parts & CNC'\n 'US Customary'\n 'Imperial Decimal'", + ).format(current_schema) + header = translate("Path", "Warning") + msgbox = QtGui.QMessageBox( + QtGui.QMessageBox.Warning, header, msg + ) + + msgbox.addButton( + translate("Path", "Ok"), QtGui.QMessageBox.AcceptRole + ) + msgbox.addButton( + translate("Path", "Don't Show This Anymore"), + QtGui.QMessageBox.ActionRole, + ) + if msgbox.exec_() == 1: + from Path.Preferences import preferences + + preferences().SetBool("WarningSuppressVelocity", True) + self.dialog = FreeCADGui.PySideUic.loadUi(":/panels/DlgJobCreate.ui") self.itemsSolid = QtGui.QStandardItem(translate("Path_Job", "Solids")) self.items2D = QtGui.QStandardItem(translate("Path_Job", "2D"))