From 818255f416c7809e758e410efdc4a7a4dcff3a40 Mon Sep 17 00:00:00 2001 From: edi271 Date: Sun, 12 Feb 2023 14:56:06 +0100 Subject: [PATCH] [TD] Command source hole /shaft fit --- .../TechDrawTools/CommandHoleShaftFit.py | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/Mod/TechDraw/TechDrawTools/CommandHoleShaftFit.py diff --git a/src/Mod/TechDraw/TechDrawTools/CommandHoleShaftFit.py b/src/Mod/TechDraw/TechDrawTools/CommandHoleShaftFit.py new file mode 100644 index 0000000000..d4cedaf31b --- /dev/null +++ b/src/Mod/TechDraw/TechDrawTools/CommandHoleShaftFit.py @@ -0,0 +1,72 @@ +# *************************************************************************** +# * Copyright (c) 2023 edi * +# * * +# * This program is free software; you can redistribute it and/or modify * +# * it under the terms of the GNU Lesser General Public License (LGPL) * +# * as published by the Free Software Foundation; either version 2 of * +# * the License, or (at your option) any later version. * +# * for detail see the LICENCE text file. * +# * * +# * This program is distributed in the hope that it will be useful, * +# * but WITHOUT ANY WARRANTY; without even the implied warranty of * +# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# * GNU Library General Public License for more details. * +# * * +# * You should have received a copy of the GNU Library General Public * +# * License along with this program; if not, write to the Free Software * +# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# * USA * +# * * +# *************************************************************************** +"""Provides the TechDraw HoleShaftFit GuiCommand.""" + +__title__ = "TechDrawTools.CommandHoleShaftFit" +__author__ = "edi" +__url__ = "https://www.freecadweb.org" +__version__ = "00.01" +__date__ = "2023/02/07" + +from PySide.QtCore import QT_TRANSLATE_NOOP + +import FreeCAD as App +import FreeCADGui as Gui + +import TechDrawTools + +class CommandHoleShaftFit: + """Adds a hole or shaft fit to a selected dimension.""" + + def __init__(self): + """Initialize variables for the command that must exist at all times.""" + pass + + def GetResources(self): + """Return a dictionary with data that will be used by the button or menu item.""" + return {'Pixmap': 'actions/TechDraw_HoleShaftFit.svg', + 'Accel': "", + 'MenuText': QT_TRANSLATE_NOOP("TechDraw_HoleShaftFit", "Add hole or shaft fit"), + 'ToolTip': QT_TRANSLATE_NOOP("TechDraw_HoleShaftFit", "Add a hole or shaft fit to a dimension
\ + - select one length dimension or diameter dimension
\ + - click the tool button, a panel openes
\ + - select shaft fit / hole fit
\ + - select the desired ISO 286 fit field using the combo box")} + + def Activated(self): + """Run the following code when the command is activated (button press).""" + sel = Gui.Selection.getSelectionEx() + #if sel and sel[0].Object.TypeId == 'TechDraw::DrawViewDimension': + if sel[0].Object.TypeId == 'TechDraw::DrawViewDimension': + self.ui = TechDrawTools.TaskHoleShaftFit(sel) + Gui.Control.showDialog(self.ui) + + def IsActive(self): + """Return True when the command should be active or False when it should be disabled (greyed).""" + if App.ActiveDocument: + return TechDrawTools.TDToolsUtil.havePage() and TechDrawTools.TDToolsUtil.haveView() + else: + return False + +# +# The command must be "registered" with a unique name by calling its class. +Gui.addCommand('TechDraw_HoleShaftFit', CommandHoleShaftFit()) +