0 BEGIN PGM SPIRAL_CLIMB_SURFACING MM 1 BLK FORM 0.1 Z X+0 Y+0 Z-40 2 BLK FORM 0.2 X+100 Y+100 Z+0 3 ; 4 ; =================================================== 5 ; --- CYCLE 32: SMOOTH CONTROLLING FOR HIGH SPEED --- 6 ; Allows the controller to blend small linear moves 7 ; into a smooth surface and prevents stuttering. 8 ; =================================================== 9 CYCL DEF 32.0 TOLERANCE 10 CYCL DEF 32.1 HSC-MODE:1 TA+0.05 11 ; 12 ; =================================================== 13 ; --- CONFIGURATION PARAMETERS --- 14 ; =================================================== 15 Q1 = 72 ; Starting radius (corner distance is ~70.7mm) 16 Q2 = 0 ; Starting angle (degrees) 17 ; 18 ; Spiral settings: 19 ; Stepover of 0.8mm per turn. 20 ; 72 points per turn (5 degrees per step). 21 ; Total turns = 72mm radius / 0.8mm stepover = 90 turns. 22 ; Total repetitions = 90 turns * 72 steps/turn = 6480 steps. 23 Q4 = -5 ; Angle step (-5 deg for CW / Climb Milling) 24 Q5 = 0.011111 ; Radius decrement per step (0.8mm / 72 steps) 25 ; 26 ; =================================================== 27 ; --- INITIAL POSITION CALCULATION --- 28 ; =================================================== 29 Q20 = 50 + Q1 * COS( Q2 ) 30 Q21 = 50 + Q1 * SIN( Q2 ) 31 ; 32 ; Clamp X to [0, 100] 33 Q22 = Q20 34 FN 12: IF +Q22 LT +0 GOTO LBL 10 35 FN 11: IF +Q22 GT +100 GOTO LBL 11 36 FN 9: IF +0 EQU +0 GOTO LBL 12 37 LBL 10 38 Q22 = 0 39 FN 9: IF +0 EQU +0 GOTO LBL 12 40 LBL 11 41 Q22 = 100 42 LBL 12 43 ; 44 ; Clamp Y to [0, 100] 45 Q23 = Q21 46 FN 12: IF +Q23 LT +0 GOTO LBL 13 47 FN 11: IF +Q23 GT +100 GOTO LBL 14 48 FN 9: IF +0 EQU +0 GOTO LBL 15 49 LBL 13 50 Q23 = 0 51 FN 9: IF +0 EQU +0 GOTO LBL 15 52 LBL 14 53 Q23 = 100 54 LBL 15 55 ; 56 ; Calculate initial Z height 57 Q30 = Q22 - 50 58 Q31 = Q23 - 50 59 Q32 = ( Q30 * Q30 ) + ( Q31 * Q31 ) 60 Q33 = SQRT ( Q32 ) 61 Q34 = Q33 * 24 62 Q35 = 1 - ( Q33 / 72 ) 63 Q3 = ( COS( Q34 ) * 4 * Q35 ) - 4 64 ; ; =================================================== ; --- TOOL CALL AND POSITION TO START POINT --- ; --- REQUIRED TOOL: 3MM BALL ENDMILL (BALL NOSE) --- ; =================================================== TOOL CALL 1 Z S10000 F1500 69 L Z+10 R0 FMAX M3 70 L X+Q22 Y+Q23 R0 FMAX 71 L Z+Q3 R0 F1500 72 ; 73 ; =================================================== 74 ; --- MAIN SPIRAL LOOP --- 75 ; =================================================== 76 LBL 2 77 ; 1. Update Angle and Radius 78 Q2 = Q2 + Q4 79 Q1 = Q1 - Q5 80 81 ; 2. Calculate raw spiral coordinates 82 Q20 = 50 + Q1 * COS( Q2 ) 83 Q21 = 50 + Q1 * SIN( Q2 ) 84 85 ; 3. Clamp X to [0, 100] 86 Q22 = Q20 87 FN 12: IF +Q22 LT +0 GOTO LBL 10 88 FN 11: IF +Q22 GT +100 GOTO LBL 11 89 FN 9: IF +0 EQU +0 GOTO LBL 12 90 LBL 10 91 Q22 = 0 92 FN 9: IF +0 EQU +0 GOTO LBL 12 93 LBL 11 94 Q22 = 100 95 LBL 12 96 97 ; 4. Clamp Y to [0, 100] 98 Q23 = Q21 99 FN 12: IF +Q23 LT +0 GOTO LBL 13 100 FN 11: IF +Q23 GT +100 GOTO LBL 14 101 FN 9: IF +0 EQU +0 GOTO LBL 15 102 LBL 13 103 Q23 = 0 104 FN 9: IF +0 EQU +0 GOTO LBL 15 105 LBL 14 106 Q23 = 100 107 LBL 15 108 109 ; 5. Calculate Z height based on clamped coordinates 110 Q30 = Q22 - 50 111 Q31 = Q23 - 50 112 Q32 = ( Q30 * Q30 ) + ( Q31 * Q31 ) 113 Q33 = SQRT ( Q32 ) 114 Q34 = Q33 * 24 115 Q35 = 1 - ( Q33 / 72 ) 116 Q3 = ( COS( Q34 ) * 4 * Q35 ) - 4 117 118 ; 6. Move to point 119 L X+Q22 Y+Q23 Z+Q3 R0 F1500 120 121 CALL LBL 2 REP 6479 122 ; 123 ; =================================================== 124 ; --- CLEANUP AND EXIT --- 125 ; =================================================== 126 L Z+20 R0 FMAX M2 127 END PGM SPIRAL_CLIMB_SURFACING MM