0 BEGIN PGM 2080_DE MM 1 ;Programm, um Radien zu bearbeiten, deren 2 ;Radius groesser ist als der maximal Wert im 3 ;NC-Satz. 4 ;Der Radius wird in einzelne Linearelemente 5 ;aufgeteilt. In wie viele Linearelemente er 6 ;aufgeteilt wird, legen Sie mit der Teilung 7 ;fest. Die Sehne des Bogens geht vom 8 ;Startpunkt in positive Y Richtung, und kann 9 ;mittels einer Rotation in die gewuenschte 10 ;Richtung gedreht werden. 11 ;Den Radius definieren sie durch einen 12 ;Parameter (Q6) und einen Faktor (Q8). Das 13 ;Ergebnis dieser Multiplikation ist der 14 ;Radius, mit dem die Steuerung die 15 ;linearisierte Kreisbahn berechnet. 16 ; 17 ;Parametereingabe 18 FN 0: Q16 =+100 ;STARTKOORDINATE X 19 FN 0: Q17 =+0 ;STARTKOORDINATE Y 20 FN 0: Q7 =+1000 ;SEHNENLAENGE Y 21 FN 0: Q3 =-30 ;FRAESTIEFE 22 FN 0: Q5 =+1000 ;TEILUNG 23 FN 0: Q6 =+5 ;RADIUS 24 FN 0: Q8 =+1000 ;RADIUSFAKTOR 25 FN 0: Q10 =+2 ;SICHERHEITSABSTAND 26 FN 0: Q11 =+500 ;VORSCHUB TIEFENZUSTELLUNG 27 FN 0: Q12 =+2000 ;VORSCHUB FRAESEN 28 FN 0: Q15 =+40 ;RADIUSKOMPENSATION 29 ; ;+40=KEINE KOMPENSATION 30 ; ;+41=RADIUSKOMPENSATION LINKS 31 ; ;+42=RADIUSKOMPENSATION RECHTS 32 FN 0: Q18 =+0 ;ROTATION 33 ;Parametereingabe Ende 34 ; 35 BLK FORM 0.1 Z X+0 Y+0 Z-100 36 BLK FORM 0.2 X+400 Y+1000 Z+0 37 ; 38 ;Werkzeugaufruf 39 TOOL CALL 51 Z S5000 40 ; 41 ;Vorpositionieren 42 L Z+20 R0 F9999 M3 43 ; 44 ;Nullpunkt auf Startpunkt verschieben 45 CYCL DEF 7.0 NULLPUNKT 46 CYCL DEF 7.1 X+Q16 47 CYCL DEF 7.2 Y+Q17 48 ;Rotation aktivieren 49 CYCL DEF 10.0 DREHUNG 50 CYCL DEF 10.1 ROT+Q18 51 ; 52 ;Aufruf Bearbeitung 53 CALL LBL 1 54 ; 55 ;Koordinatenumrechnung zuruecksetzen 56 CYCL DEF 10.0 DREHUNG 57 CYCL DEF 10.1 ROT+0 58 CYCL DEF 7.0 NULLPUNKT 59 CYCL DEF 7.1 X+0 60 CYCL DEF 7.2 Y+0 61 ; 62 ;Freifahren und Programmende 63 L Z+20 R0 F9999 M2 64 ; 65 ;Bearbeitung 66 LBL 1 67 ;Berechnungen 68 FN 0: Q1 =+0 ;Startpunkt X von Nullpunktverschiebung 69 FN 0: Q2 =+0 ;Startpunkt Y von Nullpunktverschiebung 70 FN 0: Q31 =-Q7 ;Achsabschnitt aktuell 71 FN 1: Q32 =+Q2 + +Q7 ;Y Ende 72 FN 0: Q33 =+0 ;Laenge aktuell 73 FN 3: Q35 =+Q6 * +Q8 ;Radius Umrechnung 74 FN 3: Q36 =+Q35 * +Q35 ;Radius Quadrat 75 FN 4: Q37 =+Q7 DIV +2 ;Sehne halbieren 76 FN 4: Q38 =+Q7 DIV +Q5 ;Schrittweite in Y 77 FN 3: Q30 =+Q38 * +2 ; Schrittweite in Achse 78 CALL LBL 10 79 FN 0: Q34 =+Q25 ;X Veränderung 80 FN 2: Q34 =+Q1 - +Q34 ;Startpunktverschiebung 81 FN 0: Q22 =+Q2 ;Y Startpunkt 82 ; 83 ;Entscheidung der Radiuskompensation und 84 ;Anfahren des Startpunkts 85 FN 10: IF +Q15 NE +0 GOTO LBL Q15 86 LBL 40 ;Keine Radiuskompensation 87 L X+Q1 Y+Q2 R0 FMAX M3 ;Startposition 88 FN 9: IF +0 EQU +0 GOTO LBL 43 89 LBL 41 ;Radiuskompensaton Links 90 L X+Q1 Y+Q2 RL FMAX M3 ;Startposition 91 FN 9: IF +0 EQU +0 GOTO LBL 43 92 LBL 42 ;Radiuskompensation Rechts 93 L X+Q1 Y+Q2 RR FMAX M3 ;Startposition 94 LBL 43 95 L Z+Q10 FMAX ;Auf Sicherheitsabstand fahren 96 L Z+Q3 FQ11 ;Z auf Tiefe fahren 97 ; 98 LBL 5 99 FN 1: Q22 =+Q22 + +Q38 ; Y aktualisieren 100 FN 1: Q33 =+Q33 + +Q38 ;Laenge aktualisieren 101 FN 11: IF +Q22 GT +Q32 GOTO LBL 99 ; Y Ende erreicht? 102 FN 9: IF +Q22 EQU +Q32 GOTO LBL 99 ;Y Ende erreicht? 103 FN 1: Q31 =+Q31 + +Q30 ;Achsabschnitt aktualisieren 104 CALL LBL 10 105 FN 1: Q21 =+Q34 + +Q25 ;Neue X Koordinate 106 L X+Q21 Y+Q22 FQ12 ;Neue Koordinate X und Y anfahren 107 FN 12: IF +Q33 LT +Q32 GOTO LBL 5 ;Ende nicht erreicht? 108 FN 9: IF +Q33 EQU +Q32 GOTO LBL 5 109 ; 110 LBL 99 111 L X+Q1 Y+Q32 FMAX ;Letzte Position anfahren 112 L Z+Q10 FMAX ;Z Auf Sicherheitsabstand fahren 113 L IX+Q108 IY+Q108 R0 ;Radiuskorretur aufheben 114 LBL 0 115 ; 116 LBL 10 ;X Schritt berechnen 117 FN 4: Q25 =+Q31 DIV +2 118 FN 3: Q25 =+Q25 * +Q25 119 FN 2: Q25 =+Q36 - +Q25 120 FN 5: Q25 = SQRT +Q25 121 FN 2: Q25 =+Q35 - +Q25 ;Veraenderung der X-Achse 122 LBL 0 123 END PGM 2080_DE MM