Microtome/microtome

Detect local build minima (unsupported points) in meshes and tweak support grid dynamically

DanielJoyce opened this issue · 1 comments

Currently we can't detect unsupported points in build meshes. We rely on the mesh being reasonably smooth so the default grid code provides decent support. We need to add a method to detect unsupported areas and explicitly enhance the support grid to generate special supports for that spot.

Finding local minima

  1. Create a mesh data structure from loaded geometry. Will need to determine which scheme to use
  2. Calc vertex and face normals
  3. label each vertex whose normal cross -z is > 0, and each vertex which participates in a face whose normal cross -z > 0
  4. Now we iterate, and search each labeled vertex and if we find a vertex lower than the current one, we remove its label.
  5. repeat until number of vertices that are still labeled stabilizes. These are the absolute minima vertices.

Next we take our grid. If a support grid point is within some error bounds of the of the x,y coordinate of a minima, we simply perturb it. Otherwise we generate another point and join it into the lattice.