JurgenMK
-
Posts
8 -
Joined
-
Last visited
Content Type
Forums
Events
3D Prints
Posts posted by JurgenMK
-
-
Hello, I recently started playing around with the Ultimaker 3 API, and everything is well, except that I cannot figure out how to succesfully send a file to be printed via the api, everything I've tried either results in a response 400, or 200, not the required 201 to start the print.
the full code is attached as reference. thanks in advance!
-
Hey, I am trying to start a print from your code, the UM3_API.zip, but after adding the ip to the start_print subroutine it still won't work on my UM3, I get the response 400 bad request back, do you happen to know what's wrong?
-
2 hours ago, tinkergnome said:
dunno... but i would not use the "api" object at all for this task.
The cluster-api works different, no authentification, and does not know the "jobname" parameter (AFAIK).
Can't you simply mimic the curl command with a python library or such....?
https://stackoverflow.com/questions/43246857/python-requests-post-a-file
I tried that already, but then I still get the 200 back instead of 201
-
14 hours ago, tinkergnome said:
I'm not sure, either this (older) network printing doesn't work anymore or we use it in a wrong way?
I use only the new API for this, i hope it still works in the same way in this new "digital factory" age (my UM3 has not heard yet of those fancy things... 😏)
Have a look at the documentation on the printer.
http://169.254.168.50/cluster-api/v1/
Something like this (from a windows batch file):
set URL=http://169.254.168.50:80/cluster-api/v1/print_jobs/ set FILENAME=UM3_UltimakerRobot_support.gcode curl -X POST --header "Content-Type: multipart/form-data" --header "Accept: application/json" -F "file=@%FILENAME%" %URL%
okey that works, but when I try to do the exact same thing in my python code I get a response 200 back, and the print doesn't start.
import UM3_API UM3_API.start_print("UM3_UltimakerRobot_support.gcode") ....... def start_print(file): api = initAPI("169.254.113.5") if os.path.exists(file): jobname = os.path.basename(file) filepath = file print(filepath) print(api.post("cluster-api/v1/print_jobs", headers={"Content-Type": "multipart/form-data", "Accept": "application/json"}, files={"file": (jobname, open(filepath, "rb"))}))
what am I doing wrong?
-
7 hours ago, tinkergnome said:
a complete working example was uploaded here:
I have a problem with uploading files to the printer, when I try to, I get the error 400 bad response back.
anyone know how to fix that?
-
Quote
I learned here that Postman and the firmware do not speak the same dialect of "http digest" somehow...
But the python script works like a charm
I tried that, but I get a missing argument error on the api.loadauth subroutine, cus the "auth.data" is going in to self, and the filename is not specified, if I add that it doesn't work either, I am using python 3.7.5
-
Hello,
I have a question about the rest API,
When I try to authenticate using a key and id I got from /auth/request,
It always returns the 401 authentication required, no matter where I enter it on postman.
does anyone know what I am doing wrong?
thanks in advance!
Ultimaker S5 print via API
in UltiMaker 3D printers
Posted
Hello,
I am trying to start a print via the RUST-API, but unable to do so because I don't understand what the problem is,
I have written some code, which is attached, and when I try to run the start_print.py, I don't understand how it sends the gcode via this CURL request:
curl -X POST --header 'Content-Type: multipart/form-data' --header 'Accept: application/json' -F jobname=test 'http://192.168.4.12/api/v1/print_job'
Thanks in advance,
Jurgen Kuyper
start_print.zip