| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | """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()) |
| |
|
| | |
| |
|