A fair amount of progress, though I've dropped back to rework some. I've mostly figured out how to handle this, but I needed to redo some work/approach.
I'm using the Sketcher now because it allows me to use Constraints, it's easy to visualize for development and troubleshooting, and if left parametric, it allows further modification/refinement. I did this because I realized that for in theory, any Tool can be modeled, and even more importantly, the CNC collet can be accounted for. Everyone--myself included--looks at a sphere or cylinder and wants to accomplish it, but without thought the limitation of the collet. Realistically, it's a vertical/radial safety margin we want to impose around the collet.
In essence, for any geo primitive and any tool shape, there is a Parameter UV range to be defined that represents the "response" of that tool shape to that primitive shape. This allows for example implementing a chamfer tool response that ignore flat ,vertical , and too steeply angled planes for that cut angle.
Where I left off last night, I have code generating a bound shape and a response to geometric primitives--Sphere, cyclinder, cone, plane. Toroid is only partial. I also generate a model of tool shapes from the selected Job---endmill, ballendmill, etc... I generate a profile which when revolved gives representation of the tool definition for sanity check.
I also generate a slice of the center of the tool for actual calculations. For a sphere, the tool can always hit the peak of it. The tip of the tool can be used until the defined collet clearance touches the sphere profile. If the tool is long enough, this is the bottom, otherwise it's a portion of the sphere, as shown in included image.
The resultant edge when rotated defines the template of what could be cut. A cylinder is similar, but the tool profile is worked across a half-circle geometry representation, then the result is extruded instead of rotated...
This shape is modified using the normal to the outer wire to chop away what isn't part of the actual model. That is the maximal finish surface--(it will still need any interference removed where it's needs violate other Surfaces). The cut envelope is what is bounded by this surface and its projection on the stock top. Existing Path.Feature can use that envelope to generate roughing, and the projection of the paths can be projected from the stock top plane down onto the surface for actual surface paths. I've tested that successfully already. Ideally, additional paths can be generated with sin/cos used to generate spacing so that projection onto sphere results in even spacing in 3d... That I can wait on though.
I anticipate having a bit to show in the next several days. The good news is that this is a relatively fast algo because instead of probing points on faces, the overall faces are considered.