How can I create a boolean mesh to replicate the movement of a milling bit? I'm trying to model a part that has a (helical) milled groove using the boolean modifier and can't find a good way to model the cutting path of the bit. I have tried using the screw modifier but this doesn't work well with 3D shapes. If I use the profile of the bit then it gets pretty close but doesn't quite replicate the final cut the bit would produce. 

...........................

In this image I used the screw modifier both on the 3D shape and the profile. The best part of the screw modifier is that it extrudes to the next step which prevents visible steps creating a smoother result. The problem is all the interior faces / vertices it creates with 3D shapes. Also the face normals go wonky. 


This image uses the array modifier + object offset set to an empty rotated 1 degree and shows the difference between the profile (of the cylindrical bit which amounts to a rectangle)(Left-Blue) and a full cylinder (Right-Red). 


This image is to help visualize the problem. At each "step" of bit movement the removed material has to match the full shape of the bit or the final cut won't match what is actually happening.


The closest I can probably get is to use the array modifier, P-Key->Separate loose parts. Then Union Bool to a final shape. Obviously that's an incredibly tedious process if you're trying to get a high resolution result by using more steps. 

I may write a script for this and will definitely share and link if it works. But I've seen some really clever and elegant modeling solutions on here so hopefully someone has an interesting way to reproduce this type of machining operation.
This might not be quite what you're looking for, but come back (comment) if it isn't....

I'm starting with a 32-sided cylinder, Z-up, rotated RZ in edit mode by 360/64, so its flat sides face down X and Y.


Cut across the ends of the cylinder, joining the faces facing Y and -Y, preparatory to making a central section (see below)
Cut in circumferences, and SShiftZ scale them in  XY to create the profile.
Split a copy of the bit as shown. 
Make a central section made by duplicating ShiftD the X - central face-loop, and flattening its front and back sides by scaling to 0 in X about an unscaled vertex on each side. (Set pivot to 'active', and select an unscaled vertex last)
Make front and back sections made by taking the remaining faces, and extruding their inner edge-loops to X=0, so they meet in the middle. (E, followed by SX0, with pivot set back to '3D cursor' at the origin). Split those off to new objects, as before.
Create the curve which will be the path of your bit.
Assign an Array modifier to the central section, Relative offset to 1 in X, count set to 'Fit Curve', and Start and End Caps set to the other sections.
Assign a Curve modifier to the array, down X. (It's easier if the origin of the curve coincides with the origin of the central section)




Now you could use the result in a Boolean, or turn it inside out, remove the top face, and model with it.