
Scenario 03 : Slicing a STL file
This scenario shows you how to slice an STL file using our API from start to finish.
Step 1: Upload a file
POST /upload/{fileType}/{fileName}
In order to slice a file, first you need to upload it.
HTTP Request
POST https://realvisiononline.azure-api.net/v1/upload/STL/benchy.stl HTTP/1.1Content-Type: application/octet-streamCache-Control: no-cacheOcp-Apim-Subscription-Key: [YOUR_SUBSCRIPTION_KEY_HERE][ benchy.stl ]
HTTP Response
HTTP/1.1 200 OKcontent-type: application/json; charset=utf-8date: Thu, 17 Dec 2020 10:52:18 GMTtransfer-encoding: chunkedvary: Origin{"fileId": "ca489322-8867-48aa-baaf-cbe72bcc0fbd","fileName": "benchy.stl","type": "STL"}
Step 2: Start a slicing task
POST /stl/tasks/
Use the fileIdyou got back from the previous request to slice the file you uploaded. This request only starts a slicing task and returns a taskIdwhich you will need later on.
HTTP Request
POST https://realvisiononline.azure-api.net/v1/stl/tasks HTTP/1.1Content-Type: application/jsonCache-Control: no-cacheOcp-Apim-Subscription-Key: [YOUR_SUBSCRIPTION_KEY_HERE]{"files":[{"fileId": "ca489322-8867-48aa-baaf-cbe72bcc0fbd","type": "STL","fileName": "benchy.stl"}],"settings":{"printerModel": "Creality Ender 3","supportType": "n","filamentPresetName": "Createch_PLA"}}
HTTP Response
HTTP/1.1 200 OKcontent-encoding: gzipcontent-type: application/json; charset=utf-8date: Thu,17Dec202010:41:37 GMTtransfer-encoding: chunkedvary: Accept-Encoding, Origin{"taskId": "fb9931af-012a-4c83-b3e5-f63c7ea211e0","queueDate": "2020-12-17T10:41:34.7919292Z","startDate": "0001-01-01T00:00:00","endDate": "0001-01-01T00:00:00","status": "queued","files":[{"fileId": "2986fa45-4d91-41a4-a0d1-6584512a85db","fileName": "benchy.stl","type": "STL"}],"settings":{"printerModel": "Creality Ender 3","supportType": "n","filamentPresetName": "Createch_PLA"},"progress": 0}
Step 3: Check the status of the slicing task
POST /stl/tasks/{taskId}
Use the taskId you got back from the previous request to check the status of the slicing task you started. The response will contain a status property which has four possible values:
queued: means that the slicing task has been added to a wait queue. You'll be able to see a
queueDatefor when it has been queued.
started: means that the slicing task has been picked up by one of our slicing servers and is being processed. The response will have a
startDateproperty for when the slicing actually started.running: It means that the slicing task processing is done and slicing is running. In this case, the response will have a
progressproperty that will tell you how far along is the slicing task is.finished: means the slicing task is finished and you're free to download the output file which will be either a GCode or an FCode file. When the status is finished, the response will also have two additional properties. So, instead of
progress, it will have theoutputandinfoproperties. Theoutputhas information about the output file, and theinfoproperty has information about the print (estimated filament length, weight and time).failed: means the slicing task failed for some reason. In this case, the response will have an
errorproperty which will contain details about the error that happened.cancelled: means you cancelled the slicing task.
For now, we're going to assume the slicing task is finished at the time of the request. You'll notice in the samples below that the response has two additional properties: infoand output. Save theoutput -> outputId because we will be using in the next request.
HTTP Request
GET https://realvisiononline.azure-api.net/v1/stl/tasks/b596ac31-a782-4776-99cb-11aa2fcb534e HTTP/1.1Cache-Control: no-cacheOcp-Apim-Subscription-Key: [YOUR_SUBSCRIPTION_KEY_HERE]
HTTP Response
HTTP/1.1 200 OKcontent-type: application/json; charset=utf-8date: Thu,17Dec202010:54:21 GMTtransfer-encoding: chunkedvary: Origin{"taskId": "b596ac31-a782-4776-99cb-11aa2fcb534e","queueDate": "2020-12-17T04:45:10.860Z","startDate": "2020-12-17T04:45:12.892Z","endDate": "2020-12-17T04:45:14.661Z","status": "finished","files": [{"fileId": "7f6b4cdc-d502-4197-9ae1-970ebde7e2b4","fileName": "benchy.stl","type":"STL"}],"settings":{"printerModel": "Creality Ender 3","supportType":"n","filamentPresetName":"CreaTECH_PLA"},"progress": 1,"info": {"time": "0:19:40","length": "1.69meter(s)","weight": "5gram(s)"},"output": {"outputName": "benchy.gcode","outputId":"cd5b659e-3ff3-4fb4-92a2-46136072ad1a","taskId":"b596ac31-a782-4776-99cb-11aa2fcb534e","fileId":"cd5b659e-3ff3-4fb4-92a2-46136072ad1a","format":"GCODE"}}
Step 4: Download output file (FCode/GCode)
GET /output/{outputId}/download
Use the outputId you got back from the previous request to download the final file.
HTTP Request
GET https://realvisiononline.azure-api.net/v1/output/cd5b659e-3ff3-4fb4-92a2-46136072ad1a/download HTTP/1.1Cache-Control: no-cacheOcp-Apim-Subscription-Key: [YOUR_SUBSCRIPTION_KEY_HERE]
HTTP/1.1 200 OKcontent-disposition: attachment; filename=benchy.gcode; filename*=UTF-8''benchy.gcodecontent-type: application/octet-stream date: Thu, 17 Dec 2020 11:04:48 GMTvary: Origin; G-Code flavour: Marlin; Print time: 0:19:40; Filament used: 1.69 meter(s); Estimated weight: 5 gram(s)...
HTTP Response
The response above is a truncated gcodefile just for example purposes.
