diff --git a/src/Mod/PartDesign/WizardShaft/SegmentFunction.py b/src/Mod/PartDesign/WizardShaft/SegmentFunction.py index db50120d3..629c2acda 100644 --- a/src/Mod/PartDesign/WizardShaft/SegmentFunction.py +++ b/src/Mod/PartDesign/WizardShaft/SegmentFunction.py @@ -20,6 +20,8 @@ # * * # ******************************************************************************/ +import FreeCAD # just for debug printing to console... + class SegmentFunctionSegment: "One segment of a segment function" start = 0 @@ -143,10 +145,10 @@ class SegmentFunction: return result def output(self): - print self.name, " = ", + FreeCAD.Console.PrintMessage(self.name + " = ") for i in range(len(self.segments)): - print self.segments[i].asString(), + FreeCAD.Console.PrintMessage(self.segments[i].asString()) if i < len(self.segments) - 1: - print " + ", - print "" + FreeCAD.Console.PrintMessage(" + ") + FreeCAD.Console.PrintMessage("\n") diff --git a/src/Mod/PartDesign/WizardShaft/Shaft.py b/src/Mod/PartDesign/WizardShaft/Shaft.py index 4d10a227e..ff5da1afc 100644 --- a/src/Mod/PartDesign/WizardShaft/Shaft.py +++ b/src/Mod/PartDesign/WizardShaft/Shaft.py @@ -21,7 +21,7 @@ # ******************************************************************************/ import os, tempfile -import FreeCADGui +import FreeCAD, FreeCADGui # FreeCAD just required for debug printing to the console... import WebGui from SegmentFunction import SegmentFunction from ShaftFeature import ShaftFeature @@ -115,7 +115,7 @@ class Shaft: self.segments[index].loadLocation = loadLocation else: # TODO: Show warning - print "Load location must be inside segment" + FreeCAD.Console.PrintMessage("Load location must be inside segment\n") #self.feature.updateForces() graphical representation of the forces self.equilibrium() @@ -187,7 +187,7 @@ class Shaft: coefficientsMbz.append(1) else: # TODO: Better error message - print "Fixed constraint must be at beginning or end of shaft" + FreeCAD.Console.PrintMessage("Fixed constraint must be at beginning or end of shaft\n") return locations["Fy%u" % i] = location @@ -203,7 +203,7 @@ class Shaft: #elif lType == "None": # # No loads on segment - print "Segment: %u, type: %s, load: %f, location: %f" % (i, lType, load, location) + FreeCAD.Console.PrintMessage("Segment: %u, type: %s, load: %f, location: %f\n" % (i, lType, load, location)) self.printEquilibrium(variableNames, coefficientsFy) self.printEquilibrium(variableNames, coefficientsMbz) @@ -227,8 +227,8 @@ class Shaft: else: moments[locations[variableNames[2]]] = solution[1] - print forces - print moments + FreeCAD.Console.PrintMessage(forces) + FreeCAD.Console.PrintMessage(moments) self.Qy = SegmentFunction("Qy") self.Qy.buildFromDict("x", forces) self.Qy.output() @@ -241,12 +241,12 @@ class Shaft: # Auxiliary method for debugging purposes for i in range(len(var)): if i == 0: - print "%f = " % coeff[i], + FreeCAD.Console.PrintMessage("%f = " % coeff[i]) else: - print "%f * %s" % (coeff[i], var[i]), + FreeCAD.Console.PrintMessage("%f * %s" % (coeff[i], var[i])) if (i < len(var) - 1) and (i != 0): - print " + ", - print "" + FreeCAD.Console.PrintMessage(" + ") + FreeCAD.Console.PrintMessage("\n") def __del__(self): "Remove the temporary directory" diff --git a/src/Mod/PartDesign/WizardShaft/WizardShaft.py b/src/Mod/PartDesign/WizardShaft/WizardShaft.py index 04c3ea147..78056dfb3 100644 --- a/src/Mod/PartDesign/WizardShaft/WizardShaft.py +++ b/src/Mod/PartDesign/WizardShaft/WizardShaft.py @@ -74,7 +74,7 @@ class WizardShaft: #self.shaft.htmlWindow = htmlWindow def updateEdge(self, column, start): - print "Not implemented yet - waiting for robust references..." + App.Console.PrintMessage("Not implemented yet - waiting for robust references...") return if self.sketchClosed is not True: return @@ -116,3 +116,6 @@ class WizardShaftGui: return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} FreeCADGui.addCommand('PartDesign_WizardShaft', WizardShaftGui()) + +#Note: Start wizard in Python Console with +# Gui.runCommand('PartDesign_WizardShaft') diff --git a/src/Mod/PartDesign/WizardShaft/WizardShaftTable.py b/src/Mod/PartDesign/WizardShaft/WizardShaftTable.py index 705644193..a27289e20 100644 --- a/src/Mod/PartDesign/WizardShaft/WizardShaftTable.py +++ b/src/Mod/PartDesign/WizardShaft/WizardShaftTable.py @@ -21,6 +21,7 @@ # ******************************************************************************/ from PyQt4 import QtCore, QtGui +import FreeCAD # Just for debug printing... class WizardShaftTable: "The table widget that contains all the data of the shaft" @@ -119,7 +120,7 @@ class WizardShaftTable: widget = QtGui.QDoubleSpinBox(self.widget) widget.setMinimum(0) widget.setMaximum(1E9) - self.widget.setCellWidget(self.rowDict["Length"],index, widget) + self.widget.setCellWidget(self.rowDict["Length"], index, widget) widget.setValue(length) widget.valueChanged.connect(self.slotValueChanged) widget.editingFinished.connect(self.slotEditingFinished) @@ -127,25 +128,25 @@ class WizardShaftTable: widget = QtGui.QDoubleSpinBox(self.widget) widget.setMinimum(0) widget.setMaximum(1E9) - self.widget.setCellWidget(self.rowDict["Diameter"],index, widget) + self.widget.setCellWidget(self.rowDict["Diameter"], index, widget) widget.setValue(diameter) widget.valueChanged.connect(self.slotValueChanged) widget.editingFinished.connect(self.slotEditingFinished) # Load type - widget = QtGui.QListWidget(self.widget) - widget.insertItem(0, QtGui.QListWidgetItem("None", widget)) - widget.insertItem(1, QtGui.QListWidgetItem("Fixed", widget)) - widget.insertItem(2, QtGui.QListWidgetItem("Static", widget)) - widget.insertItem(3, QtGui.QListWidgetItem("Bearing", widget)) - widget.insertItem(4, QtGui.QListWidgetItem("Pulley", widget)) - self.widget.setCellWidget(self.rowDict["LoadType"],index, widget) - widget.setCurrentRow(0) - widget.currentItemChanged.connect(self.slotLoadType) + widget = QtGui.QComboBox(self.widget) + widget.insertItem(0, "None") + widget.insertItem(1, "Fixed") + widget.insertItem(2, "Static") + widget.insertItem(3, "Bearing") + widget.insertItem(4, "Pulley") + self.widget.setCellWidget(self.rowDict["LoadType"], index, widget) + widget.setCurrentIndex(0) + self.widget.connect(widget, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.slotLoadType) # Load size widget = QtGui.QDoubleSpinBox(self.widget) widget.setMinimum(-1E9) widget.setMaximum(1E9) - self.widget.setCellWidget(self.rowDict["LoadSize"],index, widget) + self.widget.setCellWidget(self.rowDict["LoadSize"], index, widget) widget.setValue(0) widget.valueChanged.connect(self.slotValueChanged) widget.editingFinished.connect(self.slotEditingFinished) @@ -153,18 +154,18 @@ class WizardShaftTable: widget = QtGui.QDoubleSpinBox(self.widget) widget.setMinimum(0) widget.setMaximum(1E9) - self.widget.setCellWidget(self.rowDict["LoadLocation"],index, widget) + self.widget.setCellWidget(self.rowDict["LoadLocation"], index, widget) widget.setValue(0) widget.valueChanged.connect(self.slotValueChanged) widget.editingFinished.connect(self.slotEditingFinished) # Start edge type - widget = QtGui.QListWidget(self.widget) - widget.insertItem(0, QtGui.QListWidgetItem("None", widget)) - widget.insertItem(1, QtGui.QListWidgetItem("Chamfer", widget)) - widget.insertItem(2, QtGui.QListWidgetItem("Fillet", widget)) + widget = QtGui.QComboBox(self.widget) + widget.insertItem(0, "None",) + widget.insertItem(1, "Chamfer") + widget.insertItem(2, "Fillet") self.widget.setCellWidget(self.rowDict["StartEdgeType"],index, widget) - widget.setCurrentRow(0) - widget.currentItemChanged.connect(self.slotStartEdgeType) + widget.setCurrentIndex(0) + self.widget.connect(widget, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.slotLoadType) # Start edge size widget = QtGui.QDoubleSpinBox(self.widget) widget.setMinimum(0) @@ -174,13 +175,13 @@ class WizardShaftTable: widget.valueChanged.connect(self.slotValueChanged) widget.editingFinished.connect(self.slotEditingFinished) # End edge type - widget = QtGui.QListWidget(self.widget) - widget.insertItem(0, QtGui.QListWidgetItem("None", widget)) - widget.insertItem(1, QtGui.QListWidgetItem("Chamfer", widget)) - widget.insertItem(2, QtGui.QListWidgetItem("Fillet", widget)) + widget = QtGui.QComboBox(self.widget) + widget.insertItem(0, "None",) + widget.insertItem(1, "Chamfer") + widget.insertItem(2, "Fillet") self.widget.setCellWidget(self.rowDict["EndEdgeType"],index, widget) - widget.setCurrentRow(0) - widget.currentItemChanged.connect(self.slotEndEdgeType) + widget.setCurrentIndex(0) + self.widget.connect(widget, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.slotLoadType) # End edge size widget = QtGui.QDoubleSpinBox(self.widget) widget.setMinimum(0) @@ -231,11 +232,12 @@ class WizardShaftTable: def getDiameter(self, column): return self.getDoubleValue("Diameter", column) - def slotLoadType(self, new, old): - if new.text() != "Fixed": + @QtCore.pyqtSlot('QString') + def slotLoadType(self, text): + if text != "Fixed": if (self.getLoadSize is None) or (self.getLoadLocation is None): return - self.shaft.updateLoad(self.getFocusedColumn(), loadType = new.text()) + self.shaft.updateLoad(self.getFocusedColumn(), loadType = text) def setLoadType(self, column, t): self.setListValue("LoadType", column, t) @@ -305,13 +307,13 @@ class WizardShaftTable: def setListValue(self, row, column, v): widget = self.widget.cellWidget(self.rowDict[row], column) widget.blockSignals(True) - widget.setCurrentItem(widget.findItems(v, QtCore.Qt.MatchExactly)[0]) + widget.setCurrentIndex(widget.findText(v, QtCore.Qt.MatchExactly)) widget.blockSignals(False) def getListValue(self, row, column): widget = self.widget.cellWidget(self.rowDict[row], column) if widget is not None: - return widget.currentItem().text().toAscii()[0].upper() + return widget.currentText().toAscii()[0].upper() else: return None