Given the discussion we had at the drilling page I got curious and tried to figure out what's what. Attached is a file with what I came up with (there seems to be a bug in tech draw).
As you can see I noted the 'Cut edge angle' in the definition as the current code works - doesn't mean we have to keep it that way. The other thing I would like to change is if we specify the main "Diameter" then we should also specify the "Flat diameter", and not the radius - that's just confusing.
There is the "Length Offset" I'm not sure about - I know that some mills have standard heights for tools and each tool has a known offset to that - in other words once you've calibrated Z for one tool you can exchange tools as you want because you can just calculate their distance to 0. Anyway - that's my best guess for what it's worth.
OK, so much for that. The more important question is what we do with it. Should we keep this definition? The reason we've gotten away with the non-sensical default values is because other than drilling (as of lately) absolutely nothing cares about the cutter shape right now. All operations (probably except Surface) currently assume a cylindrical cutter - and changing that is not trivial.
We've also 12 different Types of cutters, none of which has any impact on any of these values, the form or any of the operations.
As you know I'm not in favour of keeping "features" that aren't tied to functionality - but I can already here the outcry if I propose to reduce the list to End Mill and Drill, and only have Diameter, Cutting Edge Length and (for a Drill) Point Angle as parameters - so I'm not gonna go there ....
Given these parameters it seems one can model cylindrical cutters (straight and conic), ball cutters (straight and conic), bull nose cutters (straight and conic) and drills. This seems to line up with the supported cutters of opencamlib - coincidental? probably not