import FreeCADGui as Gui import FreeCAD as App class AHB_RefreshView: def GetResources(self): return {"MenuText": "Refresh page (final quality)", "ToolTip": "Redraws the current page, or if one or more pages are selected, redraw all the selected pages", "Pixmap": "" } def IsActive(self): workbench = Gui.getWorkbench("AssemblyHandbookWorkbench") #: :type workbench: AssemblyHandbookWorkbench return workbench.techDrawExtensions.getActivePage() is not None def Activated(self): workbench = Gui.getWorkbench("AssemblyHandbookWorkbench") #: :type workbench: AssemblyHandbookWorkbench selection = Gui.Selection.getSelection() has_selected_pages = len(selection) > 0 for s in selection: if s.TypeId != 'TechDraw::DrawPage': has_selected_pages = False if has_selected_pages: for page in selection: workbench.techDrawExtensions.forceRedrawPage(page, fast_render = False) else: page = workbench.techDrawExtensions.getActivePage() if page is not None: workbench.techDrawExtensions.forceRedrawPage(page, fast_render = False) from ahb_command import AHB_CommandWrapper AHB_CommandWrapper.addGuiCommand('AHB_view_refresh', AHB_RefreshView())