Skip to content

Support: Requirements

Joseph Lenox edited this page Oct 31, 2017 · 19 revisions

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 width min_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.
  • 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 to nozzle_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)

  1. Model supports as meshes. Extend them
  2. 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.
  3. Search down from the top, layer by layer.
    1. Find a Layer that is at this Z in the support (contains Z is sufficient)
    2. Check for intersection between two layer.
    3. If no intersection, discard Support layer
    4. 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 width min_width, and a minimum area min_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 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.