GCODE-fraisage surfacique paramétré

Dans cet exemple nous allons développer un projet de Module de fraisage surfacique paramétré.

l’idée est la suivante : proposer un programme  pour fraiser une surface plane rectangulaire de longueur et largeur donnée avec une fraise de diamètre donnée.

a priori , les premiers paramètres sont:

#11 #12: longueur X et largeur Y de la surface à fraiser

#20 : diametre de fraise

#30 #31: profondeur a fraiser et nombre de passes

un petit croquis en vue de dessus pour fixer les idées.

la stratégie de fraisage sera la suivante:

  • surface piece a Z=0
  • un fraisage en avalant par passes d’une valeur du 1/4 de largeur de fraise maxi suivant l’axe X
  • en tournant autour de la surface de l’extérieur vers l’intérieur pour maintenir le fraisage en avalant.
  • la fraise démarre en dehors de la piece d’une valeur de 5mm et ressort de l’autre coté de la meme valeur

un petit croquis pour éclairer le principe: les trajectoire d’usinage( flèches bleues) se font en avance travail, les trajectoire hors pièce (flèches rouges) se font à vitesse rapide.

position des points d’entrée et sortie dans les cas extrêmes:

Xmax=#11 + 5 +(#20/2) + 5 +(#20/2) = 10 + #11 + #20

Ymax=#12 + (#20/4) + (#20/4) = #12 + (#20/2)

Principe du programme:

pour simplifier la programmation , on va travailler en mode relatif et donc choisir un point d’origine permettant des boucles a variables identiques . ce point d’origine est  la position de fraise en bleu dans le schéma ci dessus. position qui est dans l’axe de symétrie de la pièce sur Y. les trajectoire aller et retour suivant X auront donc une position symétrique de même valeur Yn mais positive ou négative suivant que l’on est dans le sens aller ou retour .

la valeur Yn sera calculé a partir de Ymax et du nombre de passe. ce nombre de passes  déterminera le nombre d’incrément de cycle et la valeur à retrancher à Ymax pour chaque cycle.

le point de départ selon X est toujours avec une valeur a 0 , et le point de fin de course X toujours constant et égal à Xmax.

calcul du nombre de passes sur 1/2 largeur de piece:

1/2 largeur de piece = #12/2

valeur d’une passe = diametre fraise/4 = #20/4

nombre de passes = (#12/2) / (#20/4) = 2*(#12 / #20)

le nombre de passes trouvé va service d’incrément pour le nombre de répétition de boucle du programme GCODE, ce nombre doit être un entier. le résultat de la division de #12 par #20 a de grande chance d’être un nombre a virgule nous allons donc créer une variable entière qui sera calculée a partir de la valeur entière supérieur du résultat , il faut donc utiliser la fonction mathématique FUP[arg].

nous allons donc créer 3 variable supplémentaire : #1 ,  #2 et #3

variable #1: incrément de passe=(diamètre fraise/4)

#1 = #20/4

variable #2: nombre d’itérations

#2 = FUP [2*(#12 / #20)]

variable #3: compteur d’iteration pour le calcul de Yn

et pour eviter les formules compliquées , nous allons créer 2 variables #5 et #6 pour Xmax et Ymax/2

#5 = Xmax = 10 + #11 + #20

#6 = Ymax/2 = (#12 + (#20/2))/2

pour la gestion du nombre de prise de passe en Z il faut rajouter un parametre:

#33=#30/#31

une fois tout cela fixé , voila le programme complet:

et un lien vers le  fichier GCODE au format ZIP:    fraisage plan parametree.ZIP

et le résultat en simulation sur CUTVIEWER MILL: