| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| """Provides GUI tools to downgrade objects. |
| |
| Downgrades 2D objects to simpler objects until it reaches |
| simple Edge primitives. For example, a Draft Line to wire, and then |
| to a series of edges. |
| """ |
| |
| |
| |
|
|
| |
| |
| from PySide.QtCore import QT_TRANSLATE_NOOP |
|
|
| import FreeCADGui as Gui |
| import Draft_rc |
| import draftguitools.gui_base_original as gui_base_original |
| import draftguitools.gui_tool_utils as gui_tool_utils |
| from draftutils.messages import _msg |
| from draftutils.translate import translate |
|
|
| |
| True if Draft_rc.__name__ else False |
|
|
|
|
| class Downgrade(gui_base_original.Modifier): |
| """Gui Command for the Downgrade tool.""" |
|
|
| def GetResources(self): |
| """Set icon, menu and tooltip.""" |
|
|
| return { |
| "Pixmap": "Draft_Downgrade", |
| "Accel": "D, N", |
| "MenuText": QT_TRANSLATE_NOOP("Draft_Downgrade", "Downgrade"), |
| "ToolTip": QT_TRANSLATE_NOOP( |
| "Draft_Downgrade", |
| "Downgrades the selected objects into simpler shapes.\nThe result of the operation depends on the types of objects, which may be downgraded several times in a row.\nFor example, a 3D solid is deconstructed into separate faces, wires, and then edges. Faces can also be subtracted.", |
| ), |
| } |
|
|
| def Activated(self): |
| """Execute when the command is called.""" |
| super().Activated(name="Downgrade") |
| if not self.ui: |
| return |
| if not Gui.Selection.getSelection(): |
| self.ui.selectUi(on_close_call=self.finish) |
| _msg(translate("draft", "Select an object to upgrade")) |
| self.call = self.view.addEventCallback("SoEvent", gui_tool_utils.selectObject) |
| else: |
| self.proceed() |
|
|
| def proceed(self): |
| """Proceed with execution of the command after selection.""" |
| if self.call is not None: |
| self.end_callbacks(self.call) |
| if Gui.Selection.getSelection(): |
| Gui.addModule("Draft") |
| _cmd = "Draft.downgrade" |
| _cmd += "(" |
| _cmd += "FreeCADGui.Selection.getSelection(), " |
| _cmd += "delete=True" |
| _cmd += ")" |
| _cmd_list = ["_objs_ = " + _cmd, "FreeCAD.ActiveDocument.recompute()"] |
| self.commit(translate("draft", "Downgrade"), _cmd_list) |
| self.finish() |
|
|
|
|
| Gui.addCommand("Draft_Downgrade", Downgrade()) |
|
|
| |
|
|