def Activated(self): """Execute when the command is called.""" # Reset variables self.view = Draft.get3DView() self.wpButton = FreeCADGui.draftToolBar.wplabel FreeCAD.DraftWorkingPlane.setup() # Write current WP if states are empty if not self.states: p = FreeCAD.DraftWorkingPlane self.states.append([p.u, p.v, p.axis, p.position]) m = translate("draft", "Pick a face, 3 vertices " "or a WP Proxy to define the drawing plane") _msg(m) # Create task panel FreeCADGui.Control.closeDialog() self.taskd = task_selectplane.SelectPlaneTaskPanel() # Fill values self.taskd.form.checkCenter.setChecked(self.param.GetBool("CenterPlaneOnView", False)) q = FreeCAD.Units.Quantity(self.param.GetFloat("gridSpacing", 1.0), FreeCAD.Units.Length) self.taskd.form.fieldGridSpacing.setText(q.UserString) self.taskd.form.fieldGridMainLine.setValue(self.param.GetInt("gridEvery", 10)) self.taskd.form.fieldGridExtension.setValue(self.param.GetInt("gridSize", 100)) self.taskd.form.fieldSnapRadius.setValue(self.param.GetInt("snapRange", 8)) # Set icons self.taskd.form.setWindowIcon(QtGui.QIcon(":/icons/Draft_SelectPlane.svg")) self.taskd.form.buttonTop.setIcon(QtGui.QIcon(":/icons/view-top.svg")) self.taskd.form.buttonFront.setIcon(QtGui.QIcon(":/icons/view-front.svg")) self.taskd.form.buttonSide.setIcon(QtGui.QIcon(":/icons/view-right.svg")) self.taskd.form.buttonAlign.setIcon(QtGui.QIcon(":/icons/view-isometric.svg")) self.taskd.form.buttonAuto.setIcon(QtGui.QIcon(":/icons/view-axonometric.svg")) self.taskd.form.buttonMove.setIcon(QtGui.QIcon(":/icons/Draft_Move.svg")) self.taskd.form.buttonCenter.setIcon(QtGui.QIcon(":/icons/view-fullscreen.svg")) self.taskd.form.buttonPrevious.setIcon(QtGui.QIcon(":/icons/edit-undo.svg")) # Connect slots self.taskd.form.buttonTop.clicked.connect(self.onClickTop) self.taskd.form.buttonFront.clicked.connect(self.onClickFront) self.taskd.form.buttonSide.clicked.connect(self.onClickSide) self.taskd.form.buttonAlign.clicked.connect(self.onClickAlign) self.taskd.form.buttonAuto.clicked.connect(self.onClickAuto) self.taskd.form.buttonMove.clicked.connect(self.onClickMove) self.taskd.form.buttonCenter.clicked.connect(self.onClickCenter) self.taskd.form.buttonPrevious.clicked.connect(self.onClickPrevious) self.taskd.form.fieldGridSpacing.textEdited.connect(self.onSetGridSize) self.taskd.form.fieldGridMainLine.valueChanged.connect(self.onSetMainline) self.taskd.form.fieldGridExtension.valueChanged.connect(self.onSetExtension) self.taskd.form.fieldSnapRadius.valueChanged.connect(self.onSetSnapRadius) # Try to find a WP from the current selection if self.handle(): return # Try another method if FreeCAD.DraftWorkingPlane.alignToSelection(): FreeCADGui.Selection.clearSelection() self.display(FreeCAD.DraftWorkingPlane.axis) self.finish() return # Execute the actual task panel FreeCADGui.Control.showDialog(self.taskd) self.call = self.view.addEventCallback("SoEvent", self.action)
def Activated(self): """Execute when the command is called.""" # finish active Draft command if any if FreeCAD.activeDraftCommand is not None: FreeCAD.activeDraftCommand.finish() # Reset variables self.view = Draft.get3DView() self.wpButton = FreeCADGui.draftToolBar.wplabel FreeCAD.DraftWorkingPlane.setup() # Write current WP if states are empty if not self.states: p = FreeCAD.DraftWorkingPlane self.states.append([p.u, p.v, p.axis, p.position]) # Create task panel FreeCADGui.Control.closeDialog() self.taskd = task_selectplane.SelectPlaneTaskPanel() self.taskd.reject = self.reject # Fill values self.taskd.form.checkCenter.setChecked( self.param.GetBool("CenterPlaneOnView", False)) try: q = FreeCAD.Units.Quantity( self.param.GetString("gridSpacing", "1 mm")) except ValueError: q = FreeCAD.Units.Quantity("1 mm") self.taskd.form.fieldGridSpacing.setText(q.UserString) self.taskd.form.fieldGridMainLine.setValue( self.param.GetInt("gridEvery", 10)) self.taskd.form.fieldGridExtension.setValue( self.param.GetInt("gridSize", 100)) self.taskd.form.fieldSnapRadius.setValue( self.param.GetInt("snapRange", 8)) # Set icons self.taskd.form.setWindowIcon( QtGui.QIcon(":/icons/Draft_SelectPlane.svg")) self.taskd.form.buttonTop.setIcon(QtGui.QIcon(":/icons/view-top.svg")) self.taskd.form.buttonFront.setIcon( QtGui.QIcon(":/icons/view-front.svg")) self.taskd.form.buttonSide.setIcon( QtGui.QIcon(":/icons/view-right.svg")) self.taskd.form.buttonAlign.setIcon( QtGui.QIcon(":/icons/view-isometric.svg")) self.taskd.form.buttonAuto.setIcon( QtGui.QIcon(":/icons/view-axonometric.svg")) self.taskd.form.buttonMove.setIcon( QtGui.QIcon(":/icons/Draft_Move.svg")) self.taskd.form.buttonCenter.setIcon( QtGui.QIcon(":/icons/view-fullscreen.svg")) self.taskd.form.buttonPrevious.setIcon( QtGui.QIcon(":/icons/edit-undo.svg")) # Connect slots self.taskd.form.buttonTop.clicked.connect(self.onClickTop) self.taskd.form.buttonFront.clicked.connect(self.onClickFront) self.taskd.form.buttonSide.clicked.connect(self.onClickSide) self.taskd.form.buttonAlign.clicked.connect(self.onClickAlign) self.taskd.form.buttonAuto.clicked.connect(self.onClickAuto) self.taskd.form.buttonMove.clicked.connect(self.onClickMove) self.taskd.form.buttonCenter.clicked.connect(self.onClickCenter) self.taskd.form.buttonPrevious.clicked.connect(self.onClickPrevious) self.taskd.form.fieldGridSpacing.textEdited.connect(self.onSetGridSize) self.taskd.form.fieldGridMainLine.valueChanged.connect( self.onSetMainline) self.taskd.form.fieldGridExtension.valueChanged.connect( self.onSetExtension) self.taskd.form.fieldSnapRadius.valueChanged.connect( self.onSetSnapRadius) # save previous WP to ensure back to the last used when restored FreeCAD.DraftWorkingPlane.save() # Try to find a WP from the current selection if FreeCADGui.Selection.getSelectionEx(FreeCAD.ActiveDocument.Name): if self.handle(): pass # Try another method elif FreeCAD.DraftWorkingPlane.alignToSelection(): FreeCADGui.Selection.clearSelection() self.display(FreeCAD.DraftWorkingPlane.axis) return None # Execute the actual task panel delayed to catch possible active Draft command todo.delay(FreeCADGui.Control.showDialog, self.taskd) _msg( translate( "draft", "Pick a face, 3 vertices or a WP Proxy to define the drawing plane" )) self.call = self.view.addEventCallback("SoEvent", self.action)