0 BEGIN PGM 2070-DE MM 1 ;Programm zum Fraesen einer Ellipsenbahn. 2 ;Dazu wird die eigentliche Bahn in einzelne 3 ;Linearelemente aufgeteilt. Die Anzahl dieser 4 ;linearen Bewegungen bestimmt, wie exakt sich 5 ;die linearisierte Bahn und die Ellipsenbahn 6 ;gleichen. 7 ;Die Bahn wird gegen den Uhrzeigersinn 8 ;gefahren. Alle nötigen Werte difinieren sie 9 ;in Parametern. 10 ; 11 ;Eingabe Parameter 12 FN 0: Q1 =+0 ;MITTE ELLIPSE IN DER X-ACHSE 13 FN 0: Q2 =+0 ;MITTE ELLIPSE IN DER Y-ACHSE 14 FN 0: Q3 =-10 ;TIEFE 15 FN 0: Q5 =+50 ;TEILUNG 16 ; ;DEFINIERT, IN WIE VIELE LINEAR- 17 ; ;ELEMENTE DIE BAHN AUFGETEILT 18 ; ;WIRD 19 FN 0: Q6 =+45 ;ELLIPSENHALBACHSE IN X 20 FN 0: Q16 =+25 ;ELLIPSENHALBACHSE IN Y 21 FN 0: Q7 =+0 ;STARTWINKEL IN DER EBENE X/Y 22 FN 0: Q17 =+360 ;ENDWINKEL IN DER EBENE X/Y 23 FN 0: Q8 =+0 ;ROTATION DER ELLIPSE 24 FN 0: Q10 =+2 ;SICHERHEITSABSTAND 25 FN 0: Q11 =+300 ;VORSCHUB TIEFENZUSTELLUNG 26 FN 0: Q12 =+555 ;VORSCHUB FRAESEN 27 FN 0: Q14 =+0 ;AUFMASS 28 ; ;WERT, UM DEN DIE HALBACHSEN 29 ; ;VERAENDERT WERDEN 30 ; ;!!VORZEICHEN BEACHTEN!! 31 FN 0: Q15 =+2 ;RADIUSKOMPENSATION 32 ; ;0=KEINE KOMPENSATION 33 ; ;1=RADIUSKOMPENSATION NACH LINKS 34 ; ;2=RADIUSKOMPENSATION NACH RECHTS 35 ;Eingabe Parameter Ende 36 ; 37 BLK FORM 0.1 Z X-60 Y-50 Z-40 38 BLK FORM 0.2 X+60 Y+50 Z+0 39 ; 40 ;Werkzeugaufruf Fraeser 41 TOOL CALL 10 Z S3000 42 ; 43 ;Aufruf Bahnbewegung 44 CALL LBL 1 45 ; 46 ;Freifahren und Programmende 47 L Z+100 R0 FMAX M30 48 ; 49 ;Bahnbewegung 50 LBL 1 51 ;Koordinatenumrechnungen 52 CYCL DEF 7.0 NULLPUNKT 53 CYCL DEF 7.1 X+Q1 54 CYCL DEF 7.2 Y+Q2 55 CYCL DEF 10.0 DREHUNG 56 CYCL DEF 10.1 ROT+Q8 57 ; 58 FN 0: Q23 =+Q3 ;Z-Wert kopieren 59 FN 0: Q27 =+Q7 ;Aktueller Winkel = Startwinkel 60 FN 1: Q31 =+Q6 + +Q14 ;Effektive X-Halbachse 61 FN 1: Q32 =+Q16 + +Q14 ;Effektive Y-Halbachse 62 FN 0: Q35 =+0 ;Zaehler 63 FN 2: Q37 =+Q17 - +Q7 ;Winkelschritt 64 FN 4: Q37 =+Q37 DIV +Q5 ;Winkelschritt 65 CALL LBL 4 ;Aufruf Positionsberechnung 66 ; 67 ;Beruecksichtigung der Radiuskorrektur und 68 ;Anfahren der ersten Position 69 FN 9: IF +Q15 EQU +1 GOTO LBL 11 70 FN 9: IF +Q15 EQU +2 GOTO LBL 12 71 LBL 10 72 L X+Q21 Y+Q22 R0 FMAX M3 73 FN 9: IF +0 EQU +0 GOTO LBL 2 74 LBL 11 75 L X+Q21 Y+Q22 RL FMAX M3 76 FN 9: IF +0 EQU +0 GOTO LBL 2 77 LBL 12 78 L X+Q21 Y+Q22 RR FMAX M3 79 ; 80 LBL 2 81 L Z+Q10 FMAX ;Z-Achse vorpositionieren 82 L Z+Q3 FQ11 ;Tiefenzustellung 83 ; 84 LBL 3 ;Wiederholung 85 FN 1: Q27 =+Q27 + +Q37 ;Winkel weiterrechnen 86 FN 1: Q35 =+Q35 + +1 ;Zaehler weiterrechnen 87 FN 11: IF +Q35 GT +Q5 GOTO LBL 99 ;Vergleich, ob Anzahl der Schritte erreicht 88 CALL LBL 4 ;Aufruf Positionsberechnung 89 L X+Q21 Y+Q22 Z+Q23 FQ11 ;Auf neue Position fahren 90 FN 12: IF +Q35 LT +Q5 GOTO LBL 3 ;Vergleich, ob weitere Wiederholung nötig ist 91 ; 92 LBL 99 93 L Z+Q10 R0 FMAX ;Z-Achse freifahren 94 ;Koordinatenumrechnung zuruecksetzen 95 CYCL DEF 10.0 DREHUNG 96 CYCL DEF 10.1 ROT+0 97 CYCL DEF 7.0 NULLPUNKT 98 CYCL DEF 7.1 X+0 99 CYCL DEF 7.2 Y+0 100 LBL 0 101 ; 102 LBL 4 ;Berechnung der neuen X und Y Position 103 FN 7: Q21 = COS +Q27 104 FN 3: Q21 =+Q21 * +Q31 105 FN 6: Q22 = SIN +Q27 106 FN 3: Q22 =+Q32 * +Q22 107 LBL 0 108 END PGM 2070-DE MM