Slice

@Target(allowedTargets = [AnnotationTarget.FUNCTION])
annotation class Slice(val seamPosition: String = "", val supportMaterial: Int = UNSET_INT, val supportMaterialThreshold: Double = UNSET_DOUBLE, val supportMaterialBuildplateOnly: Int = UNSET_INT, val layerHeight: Double = UNSET_DOUBLE, val firstLayerHeight: Double = UNSET_DOUBLE, val perimeters: Int = UNSET_INT, val onlyOnePerimeterTop: Int = UNSET_INT, val topSolidLayers: Int = UNSET_INT, val bottomSolidLayers: Int = UNSET_INT, val infillEveryLayers: Int = UNSET_INT, val solidInfillEveryLayers: Int = UNSET_INT, val brimWidth: Double = UNSET_DOUBLE, val brimWidthInterior: Double = UNSET_DOUBLE, val brimEars: Int = UNSET_INT, val fillDensity: Int = UNSET_INT, val fillPattern: String = "", val topFillPattern: String = "", val bottomFillPattern: String = "", val fillAngle: Int = UNSET_INT, val fuzzySkin: String = "", val fuzzySkinPointDist: Double = UNSET_DOUBLE, val fuzzySkinThickness: Double = UNSET_DOUBLE)

An annotation for methods of a Model, that are converted to SlicerValues and passed to the slicer.

Slicers have a very large number of settings, and only a small portion are available here. If you need to change one of the more obscure settings, then you'll need to do that manually within the slicer application (either slicing the model manually, or setting up a specialised slicer profile, and choosing that profile from within FooCAD's slicer setting dialog).

The default values of each property is "unset", meaning no additional values are sent to the slicer. However, Java annotations do not allow null values. Therefore, we use special values UNSET_INT, UNSET_DOUBLE and the empty string instead. (Only the types Int, Double and String are used by this annotation).

At the time of writing, Feather doesn't support constant enum values to be used as an annotation's property value. Therefore, the likes of fillPattern and fuzzySkin are Strings, not enums.

The names of each property are identical to those on SlicerValues, and also match those used by the slicer, with a conversion. For example brimWidth is converted to --brim-width The capital W indicates the start of a new word, and is converted to -w. (i.e. with a leading dash and a lowercase w).

Note, SlicerValues does NOT use the same conventions imposed on us here due to Java and Feather limitations. i.e. Within SlicerValues, unset values are represented using null and enum types such as FillPattern are used.

My IDE indicates that none of these fields are used elsewhere. This is because they are converted to SlicerValues using reflection. My IDE offer "Safe delete", which is NOT safe at all!

Properties

Link copied to clipboard

Possible values : rectilinear, monotonic, monotonicgapfill, concentric, concentricgapfill, hilbertcurve, archimedeanchords, octagramspiral, sawtooth

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Possible values : rectilinear, monotonic, grid, triangles, stars, cubic, line, concentric, honeycomb, 3dhoneycomb, gyroid, hilbertcurve, archimedeanchords, octagramspiral, scatteredrectilinear, adaptivecubic, supportcubic, lightning

Link copied to clipboard
Link copied to clipboard

Possible values : none, external, shell, all

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Possible values : cost, random, allrandom, aligned, contiguous, rear

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Possible values : rectilinear, monotonic, monotonicgapfill, concentric, concentricgapfill, hilbertcurve, archimedeanchords, octagramspiral, sawtooth, smooth

Link copied to clipboard

Functions

Link copied to clipboard

Creates a SlicerValues with values filled in for each property of the Slice annotation. All other fields on SlicerValues remain null.