Changed list views to comboboxes in the table
This commit is contained in:
parent
5c1948d8b6
commit
1eb738fc3f
|
@ -20,6 +20,8 @@
|
||||||
# * *
|
# * *
|
||||||
# ******************************************************************************/
|
# ******************************************************************************/
|
||||||
|
|
||||||
|
import FreeCAD # just for debug printing to console...
|
||||||
|
|
||||||
class SegmentFunctionSegment:
|
class SegmentFunctionSegment:
|
||||||
"One segment of a segment function"
|
"One segment of a segment function"
|
||||||
start = 0
|
start = 0
|
||||||
|
@ -143,10 +145,10 @@ class SegmentFunction:
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def output(self):
|
def output(self):
|
||||||
print self.name, " = ",
|
FreeCAD.Console.PrintMessage(self.name + " = ")
|
||||||
for i in range(len(self.segments)):
|
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:
|
if i < len(self.segments) - 1:
|
||||||
print " + ",
|
FreeCAD.Console.PrintMessage(" + ")
|
||||||
print ""
|
FreeCAD.Console.PrintMessage("\n")
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
# ******************************************************************************/
|
# ******************************************************************************/
|
||||||
|
|
||||||
import os, tempfile
|
import os, tempfile
|
||||||
import FreeCADGui
|
import FreeCAD, FreeCADGui # FreeCAD just required for debug printing to the console...
|
||||||
import WebGui
|
import WebGui
|
||||||
from SegmentFunction import SegmentFunction
|
from SegmentFunction import SegmentFunction
|
||||||
from ShaftFeature import ShaftFeature
|
from ShaftFeature import ShaftFeature
|
||||||
|
@ -115,7 +115,7 @@ class Shaft:
|
||||||
self.segments[index].loadLocation = loadLocation
|
self.segments[index].loadLocation = loadLocation
|
||||||
else:
|
else:
|
||||||
# TODO: Show warning
|
# 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.feature.updateForces() graphical representation of the forces
|
||||||
self.equilibrium()
|
self.equilibrium()
|
||||||
|
@ -187,7 +187,7 @@ class Shaft:
|
||||||
coefficientsMbz.append(1)
|
coefficientsMbz.append(1)
|
||||||
else:
|
else:
|
||||||
# TODO: Better error message
|
# 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
|
return
|
||||||
|
|
||||||
locations["Fy%u" % i] = location
|
locations["Fy%u" % i] = location
|
||||||
|
@ -203,7 +203,7 @@ class Shaft:
|
||||||
#elif lType == "None":
|
#elif lType == "None":
|
||||||
# # No loads on segment
|
# # 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, coefficientsFy)
|
||||||
self.printEquilibrium(variableNames, coefficientsMbz)
|
self.printEquilibrium(variableNames, coefficientsMbz)
|
||||||
|
@ -227,8 +227,8 @@ class Shaft:
|
||||||
else:
|
else:
|
||||||
moments[locations[variableNames[2]]] = solution[1]
|
moments[locations[variableNames[2]]] = solution[1]
|
||||||
|
|
||||||
print forces
|
FreeCAD.Console.PrintMessage(forces)
|
||||||
print moments
|
FreeCAD.Console.PrintMessage(moments)
|
||||||
self.Qy = SegmentFunction("Qy")
|
self.Qy = SegmentFunction("Qy")
|
||||||
self.Qy.buildFromDict("x", forces)
|
self.Qy.buildFromDict("x", forces)
|
||||||
self.Qy.output()
|
self.Qy.output()
|
||||||
|
@ -241,12 +241,12 @@ class Shaft:
|
||||||
# Auxiliary method for debugging purposes
|
# Auxiliary method for debugging purposes
|
||||||
for i in range(len(var)):
|
for i in range(len(var)):
|
||||||
if i == 0:
|
if i == 0:
|
||||||
print "%f = " % coeff[i],
|
FreeCAD.Console.PrintMessage("%f = " % coeff[i])
|
||||||
else:
|
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):
|
if (i < len(var) - 1) and (i != 0):
|
||||||
print " + ",
|
FreeCAD.Console.PrintMessage(" + ")
|
||||||
print ""
|
FreeCAD.Console.PrintMessage("\n")
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
"Remove the temporary directory"
|
"Remove the temporary directory"
|
||||||
|
|
|
@ -74,7 +74,7 @@ class WizardShaft:
|
||||||
#self.shaft.htmlWindow = htmlWindow
|
#self.shaft.htmlWindow = htmlWindow
|
||||||
|
|
||||||
def updateEdge(self, column, start):
|
def updateEdge(self, column, start):
|
||||||
print "Not implemented yet - waiting for robust references..."
|
App.Console.PrintMessage("Not implemented yet - waiting for robust references...")
|
||||||
return
|
return
|
||||||
if self.sketchClosed is not True:
|
if self.sketchClosed is not True:
|
||||||
return
|
return
|
||||||
|
@ -116,3 +116,6 @@ class WizardShaftGui:
|
||||||
return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip}
|
return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip}
|
||||||
|
|
||||||
FreeCADGui.addCommand('PartDesign_WizardShaft', WizardShaftGui())
|
FreeCADGui.addCommand('PartDesign_WizardShaft', WizardShaftGui())
|
||||||
|
|
||||||
|
#Note: Start wizard in Python Console with
|
||||||
|
# Gui.runCommand('PartDesign_WizardShaft')
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
# ******************************************************************************/
|
# ******************************************************************************/
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
import FreeCAD # Just for debug printing...
|
||||||
|
|
||||||
class WizardShaftTable:
|
class WizardShaftTable:
|
||||||
"The table widget that contains all the data of the shaft"
|
"The table widget that contains all the data of the shaft"
|
||||||
|
@ -132,15 +133,15 @@ class WizardShaftTable:
|
||||||
widget.valueChanged.connect(self.slotValueChanged)
|
widget.valueChanged.connect(self.slotValueChanged)
|
||||||
widget.editingFinished.connect(self.slotEditingFinished)
|
widget.editingFinished.connect(self.slotEditingFinished)
|
||||||
# Load type
|
# Load type
|
||||||
widget = QtGui.QListWidget(self.widget)
|
widget = QtGui.QComboBox(self.widget)
|
||||||
widget.insertItem(0, QtGui.QListWidgetItem("None", widget))
|
widget.insertItem(0, "None")
|
||||||
widget.insertItem(1, QtGui.QListWidgetItem("Fixed", widget))
|
widget.insertItem(1, "Fixed")
|
||||||
widget.insertItem(2, QtGui.QListWidgetItem("Static", widget))
|
widget.insertItem(2, "Static")
|
||||||
widget.insertItem(3, QtGui.QListWidgetItem("Bearing", widget))
|
widget.insertItem(3, "Bearing")
|
||||||
widget.insertItem(4, QtGui.QListWidgetItem("Pulley", widget))
|
widget.insertItem(4, "Pulley")
|
||||||
self.widget.setCellWidget(self.rowDict["LoadType"], index, widget)
|
self.widget.setCellWidget(self.rowDict["LoadType"], index, widget)
|
||||||
widget.setCurrentRow(0)
|
widget.setCurrentIndex(0)
|
||||||
widget.currentItemChanged.connect(self.slotLoadType)
|
self.widget.connect(widget, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.slotLoadType)
|
||||||
# Load size
|
# Load size
|
||||||
widget = QtGui.QDoubleSpinBox(self.widget)
|
widget = QtGui.QDoubleSpinBox(self.widget)
|
||||||
widget.setMinimum(-1E9)
|
widget.setMinimum(-1E9)
|
||||||
|
@ -158,13 +159,13 @@ class WizardShaftTable:
|
||||||
widget.valueChanged.connect(self.slotValueChanged)
|
widget.valueChanged.connect(self.slotValueChanged)
|
||||||
widget.editingFinished.connect(self.slotEditingFinished)
|
widget.editingFinished.connect(self.slotEditingFinished)
|
||||||
# Start edge type
|
# Start edge type
|
||||||
widget = QtGui.QListWidget(self.widget)
|
widget = QtGui.QComboBox(self.widget)
|
||||||
widget.insertItem(0, QtGui.QListWidgetItem("None", widget))
|
widget.insertItem(0, "None",)
|
||||||
widget.insertItem(1, QtGui.QListWidgetItem("Chamfer", widget))
|
widget.insertItem(1, "Chamfer")
|
||||||
widget.insertItem(2, QtGui.QListWidgetItem("Fillet", widget))
|
widget.insertItem(2, "Fillet")
|
||||||
self.widget.setCellWidget(self.rowDict["StartEdgeType"],index, widget)
|
self.widget.setCellWidget(self.rowDict["StartEdgeType"],index, widget)
|
||||||
widget.setCurrentRow(0)
|
widget.setCurrentIndex(0)
|
||||||
widget.currentItemChanged.connect(self.slotStartEdgeType)
|
self.widget.connect(widget, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.slotLoadType)
|
||||||
# Start edge size
|
# Start edge size
|
||||||
widget = QtGui.QDoubleSpinBox(self.widget)
|
widget = QtGui.QDoubleSpinBox(self.widget)
|
||||||
widget.setMinimum(0)
|
widget.setMinimum(0)
|
||||||
|
@ -174,13 +175,13 @@ class WizardShaftTable:
|
||||||
widget.valueChanged.connect(self.slotValueChanged)
|
widget.valueChanged.connect(self.slotValueChanged)
|
||||||
widget.editingFinished.connect(self.slotEditingFinished)
|
widget.editingFinished.connect(self.slotEditingFinished)
|
||||||
# End edge type
|
# End edge type
|
||||||
widget = QtGui.QListWidget(self.widget)
|
widget = QtGui.QComboBox(self.widget)
|
||||||
widget.insertItem(0, QtGui.QListWidgetItem("None", widget))
|
widget.insertItem(0, "None",)
|
||||||
widget.insertItem(1, QtGui.QListWidgetItem("Chamfer", widget))
|
widget.insertItem(1, "Chamfer")
|
||||||
widget.insertItem(2, QtGui.QListWidgetItem("Fillet", widget))
|
widget.insertItem(2, "Fillet")
|
||||||
self.widget.setCellWidget(self.rowDict["EndEdgeType"],index, widget)
|
self.widget.setCellWidget(self.rowDict["EndEdgeType"],index, widget)
|
||||||
widget.setCurrentRow(0)
|
widget.setCurrentIndex(0)
|
||||||
widget.currentItemChanged.connect(self.slotEndEdgeType)
|
self.widget.connect(widget, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.slotLoadType)
|
||||||
# End edge size
|
# End edge size
|
||||||
widget = QtGui.QDoubleSpinBox(self.widget)
|
widget = QtGui.QDoubleSpinBox(self.widget)
|
||||||
widget.setMinimum(0)
|
widget.setMinimum(0)
|
||||||
|
@ -231,11 +232,12 @@ class WizardShaftTable:
|
||||||
def getDiameter(self, column):
|
def getDiameter(self, column):
|
||||||
return self.getDoubleValue("Diameter", column)
|
return self.getDoubleValue("Diameter", column)
|
||||||
|
|
||||||
def slotLoadType(self, new, old):
|
@QtCore.pyqtSlot('QString')
|
||||||
if new.text() != "Fixed":
|
def slotLoadType(self, text):
|
||||||
|
if text != "Fixed":
|
||||||
if (self.getLoadSize is None) or (self.getLoadLocation is None):
|
if (self.getLoadSize is None) or (self.getLoadLocation is None):
|
||||||
return
|
return
|
||||||
self.shaft.updateLoad(self.getFocusedColumn(), loadType = new.text())
|
self.shaft.updateLoad(self.getFocusedColumn(), loadType = text)
|
||||||
|
|
||||||
def setLoadType(self, column, t):
|
def setLoadType(self, column, t):
|
||||||
self.setListValue("LoadType", column, t)
|
self.setListValue("LoadType", column, t)
|
||||||
|
@ -305,13 +307,13 @@ class WizardShaftTable:
|
||||||
def setListValue(self, row, column, v):
|
def setListValue(self, row, column, v):
|
||||||
widget = self.widget.cellWidget(self.rowDict[row], column)
|
widget = self.widget.cellWidget(self.rowDict[row], column)
|
||||||
widget.blockSignals(True)
|
widget.blockSignals(True)
|
||||||
widget.setCurrentItem(widget.findItems(v, QtCore.Qt.MatchExactly)[0])
|
widget.setCurrentIndex(widget.findText(v, QtCore.Qt.MatchExactly))
|
||||||
widget.blockSignals(False)
|
widget.blockSignals(False)
|
||||||
|
|
||||||
def getListValue(self, row, column):
|
def getListValue(self, row, column):
|
||||||
widget = self.widget.cellWidget(self.rowDict[row], column)
|
widget = self.widget.cellWidget(self.rowDict[row], column)
|
||||||
if widget is not None:
|
if widget is not None:
|
||||||
return widget.currentItem().text().toAscii()[0].upper()
|
return widget.currentText().toAscii()[0].upper()
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user