
- Added RigidConstraint. - Depricated some methods (get_result, get_constrainedness) and added some new methods (get_solution, get_cluster, get_status). Removed old SelectionConstraint and renamed FunctionConstraint to SelectionConstraint Depricated ClusterSolver2D Small bugfixes in cluster ClusterSolver3D Renamed solvergui directory to workbench Renamed solvertest directory to test
94 lines
3.9 KiB
Python
94 lines
3.9 KiB
Python
from includes import *
|
|
from ui_angleDialog import *
|
|
|
|
class AngleDialog(QtGui.QWidget):
|
|
def __init__(self, widget, mainWindow):
|
|
QtGui.QWidget.__init__(self, widget)
|
|
self.ui = Ui_AngleDialog()
|
|
self.ui.setupUi(self)
|
|
self.panel = widget
|
|
self.createTriggers()
|
|
self.prototypeManager = PrototypeManager()
|
|
self.mainWindow = mainWindow
|
|
self.aName = ""
|
|
|
|
def createTriggers(self):
|
|
QtCore.QObject.connect(self.ui.angleName,QtCore.SIGNAL("textEdited(const QString &)"), self.nameEdited)
|
|
QtCore.QObject.connect(self.ui.optionAngle,QtCore.SIGNAL("valueChanged(double)"), self.newAngle)
|
|
QtCore.QObject.connect(self.ui.angleFixed,QtCore.SIGNAL("stateChanged(int)"), self.fixedChange)
|
|
QtCore.QObject.connect(self.ui.getRangesButton,QtCore.SIGNAL("clicked()"), self.setParameterRange)
|
|
|
|
def update(self, objectInfo):
|
|
self.ui.angleName.setText(objectInfo.name)
|
|
self.setTextColor(self.ui.angleName, QtCore.Qt.black)
|
|
self.aName = objectInfo.name
|
|
|
|
if objectInfo.angle != None:
|
|
self.ui.optionAngle.setValue(objectInfo.angle)
|
|
self.ui.infoAPoint1Name.setText(objectInfo.pointBegin.name)
|
|
self.ui.infoAPoint1Coords.setText("(" + str(round(objectInfo.pointBegin.position[0], 2)) + " ; " +
|
|
str(round(objectInfo.pointBegin.position[1], 2)) + " ; " +
|
|
str(round(objectInfo.pointBegin.position[2], 2)) + ")")
|
|
|
|
self.ui.infoAPoint2Name.setText(objectInfo.pointMiddle.name)
|
|
self.ui.infoAPoint2Coords.setText("(" + str(round(objectInfo.pointMiddle.position[0], 2)) + " ; " +
|
|
str(round(objectInfo.pointMiddle.position[1], 2)) + " ; " +
|
|
str(round(objectInfo.pointMiddle.position[2], 2)) + ")")
|
|
|
|
self.ui.infoAPoint3Name.setText(objectInfo.pointEnd.name)
|
|
self.ui.infoAPoint3Coords.setText("(" + str(round(objectInfo.pointEnd.position[0], 2)) + " ; " +
|
|
str(round(objectInfo.pointEnd.position[1], 2)) + " ; " +
|
|
str(round(objectInfo.pointEnd.position[2], 2)) + ")")
|
|
|
|
if objectInfo.objType == ObjectType.ANGLE_CONSTRAINT and objectInfo.fixed:
|
|
self.ui.angleFixed.setCheckState(QtCore.Qt.Checked)
|
|
self.ui.optionAngle.setDisabled(True)
|
|
else:
|
|
self.ui.angleFixed.setCheckState(QtCore.Qt.Unchecked)
|
|
self.ui.optionAngle.setDisabled(False)
|
|
|
|
def reset(self):
|
|
self.ui.parRangeList.clear()
|
|
|
|
def setParameterRange(self):
|
|
angleObject = self.prototypeManager.objectSelected
|
|
if angleObject != None:
|
|
if angleObject.objType == ObjectType.ANGLE_CONSTRAINT:
|
|
pRange = self.prototypeManager.getParameterRange(angleObject)
|
|
if pRange != [] and len(pRange.intervals) > 0:
|
|
for interval in pRange.intervals:
|
|
self.ui.parRangeList.addItem(str(interval.left_value()) + " - " + str(interval.right_value()))
|
|
|
|
def nameEdited(self, newName):
|
|
if self.prototypeManager.isNameUnique(self.aName, str(newName)):
|
|
self.setTextColor(self.ui.angleName, QtCore.Qt.black)
|
|
|
|
if self.prototypeManager.setObjectName(self.aName, str(newName)):
|
|
self.panel.renameItem(self.aName, str(newName))
|
|
self.aName = str(newName)
|
|
else:
|
|
self.setTextColor(self.ui.angleName, QtCore.Qt.red)
|
|
|
|
def fixedChange(self, state):
|
|
if self.prototypeManager.objectSelected != None:
|
|
if self.prototypeManager.objectSelected.objType == ObjectType.ANGLE_CONSTRAINT:
|
|
if state == QtCore.Qt.Checked:
|
|
self.prototypeManager.objectSelected.fixed = True
|
|
self.ui.optionAngle.setDisabled(True)
|
|
else:
|
|
self.prototypeManager.objectSelected.fixed = False
|
|
self.ui.optionAngle.setDisabled(False)
|
|
|
|
def newAngle(self, newAngle):
|
|
if self.prototypeManager.objectSelected != None:
|
|
if self.prototypeManager.objectSelected.objType == ObjectType.ANGLE_CONSTRAINT:
|
|
self.prototypeManager.updateConstraint(self.prototypeManager.objectSelected, newAngle)
|
|
#self.mainWindow.updateWindow()
|
|
else:
|
|
self.prototypeManager.objectSelected.angle = newAngle
|
|
|
|
def setTextColor(self, textField, color):
|
|
palette = QtGui.QPalette(textField.palette())
|
|
palette.setColor(QtGui.QPalette.Text, color)
|
|
textField.setPalette(palette)
|