0 BEGIN PGM 2080_NL MM 1 ;Programma om radiussen te bewerken met 2 ;een radius die groter is dan de maximale 3 ;waarde in de NC-regel. 4 ;De radius wordt in afzonderlijke lineaire 5 ;elementen opgedeeld. In hoeveel lineaire 6 ;elementen hij wordt opgedeeld, legt u met de 7 ;Verdeling vast. De koorde van de boog gaat 8 ;vanaf het startpunt in positieve Y-richting 9 ;en kan door middel van een rotatie in de 10 ;gewenste richting worden gedraaid. 11 ;De radius wordt gedefinieerd door een 12 ;parameter (Q6) en een factor (Q8). Het resultaat 13 ;van deze vermenigvuldiging is de radius waarmee 14 ;de besturing de gelineariseerde cirkelbaan 15 ;berekent. 16 ; 17 ;Parameter-invoer 18 FN 0: Q16 =+100 ;STARTCOÖRDINAAT X 19 FN 0: Q17 =+0 ;STARTCOÖRDINAAT Y 20 FN 0: Q7 =+1000 ;KOORDELENGTE Y 21 FN 0: Q3 =-30 ;FREESDIEPTE 22 FN 0: Q5 =+1000 ;VERDELING 23 FN 0: Q6 =+5 ;RADIUS 24 FN 0: Q8 =+1000 ;RADIUSFACTOR 25 FN 0: Q10 =+2 ;VEILIGHEIDSAFSTAND 26 FN 0: Q11 =+500 ;AANZET DIEPTEVERPLAATSING 27 FN 0: Q12 =+2000 ;AANZET FREZEN 28 FN 0: Q15 =+40 ;RADIUSCOMPENSATIE 29 ; ;+40 = GEEN COMPENSATIE 30 ; ;+41 = RADIUSCOMPENSATIE LINKS 31 ; ;+42 = RADIUSCOMPENSATIE RECHTS 32 FN 0: Q18 =+0 ;ROTATIE 33 ;Einde parameterinvoer 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 ;Gereedschapsoproep 39 TOOL CALL 51 Z S5000 40 ; 41 ;Voorpositioneren 42 L Z+20 R0 F9999 M3 43 ; 44 ;Nulpunt naar startpunt verschuiven 45 CYCL DEF 7.0 NULPUNT 46 CYCL DEF 7.1 X+Q16 47 CYCL DEF 7.2 Y+Q17 48 ;Rotatie activeren 49 CYCL DEF 10.0 ROTATIE 50 CYCL DEF 10.1 ROT+Q18 51 ; 52 ;Oproep bewerking 53 CALL LBL 1 54 ; 55 ;Coördinatenomrekening terugzetten 56 CYCL DEF 10.0 ROTATIE 57 CYCL DEF 10.1 ROT+0 58 CYCL DEF 7.0 NULPUNT 59 CYCL DEF 7.1 X+0 60 CYCL DEF 7.2 Y+0 61 ; 62 ;Vrijzetten en programma-einde 63 L Z+20 R0 F9999 M2 64 ; 65 ;Bewerking 66 LBL 1 67 ;Berekeningen 68 FN 0: Q1 =+0 ;Startpunt X van nulpuntverschuiving 69 FN 0: Q2 =+0 ;Startpunt Y van nulpuntverschuiving 70 FN 0: Q31 =-Q7 ;Asgedeelte actueel 71 FN 1: Q32 =+Q2 + +Q7 ;Y-einde 72 FN 0: Q33 =+0 ;Lengte actueel 73 FN 3: Q35 =+Q6 * +Q8 ;Radius omrekening 74 FN 3: Q36 =+Q35 * +Q35 ;Radius vierkant 75 FN 4: Q37 =+Q7 DIV +2 ;Koorde halveren 76 FN 4: Q38 =+Q7 DIV +Q5 ;Stapgrootte op Y 77 FN 3: Q30 =+Q38 * +2 ;Stapgrootte op as 78 CALL LBL 10 79 FN 0: Q34 =+Q25 ;X-wijziging 80 FN 2: Q34 =+Q1 - +Q34 ;Startpuntverschuiving 81 FN 0: Q22 =+Q2 ;Y-startpunt 82 ; 83 ;Beoordeling van de radiuscompensatie en nadering 84 ;van het startpunt 85 FN 10: IF +Q15 NE +0 GOTO LBL Q15 86 LBL 40 ;Geen radiuscompensatie 87 L X+Q1 Y+Q2 R0 FMAX M3 ;Startpositie 88 FN 9: IF +0 EQU +0 GOTO LBL 43 89 LBL 41 ;Radiuscompensatie links 90 L X+Q1 Y+Q2 RL FMAX M3 ;Startpositie 91 FN 9: IF +0 EQU +0 GOTO LBL 43 92 LBL 42 ;Radiuscompensatie rechts 93 L X+Q1 Y+Q2 RR FMAX M3 ;Startpositie 94 LBL 43 95 L Z+Q10 FMAX ;Naar veiligheidsafstand verplaatsen 96 L Z+Q3 FQ11 ;Z naar diepte verplaatsen 97 ; 98 LBL 5 99 FN 1: Q22 =+Q22 + +Q38 ;Y actualiseren 100 FN 1: Q33 =+Q33 + +Q38 ;Lengte actualiseren 101 FN 11: IF +Q22 GT +Q32 GOTO LBL 99 ;Y-einde bereikt? 102 FN 9: IF +Q22 EQU +Q32 GOTO LBL 99 ;Y-einde bereikt? 103 FN 1: Q31 =+Q31 + +Q30 ;Asgedeelte actualiseren 104 CALL LBL 10 105 FN 1: Q21 =+Q34 + +Q25 ;Nieuwe X-coördinaat 106 L X+Q21 Y+Q22 FQ12 ;Nieuwe coördinaat X en Y naderen 107 FN 12: IF +Q33 LT +Q32 GOTO LBL 5 ;Einde niet bereikt? 108 FN 9: IF +Q33 EQU +Q32 GOTO LBL 5 109 ; 110 LBL 99 111 L X+Q1 Y+Q32 FMAX ;Laatste positie naderen 112 L Z+Q10 FMAX ;Z naar veiligheidsafstand verplaatsen 113 L IX+Q108 IY+Q108 R0 ;Radiuscorrectie opheffen 114 LBL 0 115 ; 116 LBL 10 ;X-stap berekenen 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 ;Wijziging van de X-as 122 LBL 0 123 END PGM 2080_NL MM