API Reference¶
Authentise’s Slicing Service was built to enable tool-path generation in the cloud.
There are a few concepts involved with the Slicing Service. Its designed to be used in tandem with the Model Warehouse. The Slicing Service boasts two resources of its own: configs, and slices. A slice resource takes a config, and a model resource.
-
POST
/config/curated/
¶ Create a new config resource with our curated list of parameters. Our engineers broke out these settings, as they make the most obvious changes in a config.
Request JSON Object: - engine (string) – Required. the slicing engine you want to use. Current options include
slic3r
andmakerbot
. - description (string) – Optional. The name of the config. This can be any string and should be meaningful to the user.
- parameters (object) – Optional. A list of curated options that most users stick to, some more advanced than others.
- parameters.material (string) –
ABS
orPLA
. - parameters.print_quality (string) –
fine
(0.1mm),low
(0.3mm), orstandard
(0.2mm). - parameters.filament_diameter (float) – The filament diameter that works with your machine in millimeters.
- parameters.nozzle_diameter (float) – The nozzle diameter that works with your machine in millimeters.
- parameters.infill_density (float) – Sets the inside density of a print.
- parameters.infill_speed (float) – Sets the speed of the printer when its printing the infill.
- parameters.extruder_temperature (float) – Sets the temperature of the print nozzle.
- parameters.bed_temperature (float) – Sets the temperature of the heated bed.
- parameters.perimeters (int) – Sets the number of perimeters of a print.
- parameters.perimeter_speed (float) – Sets the speed of the printer when its printing the perimeters.
- parameters.support (bool) – Turns on, or off the support feature.
- parameters.raft (bool) – turns on, or off the raft feature.
Example request
{ "description": "makerbot high-resolution", "engine": "makerbot", "parameters": {"material": "ABS", "print_quality": "fine", "filament_diameter": 1.75, "nozzle_diameter": 0.4 "infill_density": 33.0, "infill_speed": 90.0, "extruder_temperature": 240.0, "bed_temperature": 110.0, "perimeters": 2, "perimeter_speed": 40.0, "support": false, "raft": false } }
Response Headers: - Location – The URI of the model where information about the config can be requested. Ex: /config/<uuid>/
- engine (string) – Required. the slicing engine you want to use. Current options include
-
POST
/config/raw/
¶ Create a new config resource using the raw contents of a pre-existing config file.
Request JSON Object: - engine (string) – Required. the slicing engine you want to use. Current options include
slic3r
andmakerbot
. - content (string) – Required. the contents of a config file as a string.
- description (string) – Optional. The name of the config. This can be any string and should be meaningful to the user.
Example request
{ "description": "makerbot high-resolution", "engine": "makerbot", "content": {"avoid_crossing_perimeters = 0\nbed_size = 200,200\nbed_temperature = 0\nbottom_solid_layers = 3\nbridge_acceleration = 0\n....." } }
Response Headers: - Location – The URI of the model where information about the config can be requested. Ex: /config/<uuid>/
- engine (string) – Required. the slicing engine you want to use. Current options include
-
GET
/config/<uuid>/
¶ Get information about a config. Each parameter that was populated in
/config/curated/
will be populated, otherwise those properties will be null.Response JSON Object: - description (string) – The user defined description of the configuration.
- engine (string) – The name of the engine this config corresponds to.
- content (string) – The url of a link at which the config can be downloaded.
- parameters (object) – A list of curated options that most users stick to, some more advanced than others.
- parameters.material (string) –
ABS
orPLA
. - parameters.print_quality (string) –
fine
(0.1mm),low
(0.3mm), orstandard
(0.2mm). - parameters.filament_diameter (float) – The filament diameter that works with your machine in millimeters.
- parameters.nozzle_diameter (float) – The nozzle diameter that works with your machine in millimeters.
- parameters.infill_density (float) – Sets the inside density of a print.
- parameters.infill_speed (float) – Sets the speed of the printer when its printing the infill.
- parameters.extruder_temperature (float) – Sets the temperature of the print nozzle.
- parameters.bed_temperature (float) – Sets the temperature of the heated bed.
- parameters.perimeters (int) – Sets the number of perimeters of a print.
- parameters.perimeter_speed (float) – Sets the speed of the printer when its printing the perimeters.
- parameters.support (bool) – Turns on, or off the support feature.
- parameters.raft (bool) – turns on, or off the raft feature.
-
POST
/constraint/
¶ Create a new config constraint resource with the curated list of parameters.
Request JSON Object: - name (string) – Required. the config constraint name that you want to use.
- description (string) – Optional. The description of the config constraint. This can be any string and should be meaningful to the user.
- parameters (object) – Required. A list of curated options that will be applied to a slicing config.
Response JSON Object: - parameters.material (object) –
_in
,equals
,min
,max
,not-equals-to
. - parameters.print_quality (object) –
_in
,equals
,min
,max
,not-equals-to
. - parameters.filament_diameter (object) –
_in
,equals
,min
,max
,not-equals-to
. - parameters.nozzle_diameter (object) –
_in
,equals
,min
,max
,not-equals-to
. - parameters.infill_density (object) –
_in
,equals
,min
,max
,not-equals-to
. - parameters.infill_speed (object) –
_in
,equals
,min
,max
,not-equals-to
. - parameters.extruder_temperature (object) –
_in
,equals
,min
,max
,not-equals-to
. - parameters.bed_temperature (object) –
_in
,equals
,min
,max
,not-equals-to
. - parameters.perimeters (object) –
_in
,equals
,min
,max
,not-equals-to
. - parameters.perimeter_speed (object) –
_in
,equals
,min
,max
,not-equals-to
. - parameters.support (object) –
_in
,equals
,min
,max
,not-equals-to
. - parameters.raft (object) –
_in
,equals
,min
,max
,not-equals-to
.
Example request
{ "name": "High Quality", "description": "Slicing config constraint that ensures high quality prints", "parameters": { "material": { "_in" ["ABS", "PLA"] }, "print_quality": { "equals": "fine" }, "extruder_temperature": { "not-equals-to": 240.0 }, "filament_diameter": { "min": 1.75 }, "nozzle_diameter": { "max": 0.4 }, "infill_density": { "less-than": 33.0 }, "infill_speed": { "greater-than": 90.0 } } }
Response Headers: - Location – The URI of the constraint config where information about the constraint config can be requested. Ex: /constraint/<uuid>/
-
GET
/constraint/<uuid>/
¶ Get information about a config constraint.
Request JSON Object: - name (string) – The config constraint name that you want to use.
- description (string) – The description of the config constraint. This can be any string and should be meaningful to the user.
- parameters (object) – A list of curated options that will be applied to a slicing config.
-
PUT
/constraint/<uuid>/
¶ Update a config constraint.
Request JSON Object: - name (string) – The config constraint name that you want to use.
- description (string) – The description of the config constraint. This can be any string and should be meaningful to the user.
-
DELETE
/constraint/<uuid>/
¶ Delete a config constraint.
-
POST
/constraint-model/
¶ Associate a config constraint with a model
Request JSON Object: - constraint (string) – Required. The uri of constraint config to associate with.
- model_uri (string) – Required. The model uri to associate the constraint config with.
Example request
{ "constraint": "https://quickslice.authentise.com/constraint/319f9c7f-f955-434e-b382-4c7f32ce131a/", "model_uri": "httos://hoth.authentise.com/model/ed6820b4-e16f-4127-8eae-8195896ed0e5/" }
Response Headers: - Location – The URI of the constraint model where information about the constraint model can be requested. Ex: /constraint-model/<uuid>/
-
GET
/constraint-model/<uuid>/
¶ Get information about a constraint model.
Request JSON Object: - constraint (string) – The uri of constraint config.
- model_uri (string) – The model uri.
-
DELETE
/constraint/<uuid>/
¶ Delete a constraint model
-
POST
/slice/
¶ Create a new slice job. A slice job is rather basic; given a model resource and a config resource (assuming neither of them are in error), will simply kick off a slice job.
If the optional callback parameters are included, we will notify you when the status changes Ex: processing, processed, and/or error.
If the slicing config conflicts with a constraint applied to the model then the slicing will not proceed and the response will return status code 409 with details about the issue.
Request JSON Object: - model (string) – Required. The location of the model resource you want to slice.
- config (string) – Required. The location of the config resource you want to slice the model with.
- callback (obj) – Optional. The URL to call when this slice job changes states.
- callback.url (string) – Optional. The URL to request for the callback
- callback.method (string) – Optional. The method to use for the request, one of GET, POST or PUT.
Example request
{ "model": "https://models.authentise.com/model/abc-123/", "config": "https://slice.authentise.com/config/def-456/", "callback": {"url": "mysite.com/callback", "method": "POST"} }
Response Headers: - Location – The URI of the model where information about the slice operation can be requested. Ex: /slice/ghi-789/
-
GET
/slice/<uuid>/
¶ Get information about a slice.
Response JSON Object: - status (string) – The current status of the slice. Can be one of
queued
,processing
,processed
, orerror
. - config (string) – The url of the config resource that was used to create this slice job
- content (string) – The url of a link at which the finished slice can be downloaded, if the slice has finished, and was successful.
- slice_time (int) – render time, in seconds. This property will only be populated if the slice has finished, and was successful.
- estimates (object) – Object that provides useful estimates about a print
- estimates.build_time_seconds (float) – Estimated build time. Only available when slicing with CatalystEx.
- estimates.support_volume_cc (float) – Support volume in cubic centimeters. Only available when slicing with CatalystEx.
- estimates.build_volume_cc (float) – Build volume in cubic centimeters. Only available when slicing with CatalystEx.
- status (string) – The current status of the slice. Can be one of
-
POST
/gcode/
¶ Create a new gcode.
Request JSON Object: - name (string) – Optional. The gcode name
Example request
{ "name": "3mm Cube gcode" }
Response Headers: - Location – The URI of the gcode where information about the gcode can be requested. Ex: /gcode/ghi-299/
- X-Upload-Location – The URI to upload the gcode contents to.
-
GET
/gcode/<uuid>/
¶ Get information about a gcode.
Response JSON Object: - name (string) – The name of the gcode.
- status – The current status of the gcode. Can be one of
not-uploaded
,processing
,processed
, orerror
. - content (string) – The URL of a link at which the gcode can be downloaded, if the gcode has been processed, and was successfully validated.