mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-09 07:56:22 -06:00
Added rudimentary jogging controls for UM3
This needs a bit more love; The machine is a bit stupid when it comes to moving outside of build area. CL-541
This commit is contained in:
parent
00eeb835ac
commit
f570ba046b
3 changed files with 22 additions and 3 deletions
|
@ -68,21 +68,25 @@ class PrinterOutputModel(QObject):
|
||||||
@pyqtProperty("long", "long", "long")
|
@pyqtProperty("long", "long", "long")
|
||||||
@pyqtProperty("long", "long", "long", "long")
|
@pyqtProperty("long", "long", "long", "long")
|
||||||
def setHeadPosition(self, x, y, z, speed = 3000):
|
def setHeadPosition(self, x, y, z, speed = 3000):
|
||||||
|
self.updateHeadPosition(x, y, z)
|
||||||
self._controller.setHeadPosition(self, x, y, z, speed)
|
self._controller.setHeadPosition(self, x, y, z, speed)
|
||||||
|
|
||||||
@pyqtProperty("long")
|
@pyqtProperty("long")
|
||||||
@pyqtProperty("long", "long")
|
@pyqtProperty("long", "long")
|
||||||
def setHeadX(self, x, speed = 3000):
|
def setHeadX(self, x, speed = 3000):
|
||||||
|
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("long")
|
||||||
@pyqtProperty("long", "long")
|
@pyqtProperty("long", "long")
|
||||||
def setHeadY(self, y, speed = 3000):
|
def setHeadY(self, y, speed = 3000):
|
||||||
|
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("long")
|
||||||
@pyqtProperty("long", "long")
|
@pyqtProperty("long", "long")
|
||||||
def setHeadY(self, z, speed = 3000):
|
def setHeadZ(self, z, speed = 3000):
|
||||||
|
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("long", "long", "long")
|
||||||
|
|
|
@ -411,7 +411,7 @@ class LegacyUM3OutputDevice(NetworkedPrinterOutputDevice):
|
||||||
self._authentication_counter / self._max_authentication_counter * 100)
|
self._authentication_counter / self._max_authentication_counter * 100)
|
||||||
if self._authentication_counter > self._max_authentication_counter:
|
if self._authentication_counter > self._max_authentication_counter:
|
||||||
self._authentication_timer.stop()
|
self._authentication_timer.stop()
|
||||||
Logger.log("i", "Authentication timer ended. Setting authentication to denied for printer: %s" % self._key)
|
Logger.log("i", "Authentication timer ended. Setting authentication to denied for printer: %s" % self._id)
|
||||||
self.setAuthenticationState(AuthState.AuthenticationDenied)
|
self.setAuthenticationState(AuthState.AuthenticationDenied)
|
||||||
self._resetAuthenticationRequestedMessage()
|
self._resetAuthenticationRequestedMessage()
|
||||||
self._authentication_failed_message.show()
|
self._authentication_failed_message.show()
|
||||||
|
@ -530,7 +530,7 @@ class LegacyUM3OutputDevice(NetworkedPrinterOutputDevice):
|
||||||
authenticator.setUser(self._authentication_id)
|
authenticator.setUser(self._authentication_id)
|
||||||
authenticator.setPassword(self._authentication_key)
|
authenticator.setPassword(self._authentication_key)
|
||||||
else:
|
else:
|
||||||
Logger.log("d", "No authentication is available to use for %s, but we did got a request for it.", self._key)
|
Logger.log("d", "No authentication is available to use for %s, but we did got a request for it.", self._id)
|
||||||
|
|
||||||
def _onGetPrintJobFinished(self, reply):
|
def _onGetPrintJobFinished(self, reply):
|
||||||
status_code = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)
|
status_code = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute)
|
||||||
|
@ -580,6 +580,9 @@ class LegacyUM3OutputDevice(NetworkedPrinterOutputDevice):
|
||||||
printer.updateTargetBedTemperature(result["bed"]["temperature"]["target"])
|
printer.updateTargetBedTemperature(result["bed"]["temperature"]["target"])
|
||||||
printer.updatePrinterState(result["status"])
|
printer.updatePrinterState(result["status"])
|
||||||
|
|
||||||
|
head_position = result["heads"][0]["position"]
|
||||||
|
printer.updateHeadPosition(head_position["x"], head_position["y"], head_position["z"])
|
||||||
|
|
||||||
for index in range(0, self._number_of_extruders):
|
for index in range(0, self._number_of_extruders):
|
||||||
temperatures = result["heads"][0]["extruders"][index]["hotend"]["temperature"]
|
temperatures = result["heads"][0]["extruders"][index]["hotend"]["temperature"]
|
||||||
extruder = printer.extruders[index]
|
extruder = printer.extruders[index]
|
||||||
|
|
|
@ -6,6 +6,7 @@ from cura.PrinterOutput.PrinterOutputController import PrinterOutputController
|
||||||
MYPY = False
|
MYPY = False
|
||||||
if MYPY:
|
if MYPY:
|
||||||
from cura.PrinterOutput.PrintJobOutputModel import PrintJobOutputModel
|
from cura.PrinterOutput.PrintJobOutputModel import PrintJobOutputModel
|
||||||
|
from cura.PrinterOutput.PrinterOutputModel import PrinterOutputModel
|
||||||
|
|
||||||
|
|
||||||
class LegacyUM3PrinterOutputController(PrinterOutputController):
|
class LegacyUM3PrinterOutputController(PrinterOutputController):
|
||||||
|
@ -15,3 +16,14 @@ class LegacyUM3PrinterOutputController(PrinterOutputController):
|
||||||
def setJobState(self, job: "PrintJobOutputModel", state: str):
|
def setJobState(self, job: "PrintJobOutputModel", state: str):
|
||||||
data = "{\"target\": \"%s\"}" % state
|
data = "{\"target\": \"%s\"}" % state
|
||||||
self._output_device.put("print_job/state", data, onFinished=None)
|
self._output_device.put("print_job/state", data, onFinished=None)
|
||||||
|
|
||||||
|
def moveHead(self, printer: "PrinterOutputModel", x, y, z, speed):
|
||||||
|
head_pos = printer._head_position
|
||||||
|
new_x = head_pos.x + x
|
||||||
|
new_y = head_pos.y + y
|
||||||
|
new_z = head_pos.z + z
|
||||||
|
data = "{\n\"x\":%s,\n\"y\":%s,\n\"z\":%s\n}" %(new_x, new_y, new_z)
|
||||||
|
self._output_device.put("printer/heads/0/position", data, onFinished=None)
|
||||||
|
|
||||||
|
def homeBed(self, printer):
|
||||||
|
self._output_device.put("printer/heads/0/position/z", "0", onFinished=None)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue