Support: Requirements - slic3r/Slic3r GitHub Wiki
Support Material Generation Requirements
Every statement with a bolded shall or shall not represent a testable requirement.
- Support material contact area with printbed shall be drawn with a minimum length
min_length
and a minimum widthmin_width
.- Support material shall not be drawn outside of the contact area in XY.
- Support material shall be generated for all areas that contain unsupported perimeters, if
support_material_enable
== True for that area.- Unsupported perimeters shall be defined as having
overhang_percentage
or more of the perimeter width that does not have another extrusion type directly below. overhang_percentage
shall default to 60% (0.6) in the configuration.
- Unsupported perimeters shall be defined as having
- If
bed_support_only
== True,support_material_enable
shall be set to False for all areas that do not have a clear, unobstructed vertical path to the printbed. - If
support_bridges
== False,support_material_enable
shall be set to False for bridging areas.- Bridging areas are defined as an area bounded by an perimeter loop with a straight unsupported segment adjacent to another segment in the same loop that is not unsupported.
- The distance from the top of the support to the bottom of the supported structure shall be defined as
contact_distance_z
.contact_distance_z
represents the real gap between the top of the generated support and the desired bottom of the above (bridging) layer.contact_distance_z
of 0 is useful for soluble supports.- Note:
contact_distance_z
+nozzle_diameter
is the distance from the top of the bridging layer to the top of the support.
- The bottom interface of support material with another extrusion beneath it shall be separated by a distance of
bottom_interface_z
from the top of the underlying extrusion.bottom_interface_z
values are to promote removal of support base from another printed layer.
- Intermediate support material (between interfaces) shall be extruded at a layer height of
maximum_support_layer_height
.maximum_support_layer_height
shall have a default value equal tonozzle_diameter
* 0.8.
- Intermediate support material shall be drawn at a space density of
support_density
.support_density
is a ratio from 0.0 (no intermediate support) to 1.0 (solid intermediate support).support_density
shall default to a value of 0.3
- Support material contact area shall be drawn at a space density of
contact_density
.contact_density
is a ratio from 0.0 (no intermediate support) to 1.0 (solid intermediate support).contact_density
shall default to a value of 0.3
- The bottom interface of support material in direct contact with the printbed shall be drawn at a contact density of 1.0.
- Support material contact area shall drawn with a minimal length and minimal width.
- Support material shall not be drawn within a separation distance
contact_distance_xy
from the model faces. - Support material shall not be drawn when Z > 0 and there is no support material drawn Z - (support_layer_height) below.
Naive algorithm for support placement (based on modifier meshes)
- Model supports as meshes. Extend them
- Slice mesh as same layer height(s) as model as a separate "model" into its own set of Layers.
- Each layer of support should now correspond to another model in slice_z.
- Search down from the top, layer by layer.
- Find a Layer that is at this Z in the support (contains Z is sufficient)
- Check for intersection between two layer.
- If no intersection, discard Support layer
- If any intersection, mark this Layer and check the next layer down.
- If Support is fully contained in the next layer down, discard above layer.
- If Support is partially contained in the next layer down, take the intersection and mark it as a contact area.
Commentary area
Please leave notes/commentary on the requirements written above here.
- "Support material generation shall adhere to the minimum and maximum widths."
For this point, is maximum width optional? there is no reference to it in the requirements other than this mention.
- Good catch, reworded to be what I meant.
- Support material contact area with printbed shall be drawn with a minimum length
min_length
, a minimum widthmin_width
, and a minimum areamin_area
.- "Support material shall not be drawn outside of the contact area in XY. "
Doesn't that preclude leaning support structures?
- It does; if leaning supports are desired the requirements will be revised to reflect this later.
- "Support material shall not be drawn outside of the contact area in XY. "
Doesn't that preclude leaning support structures?
- Support material contact area shall drawn with a minimal length, minimal width, and minimal area.
- Not sure where this is going; enforcing minimal area/length/width on contact area that isn't the bed is problematic at best.
- Support material contact area shall support an optional brim.
- Not particularly germane to support, this is a brim requirement.
- Support material shall not be generated without support material underneath it, unless it is at Z=0 (or rather, support can't start in mid air)
- Revised to make it more clear and added above.