Quand la fraiseuse se met à jour – Episode 3

Il y a encore quelques détails comme la fixation des capteurs de fin de course de l’axe des X qui ne vont pas. Les capteurs actuels ( de simples inter de fin de courses ) ont été collés à la cyano pour faire vite. Il est maintenant temps de régler ça et de mettre en place une solution plus propre.

J’ai utilisé du PVC noir de 3mm pour fraiser des petits supports pour les nouveaux interrupteurs.

Un petit tour dans LibreCad permet de dessiner rapidement le support.

Ensuite c’est au tour de heekscad pour générer le GCODE. Découpe de 3mm en 3 passes avec une fraise au carbure 1 dent ( CncFraise )

Après quelques minutes, voilà le résultat prêt à être installé.

L’interrupteur en place sur le bloc Z.

Le tout est connecté avec un cable récupéré sur une souris d’ordinateur.

 

En face de l’interrupteur, j’ai placé une petite butée.

L’interrupteur en face de sa butée.

 

Et pour finir, la tête de la fraiseuse est maintenant équipée d’une ventilation pour chasser les copeaux et d’une LED pour bien éclairer la surface.

 

CNC, tests de précision

Maintenant que je dispose du petit palpeur pour l’axe des Z, je me lance dans une série de tests de précision de la machine. Notamment un test concernant l’axe des Z. L’axe est monté et descendu 150 fois pour mesurer l’éventuelle dérive de position.

Voilà le morceau de G-CODE utilisé.

G21   (mm)
F80    (probe speed)
(PROBEOPEN probe_point.txt)
#1=0 (counter)
#2=150 (number of points)

