Allow floating point values for moving print head

The X, Y, Z coordinates and speed don't necessarily have to be full millimetres or millimetres per minute.

Fixes #3271.
This commit is contained in:
Ghostkeeper 2018-03-06 09:37:21 +01:00
parent 9901780dbc
commit 3e8f29d380
No known key found for this signature in database
GPG key ID: 5252B696FB5E7C7A

View file

@ -103,32 +103,32 @@ class PrinterOutputModel(QObject):
self._head_position = Vector(x, y, z) self._head_position = Vector(x, y, z)
self.headPositionChanged.emit() self.headPositionChanged.emit()
@pyqtProperty("long", "long", "long") @pyqtProperty(float, float, float)
@pyqtProperty("long", "long", "long", "long") @pyqtProperty(float, float, float, float)
def setHeadPosition(self, x, y, z, speed = 3000): def setHeadPosition(self, x, y, z, speed = 3000):
self.updateHeadPosition(x, y, z) self.updateHeadPosition(x, y, z)
self._controller.setHeadPosition(self, x, y, z, speed) self._controller.setHeadPosition(self, x, y, z, speed)
@pyqtProperty("long") @pyqtProperty(float)
@pyqtProperty("long", "long") @pyqtProperty(float, float)
def setHeadX(self, x, speed = 3000): def setHeadX(self, x, speed = 3000):
self.updateHeadPosition(x, self._head_position.y, self._head_position.z) self.updateHeadPosition(x, self._head_position.y, self._head_position.z)
self._controller.setHeadPosition(self, x, self._head_position.y, self._head_position.z, speed) self._controller.setHeadPosition(self, x, self._head_position.y, self._head_position.z, speed)
@pyqtProperty("long") @pyqtProperty(float)
@pyqtProperty("long", "long") @pyqtProperty(float, float)
def setHeadY(self, y, speed = 3000): def setHeadY(self, y, speed = 3000):
self.updateHeadPosition(self._head_position.x, y, self._head_position.z) self.updateHeadPosition(self._head_position.x, y, self._head_position.z)
self._controller.setHeadPosition(self, self._head_position.x, y, self._head_position.z, speed) self._controller.setHeadPosition(self, self._head_position.x, y, self._head_position.z, speed)
@pyqtProperty("long") @pyqtProperty(float)
@pyqtProperty("long", "long") @pyqtProperty(float, float)
def setHeadZ(self, z, speed = 3000): def setHeadZ(self, z, speed = 3000):
self.updateHeadPosition(self._head_position.x, self._head_position.y, z) self.updateHeadPosition(self._head_position.x, self._head_position.y, z)
self._controller.setHeadPosition(self, self._head_position.x, self._head_position.y, z, speed) self._controller.setHeadPosition(self, self._head_position.x, self._head_position.y, z, speed)
@pyqtSlot("long", "long", "long") @pyqtSlot(float, float, float)
@pyqtSlot("long", "long", "long", "long") @pyqtSlot(float, float, float, float)
def moveHead(self, x = 0, y = 0, z = 0, speed = 3000): def moveHead(self, x = 0, y = 0, z = 0, speed = 3000):
self._controller.moveHead(self, x, y, z, speed) self._controller.moveHead(self, x, y, z, speed)