Réseau de trous sur cercle — sous-programme + variables
O0700 (APPEL RÉSEAU TROUS)
G54 G90 T0101 M6
G43 H1 Z50.
G97 S1500 M3 M8
G0 X0. Y0.
; Appel macro G65 : centre (0,0), rayon 40, 6 trous, départ 0°
G65 P9020 A0. B0. C40. D6. F0.
G0 Z100. M5 M9
M30
O9020 (MACRO : TROUS SUR CERCLE)
; #1=A=X centre, #2=B=Y centre, #3=C=rayon, #7=D=nb trous, #9=F=angle départ
#101 = #9 (angle courant)
#102 = 360 / #7 (incrément angulaire)
#103 = 0 (compteur)
WHILE [#103 LT #7] DO 1
#24 = #1 + #3 * COS[#101] (X position)
#25 = #2 + #3 * SIN[#101] (Y position)
G0 X#24 Y#25
G81 Z-15. R2. F150. (cycle perçage)
#101 = #101 + #102 (angle suivant)
#103 = #103 + 1 (compteur)
END 1
G80
M99
G65 transmet les paramètres — #1=A (Xc), #2=B (Yc), #3=C (rayon), #7=D (nb trous). WHILE/DO crée la boucle.
Poche rectangulaire paramétrique — M98/M99
O0800 (PROGRAMME PRINCIPAL)
G54 G90 T0202 M6 (FRAISE Ø10)
G43 H2 Z50.
G97 S3500 M3 M8
; Variables : longueur, largeur, profondeur, ap par passe
#100 = 60. (longueur X)
#101 = 40. (largeur Y)
#102 = -15. (profondeur Z finale)
#103 = 3. (ap par passe)
#104 = 0. (Z courant)
G0 X-5. Y-5. Z5.
WHILE [#104 GT #102] DO 1
#104 = #104 - #103
IF [#104 LT #102] THEN #104 = #102
G1 Z#104 F300.
M98 P0801 (usinage contour poche)
END 1
G0 Z50. M5 M9
M30
O0801 (SOUS-PROG CONTOUR POCHE)
; Contour poche 60×40, centre (0,0)
G41 D2
G1 X-30. Y-20. F600.
Y20.
X30.
Y-20.
X-30.
G40 G1 X-35. Y-25.
M99
#100–#104 définissent la poche. Le WHILE découpe en passes de ap=3 mm jusqu'à la profondeur finale.