การคำนวณค่าความเร็วรอบ (Spindle Speed), Feed Rate และ Step Down สำหรับการกัดด้วยเครื่อง CNC เราจำเป็นต้องพิจารณาปัจจัยหลายอย่าง เช่น ชนิดของวัสดุที่ใช้, ขนาดของดอกกัด, วัสดุของดอกกัด, และค่าพารามิเตอร์อื่นๆ
สูตรพื้นฐานที่ใช้ในการคำนวณ:
-
Spindle Speed (RPM)
โดยที่:
- : Cutting Speed (เมตร/นาที) ขึ้นอยู่กับชนิดของวัสดุและดอกกัด
- : เส้นผ่านศูนย์กลางของดอกกัด (มิลลิเมตร)
-
Feed Rate (F)
โดยที่:
- : Feed per Tooth (มิลลิเมตร/ฟัน)
- : จำนวนฟันของดอกกัด
-
Step Down (Axial Depth of Cut)
ค่า Step Down จะขึ้นอยู่กับความแข็งแรงของดอกกัดและชนิดของวัสดุ โดยทั่วไปจะกำหนดเป็น % ของเส้นผ่านศูนย์กลางของดอกกัด เช่น:- สำหรับงานหยาบ: 50-70% ของเส้นผ่านศูนย์กลาง
- สำหรับงานละเอียด: 10-30% ของเส้นผ่านศูนย์กลาง
import math
def calculate_spindle_speed(vc, diameter):
"""
Calculate spindle speed (RPM) based on cutting speed and tool diameter.
:param vc: Cutting speed in meters per minute (m/min)
:param diameter: Tool diameter in millimeters (mm)
:return: Spindle speed in revolutions per minute (RPM)
"""
return (vc * 1000) / (math.pi * diameter)
def calculate_feed_rate(rpm, fz, num_teeth):
"""
Calculate feed rate (F) based on RPM, feed per tooth, and number of teeth.
:param rpm: Spindle speed in revolutions per minute (RPM)
:param fz: Feed per tooth in millimeters per tooth (mm/tooth)
:param num_teeth: Number of teeth (Z)
:return: Feed rate in millimeters per minute (mm/min)
"""
return rpm * fz * num_teeth
def calculate_step_down(diameter, material_type):
"""
Calculate step down (axial depth of cut) based on tool diameter and material type.
:param diameter: Tool diameter in millimeters (mm)
:param material_type: Type of material ('rough' or 'finish')
:return: Step down in millimeters (mm)
"""
if material_type == "rough":
return diameter * 0.6 # 60% of diameter for roughing
elif material_type == "finish":
return diameter * 0.2 # 20% of diameter for finishing
else:
raise ValueError("Invalid material type. Use 'rough' or 'finish'.")
# Example usage:
if __name__ == "__main__":
# Input parameters
cutting_speed = 150 # Cutting speed in m/min (example for aluminum)
tool_diameter = 10 # Tool diameter in mm
feed_per_tooth = 0.1 # Feed per tooth in mm/tooth
num_teeth = 4 # Number of teeth on the tool
material_type = "rough" # Material type ('rough' or 'finish')
# Calculations
rpm = calculate_spindle_speed(cutting_speed, tool_diameter)
feed_rate = calculate_feed_rate(rpm, feed_per_tooth, num_teeth)
step_down = calculate_step_down(tool_diameter, material_type)
# Output results
print(f"Spindle Speed (RPM): {rpm:.2f}")
print(f"Feed Rate (mm/min): {feed_rate:.2f}")
print(f"Step Down (mm): {step_down:.2f}")