O1 while [#1 lt #2]
G0Z2
G38.2Z-10
#1=[#1+1]
O1 endwhile
G0Z2
(PROBECLOSE)
M2

Ainsi que le bout de programme gnuplot pour mettre tout ça en image.

set terminal png size 800,800
set output "point.png"
set title "Vérification des mesures sur un point"
#set xrange [0:5]
#set yrange [-2:2]
plot 'probe_point.txt' using 3  with lines

Et voilà le résultat:

Regardez bien l’échelle, on est au centième de millimètre… pas trop mal pour du DIY 😉

Quand la fraiseuse se met à jour – Episode 2

Vous vous souvenez, il y a quelques temps ma fraiseuse s’est « mise à jour » en s’auto fabricant un support de DREMEL en PEHD. Et bien voilà qu’elle remet ça. Je me suis décidé à remplacer ma table de fraisage en bois par une en PVC avec un système de réglage de l’assiette afin de pouvoir corriger d’éventuels défauts d’alignement ( oui, oui, il y en a un peu… ). Mais avant de remplacer cette table, il faut régler un problème avec les supports des barres de guidage. Les supports sont surélevés avec des rondelles pour permettre le passage des chariots sur douilles à billes. Seulement voilà, avec le poids de la machine, les rondelles commencent à s’enfoncer dans le bois qui n’est pas assez dur (MDF).

J’ai donc entrepris de fraiser des semelles en PEHD pour les supports. Après de longues minutes d’attente voilà mes 4 pieds prêts à poser.

 

Les semelles sont parfaitement ajustées et répartissent le poids de la machine sur le socle en bois.

 

Les bases sont posées, on peut remplacer la table de fraisage. C’est une plaque de PVC très rigide de 15mm d’épaisseur. Elle est montée sur 4 tiges filetées de 6mm afin de pouvoir ajuster précisément sa hauteur. Le pas d’une vis M6 étant de 1mm, ça signifie qu’en serrant l’écrou de réglage d’1 tour je pourrais monter ou descendre la table d’1mm. L’ajustement est donc particulièrement précis.

 

 

Ma table étant ajustable, il faut trouver un moyen précis pour calculer la hauteur requise au 4 coins en corrigeant d’éventuels problèmes d’ajustement de la machine. Pour cela j’ai mis au point un palpeur à monter sur la dremel. Ce n’est rien d’autre qu’un micro interrupteur qui servira à mesurer la hauteur de la table en différents points.

Un petit tour dans les boites à récup et me voilà avec une fiche CINCH, un interrupteur, un cable de souris, un bout de tube et un écrou / boulon de 3mm.

Un petit coup de fer à souder… un petit coup de perceuse pour passer le câble…

Et on assemble le tout à grand coup de colle cyanolite

La fiche CINCH est soudée sur le cable.

Le palpeur est terminé. Je l’installe sur le mandrin de la Dremel et je branche le câble sur l’entrée de la carte de commande servant habituellement au « Homing » de l’axe Z.

 

Le côté mécanique étant terminé, il faut s’attaquer à la partie logicielle. Nous allons utiliser un peu de langage G-CODE pour effectuer une grille de hauteur de la table de fraisage.

(Configuration section)
G21   (mm)
F80    (probe speed)

#1=0  (X start)
#2=50 (X increment)
#3=5 (X count)

#4=0
#5=50
#6=5 (Y count)

#7=2 (Z safety)
#8=-10 (Z probe)
(End configuration section)

(PROBEOPEN probe_table_map.txt)
#9=0 #10=0
G0Z#7
O1 while [#9 lt #6]
#10=0
G0 Y[#4+#5*#9]
O2 while [#10 lt #3]
O3 if [[#9/2] - fix[#9/2] eq 0]
G0X[#1+#2*#10]
O3 else
G0X[#1+#2*[#3-#10-1]]
O3 endif
G38.2Z#8
G0Z#7
#10=[#10+1]
O2 endwhile
#9=[#9+1]
O1 endwhile

(PROBECLOSE)
G0Z#7
G0X#1Y#4
M2

Ce code va lancer des mesures sur un carré de 200 x 200 mm en effectuant une mesure tous les 50mm. Les valeurs sont stockées dans un fichier texte probe_table_map.txt. (Je n’ai rien inventé, j’ai honteusement pompé un exemple proposé avec EMC)

Après quelques minutes, nous disposons d’un fichier texte avec les valeurs mesurées.

0.000000 0.000000 -1.434338 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
50.000000 0.000000 -1.495669 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
100.000000 0.000000 -1.619665 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
150.000000 0.000000 -1.763661 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
200.000000 0.000000 -1.894324 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
200.000000 50.000000 -2.024987 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
150.000000 50.000000 -1.916990 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
100.000000 50.000000 -1.795660 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
50.000000 50.000000 -1.696996 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.000000 50.000000 -1.632998 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.000000 100.000000 -1.766328 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
50.000000 100.000000 -1.834326 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
100.000000 100.000000 -1.944989 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
150.000000 100.000000 -2.528971 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
200.000000 100.000000 -2.115651 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
200.000000 150.000000 -2.167649 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
150.000000 150.000000 -2.086318 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
100.000000 150.000000 -2.014320 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
50.000000 150.000000 -1.939656 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.000000 150.000000 -1.842325 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.000000 200.000000 -1.882324 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
50.000000 200.000000 -1.975655 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
100.000000 200.000000 -2.020987 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
150.000000 200.000000 -2.104984 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
200.000000 200.000000 -2.187648 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

Ce n’est pas très parlant, mais gnuplot peut nous aider. Nous allons créer un petit programme gnuplot utilisant les fonctions pm3d pour mettre en image l’assiette de la table.

set terminal png size 800,800
set output "heatmmap.png"
set xrange [0:200]
set yrange [0:200]
set cbrange [1:-2]
set view map
set dgrid3d 100,100,2
set palette model RGB
set palette defined
#unset surface
set pm3d at s
splot 'probe_table_map.txt' using 1:2:3  with pm3d at s  notitle

Le résultat avec une table non équilibrée.
On voit immédiatement le déséquilibre, le coin devant/gauche est plus haut de 1mm que le coin derrière/droite !

En ajustant légèrement la vis de réglage devant à gauche, on peut corriger l’assiette.

Le résultat est encore imparfait ( j’ai réglé la table au pif ) mais la méthode fonctionne. C’est long et empirique mais l’essentiel c’est d’obtenir un résultat à la hauteur de ses espérances…

Quand la fraiseuse se met à jour

Lorsque j’ai fabriqué ma fraiseuse numérique, il y a certaines pièces, comme le support de DREMEL, qui ont été fabriquées rapidement pour pouvoir être remplacées plus tard.

La machine étant pleinement fonctionnelle, il est temps de l’améliorer en lui fabriquant de nouveaux supports de DREMEL en PEHD. Les 2 pièces à fabriquer présentent des profils simples, on va utiliser QCAD pour les dessiner.

 

A part l’espace intérieur qui a été calculé par rapport au diamètre d’une Dremel série 300, le reste est un peu dessiné au pifomètre. Vous pouvez télécharger le profil DXF ici dremel_mount.dxf

 

Pour mieux se rendre compte de ce que sera l’objet final, j’ai utilisé l’excellent OPENSCAD pour modéliser en 3D les 2 pièces. Ce logiciel permet de charger des profils 2D en DXF pour les « extruder » et les modifier à volonté. Sa particularité, c’est d’utiliser un langage de définition des objets et non une interface graphique pour dessiner. Rebutant au premier abord, c’est finalement génial, on peut modéliser à la volée des changements de taille, de diamètre de perçage par exemple… sans aucun risque d’erreur de placement.

Voici par exemple le fichier de définition de mes supports.

 

module dremel_mount_top ()
{
	difference()
	{
		dxf_linear_extrude(file="DREMEL_MOUNT.dxf",layer="MOUNT_TOP",height=15,center=true,$fn=100);

		rotate([90,0,0])
			{
				// drill left hole
				translate([40,0,0])
				{
					cylinder(r=2.5,h=100,center=true);
				}
				// drill right hole
				translate([-40,0,0])
				{
					cylinder(r=2.5,h=100,center=true);
				}

			}
			// drill hole
		rotate([0,90,0])
			{
				translate([0,38,0])
				{
					cylinder(r=2.5,h=100,center=true);
				}
			}
	}
}

module dremel_mount_bottom ()
{
	difference()
		{
		dxf_linear_extrude(file="DREMEL_MOUNT.dxf",layer="MOUNT_BOTTOM",height=15,center=true,$fn=100);

		rotate([90,0,0])
			{
				// drill left hole
				translate([24,0,0])
				{
					cylinder(r=2.5,h=100,center=true);
				}
				// drill right hole
				translate([-24,0,0])
				{
					cylinder(r=2.5,h=100,center=true);
				}

			}
		// drill hole
		rotate([0,90,0])
			{
				translate([0,22,0])
				{
					cylinder(r=2.5,h=100,center=true);
				}
			}
	}

}

dremel_mount_bottom();
translate([0,0,100])
{
	dremel_mount_top();
}

Et voilà le rendu final dans OpenSCAD

Plutôt réaliste non ?

De plus, le logiciel permettant d’exporter au format STL, vous pouvez imprimer les pièces en 3D si vous disposez d’une Reprap ou d’une MakerBot.

 

Pour usiner mes pièces, il faut transformer le profil en fichier de découpe interprétable par le logiciel EMC, c’est le langage G-CODE. J’ai utilisé l’excellent HeeksCNC pour celà.

 

 

Il est maintenant temps d’envoyer le fichier G-CODE sur la fraiseuse.

Une chute de PEHD de 15 mm est solidement fixée sur la table de fraisage. C’est parti pour une quinzaine de minutes d’usinage.

Le résultat final est à la hauteur de mes espérances

 

Il ne reste plus qu’à usiner la deuxième pièce et à monter le tout sur la machine, à la place de l’ancien système, peu pratique et peu esthétique.

 

Le projet ODCNC continue d’avancer, j’enrichis petit à petit la documentation au fur et à mesure de l’utilisation de la fraiseuse.