การคำนวณค่าความเร็วรอบ (Spindle Speed), Feed Rate และ Step Down สำหรับการกัดด้วยเครื่อง CNC เราจำเป็นต้องพิจารณาปัจจัยหลายอย่าง เช่น ชนิดของวัสดุที่ใช้, ขนาดของดอกกัด, วัสดุของดอกกัด, และค่าพารามิเตอร์อื่นๆ

สูตรพื้นฐานที่ใช้ในการคำนวณ:

  1. Spindle Speed (RPM)

    โดยที่:

    • : Cutting Speed (เมตร/นาที) ขึ้นอยู่กับชนิดของวัสดุและดอกกัด
    • : เส้นผ่านศูนย์กลางของดอกกัด (มิลลิเมตร)
  2. Feed Rate (F)

    โดยที่:

    • : Feed per Tooth (มิลลิเมตร/ฟัน)
    • : จำนวนฟันของดอกกัด
  3. 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}")

เครื่องมือคำนวณพารามิเตอร์ CNC