-
Notifications
You must be signed in to change notification settings - Fork 141
ToDo
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.
- 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.
- 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)
- 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
- Geodesics on meshes
- Bommes & Kobbelt paper: http://www-i8.informatik.rwth-aachen.de/uploads/media/bommes_07_VMV_01.pdf
- recent Xin paper: DOI: 10.1016/j.cad.2011.08.027 http://dx.doi.org/10.1016/j.cad.2011.08.027
- (constrained-)Delaunay triangulations (Anglada paper in References)
- 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
- 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.
- Resolve problems with Waterline
- pushCutter creates topologically incorrect Weave:s which cannot be processed by Weve::build()
- (minor change) Use brent's root finding algorithm TOMS748 from boost, not our own. This is used in edgePush and edgeDrop of BullCutter.
- 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).