Cutter location
From Wikipedia, the free encyclopedia
The introduction to this article provides insufficient context for those unfamiliar with the subject. Please help improve the article with a good introductory style. |
A Cutter location (CLData) refers to the position which a CNC milling machine has been instructed to hold a milling cutter by the G-code instructions.
Each line of motion controlling G-code consists of two parts: the type of motion from the last cutter location to the next cutter location (eg "G01" means linear, "G02" means circular), and the next cutter location itself (the cartesian point (20, 1.3, 4.409) in this example).
G01 X20Y1.3Z4.409
The fundamental basis for creating the cutter paths suitable for Computer-aided manufacturing are functions that can find valid cutter locations, and stringing them together in a series.
There are two broad and conflicting approaches to the problem of generating valid cutter locations, given a CAD model and a tool definition.
[edit] Cutter location by offsets
Start with a UV parametric point in a freeform surface, calculate the xyz point and the normal, and offset from the point along the normal in a way consistent with the tool definition so that the cutter is now tangent to the surface at that point.
Problems: may collide or gouge with the model elsewhere, and there is no way to tell this is happening except with a full implementation of the triangulated approach.
Most published academics believe this is the way to find cutter locations, and that the problem of collisions away from the point of contact is soluble. However, nothing printed so far comes close to handling real world cases.
[edit] Cutter location against triangles
Start with the XY component for a cutter location and loop across every triangle in the model. For each triangle which crosses under the circular shadow of the cutter, calculate the Z value of the cutter location required for it to exactly touch the triangle, and find the maximum of all such values.
Problems: requires a lot of memory to hold enough triangles to register the model at a tight enough tolerance, and it takes longer to program to get your initial cutter location values. However, they are at least guaranteed valid in all cases.
This is how all major CAM systems do it these days because it works without failing no matter what the complexity and geometry of the model, and can be made fast later. Reliability is far more important than efficiency.
The above refers to 3-axis machines. 5-axis machines need a special entry of their own.
[edit] ZMap
The ZMap algorithm was proposed in the academic literature by Byoung K Choi in 2003[1] as a way of precalculating and storing a regular array of Cutter Location values in the computer memory. The result is a model of the height map of cutter positions from which in between values can be interpolated.
Due to accuracy issues, this was generalized into an Extended ZMap, or EZMap, by the placement of "floating" points in between the fixed ZMap points. The location of the EZMap points are found iteratively when the ZMap is created. EZMap points are only placed where sharp edges occur between the normal ZMap points; a completely flat source geometry will not require any EZMap points.
Since this method is documented in the public literature, it's mistakenly believed by outsiders to be the way it's done in the industry. Commercial CAM systems don't use this method, since it's just as easy to calculate a cutter location for any point when you need it, than to cache the values at a whole array of points which might not be in the right place. Commercial software developers don't generally write papers about what they are doing, and so this information is not always knowable.[citation needed]