Skip to content
aewallin edited this page Apr 24, 2012 · 9 revisions

This page lists new ideas for opencamlib or ideas for improvement. Not necessarily in any order of importance or difficulty.

  1. Allow different triangle-overlap-search algorithms
  • now we always use a kd-tree, but simple bucketing might be faster?
  • used in all dropCutter and pushCutter algorithms: BatchDropCutter, PathDropCutter etc.
  1. Cutter-location-surface (mesh).
  • Start with a 2D area, a polygon (which may have holes)
  • Triangulate the polygon (use Triangle, OpenVoronoi or similar for a Delaunay triangulation)
  • Use Drop-cutter to set the Z-coordinate of each mesh-vertex
  • Refine the mesh to desired accuracy (Use triangle side-length, area, z-difference, etc. for subdivision predicates)
  1. Use cutter-location-surface for constant-scallop and pencil-milling
  • constant-scallop paths are geodesics on the cutter-location-surface
  • pencil-milling paths follow abrupt changes in the contact normal of the cutter-location-surface
  1. Geodesics on meshes
  1. (constrained-)Delaunay triangulations (Anglada paper in References)
  2. Cutting-simulation work:
  • Dual contouring ( Ju paper: http://dl.acm.org/citation.cfm?id=566586 )
  • Exact intersections and normals for octree & cutters
  • Color by cutter used
  • Cutter engagement area & material removal rate
  • work with emc2 G-code interpreter
  1. Make adaptive sampling an (default?) option for dropCutter and Waterline
  • now we have PathDropCutter (uniform sampling) and a sub-class AdaptivePathDropCutter (adaptive sampling). It would be better to have just one operation-class and uniform/adaptive sampling as an option.
  1. Resolve problems with Waterline
  • pushCutter creates topologically incorrect Weave:s which cannot be processed by Weve::build()

Done

  1. (minor change) Use brent's root finding algorithm TOMS748 from boost, not our own. This is used in edgePush and edgeDrop of BullCutter.
  1. This is now the OpenVoronoi project: Voronoi diagrams for line-segment and arc generators
  • inCircle predicate: when is a voronoi-vertex closest to a line/arc ?
  • voronoi-vertex positioning: based on three generators, position vertex (at intersection of bisectors)
  • bisector-factory. Based on two neighboring generators, return an edge (line, parabola, ellipse, hyperbola).
Clone this wiki locally