All Resources
GuideAutomation2026-03-01
CNC Feeds and Speeds Quick Reference
Essential formulas, material lookup tables, and tool-specific adjustments for calculating CNC feed rates and spindle speeds. Includes a programmatic calculation example.
Core Formulas
Spindle Speed (RPM)
RPM = (SFM × 12) / (π × tool diameter)Or in metric:
RPM = (cutting speed in m/min × 1000) / (π × tool diameter in mm)Feed Rate (IPM / mm/min)
Feed Rate = RPM × number of flutes × chip load per toothMaterial Removal Rate (MRR)
MRR = width of cut × depth of cut × feed rateSurface Speed (SFM) Reference Table
| Material | HSS (SFM) | Carbide (SFM) |
|---|---|---|
| Aluminum (6061) | 300-600 | 800-1500 |
| Mild Steel (1018) | 60-100 | 300-600 |
| Stainless (304) | 30-60 | 150-350 |
| Tool Steel (D2) | 20-40 | 100-200 |
| Brass | 200-400 | 600-1000 |
| Plastics (Acetal) | 300-500 | 500-1000 |
| Titanium (Ti-6Al-4V) | 20-40 | 100-200 |
Chip Load Reference (inches/tooth)
| Tool Diameter | Aluminum | Steel | Stainless |
|---|---|---|---|
| 1/8" (3mm) | 0.002 | 0.001 | 0.0008 |
| 1/4" (6mm) | 0.004 | 0.002 | 0.0015 |
| 3/8" (10mm) | 0.005 | 0.003 | 0.002 |
| 1/2" (12mm) | 0.006 | 0.004 | 0.003 |
| 3/4" (20mm) | 0.008 | 0.005 | 0.004 |
| 1" (25mm) | 0.010 | 0.006 | 0.005 |
Adjustments
Depth of Cut
- Roughing: Up to 1x tool diameter depth, 50-70% width
- Finishing: 0.1-0.5mm depth, full width OK
- Slotting: Reduce feed by 50% (no chip evacuation advantage)
Tool Type
- Ball end mill: Calculate SFM using effective diameter at depth of cut, not nominal diameter
- Face mill: Higher chip loads than end mills — typically 1.5-2x
- Drill: Use separate drill speed/feed charts — chip load is per revolution, not per tooth
Practical Example
Given: 1/2" 4-flute carbide end mill, cutting 6061 aluminum
- SFM: 1000 (carbide in aluminum)
- RPM: (1000 × 12) / (3.14159 × 0.5) = 7,639 RPM
- Chip load: 0.006 in/tooth
- Feed rate: 7,639 × 4 × 0.006 = 183 IPM
Programmatic Calculation
public static (double rpm, double feedRate) CalculateSpeeds(
double sfm, double toolDiameter, int flutes, double chipLoad)
{
double rpm = (sfm * 12) / (Math.PI * toolDiameter);
double feedRate = rpm * flutes * chipLoad;
return (Math.Round(rpm), Math.Round(feedRate, 1));
}Tips
- These are starting points — adjust based on machine rigidity, tool length, and actual cutting conditions
- Listen to the cut: chatter means too aggressive, squealing means too slow
- For adaptive/trochoidal milling, increase RPM by 50% and use light radial engagement (10-15% WOC)
- Always verify maximum RPM of your spindle before calculating — don't exceed machine limits
CNCFeedsSpeedsMachiningManufacturing