Add icon to wizard shaft, error handling of missing python modules, slight changes to the wizard shaft command

This commit is contained in:
wmayer
2012-12-02 15:24:55 +01:00
parent 179f526cd2
commit 6dddb653d3
6 changed files with 450 additions and 14 deletions

View File

@@ -31,12 +31,13 @@ INSTALL(
SET(WizardShaft_SRCS
WizardShaft/__init__.py
WizardShaft/WizardShaft.py
WizardShaft/WizardShaftTable.py
WizardShaft/Shaft.py
WizardShaft/ShaftFeature.py
WizardShaft/ShaftDiagram.py
WizardShaft/SegmentFunction.py
WizardShaft/WizardShaft.svg
WizardShaft/WizardShaft.py
WizardShaft/WizardShaftTable.py
WizardShaft/Shaft.py
WizardShaft/ShaftFeature.py
WizardShaft/ShaftDiagram.py
WizardShaft/SegmentFunction.py
)
SOURCE_GROUP("wizardshaft" FILES ${WizardShaft_SRCS})

View File

@@ -28,6 +28,8 @@
#endif
#include "Workbench.h"
#include <Gui/Application.h>
#include <Gui/Command.h>
#include <Gui/MenuManager.h>
#include <Gui/ToolBarManager.h>
#include <Gui/Control.h>
@@ -214,9 +216,13 @@ Gui::MenuItem* Workbench::setupMenuBar() const
<< "PartDesign_LinearPattern"
<< "PartDesign_PolarPattern"
// << "PartDesign_Scaled"
<< "PartDesign_MultiTransform"
<< "Separator"
<< "PartDesign_WizardShaft";
<< "PartDesign_MultiTransform";
// For 0.13 a couple of python packages like numpy, matplotlib and others
// are not deployed with the installer on Windows. Thus, the WizardShaft is
// not deployed either hence the check for the existence of the command.
if (Gui::Application::Instance->commandManager().getCommandByName("PartDesign_WizardShaft")) {
*part << "Separator" << "PartDesign_WizardShaft";
}
return root;
}

View File

@@ -31,7 +31,6 @@
class PartDesignWorkbench ( Workbench ):
"PartDesign workbench object"
from WizardShaft import WizardShaft
Icon = """
/* XPM */
static char * partdesign_xpm[] = {
@@ -67,6 +66,10 @@ class PartDesignWorkbench ( Workbench ):
def Initialize(self):
# load the module
try:
from WizardShaft import WizardShaft
except:
print "Wizard shaft not installed"
import PartDesignGui
import PartDesign
def GetClassName(self):

View File

@@ -201,7 +201,11 @@ class Shaft:
self.printEquilibrium(variableNames, coefficientsMbz)
# Build matrix and vector for linear algebra solving algorithm
import numpy as np
try:
import numpy as np
except ImportError:
FreeCAD.Console.PrintMessage("numpy is not installed on your system\n")
raise ImportError("numpy not installed")
if (len(coefficientsFy) < 3) or (len(coefficientsMbz) < 3):
return
A = np.array([coefficientsFy[1:], coefficientsMbz[1:]])

View File

@@ -49,7 +49,7 @@ class TaskWizardShaft:
# updateSketch() slot will be activated and it relies on finding a valid document
if self.doc == None:
self.Gui.activateWorkbench("PartDesignWorkbench")
self.doc = self.App.newDocument()
self.doc = self.App.ActiveDocument
# Grab the newly created feature window
featureWindow = cw.subWindowList()[-1]
else:
@@ -80,11 +80,14 @@ class WizardShaftGui:
FreeCADGui.Control.showDialog(TaskWizardShaft())
def GetResources(self):
IconPath = FreeCAD.ConfigGet("AppHomePath") + "Mod/PartDesign/Gui/Resources/icons/WizardShaftIcon.png"
MenuText = 'Start the shaft design wizard'
IconPath = FreeCAD.ConfigGet("AppHomePath") + "Mod/PartDesign/WizardShaft/WizardShaft.svg"
MenuText = 'Shaft design wizard...'
ToolTip = 'Start the shaft design wizard'
return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip}
def IsActive(self):
return FreeCAD.ActiveDocument != None
FreeCADGui.addCommand('PartDesign_WizardShaft', WizardShaftGui())
#Note: Start wizard in Python Console with

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB