Tous ceux qui ont une CNC en rêvent, alors je me le suis fait
Voila, je cherchais à refaire la carte µstep pour laquelle j'ai un typon, le fichier pdf de Mdog mais pas "la CAO" sous eagle (ou autre)... Ayant déjà percé pendant plus de deux heures les quelques 500 trous du circuit imprimé, j'ai recherché une solution moderne : que ma CNC le fasse pour moi
Ce que j'ai voulu faire était donc à partir du fichier pdf arriver à générer le fichier Gcode de perçage.
Le principe est simple :
- extraire l'image du pdf
- repérer les trous sur l'image
- importer les trous sous eagle
- lancer le plugin "pcb-gcode"
et c'est tout
Bon ça c'est la théorie; mais j'ai eu un peu de mal à la mettre en pratique ...
extraire l'image du pdf :
ça c'est facile il suffit de zoomer un maximum pour avoir une image bien nette (zoom entre 800% et 1000%) et copier dans le presse papier la sélection
préparer l'image
sous photoshop (ou équivalent) il suffit de prendre la baguette magique et de sélectionner la zone blanche de l'image, puis de la "couper" en la remplaçant par du noir. Il ne reste alors que les pastilles en blanc sur fond noir.
Un coup de seuillage pour ne vraiment garder que deux niveaux (noir et blanc)
et on sauvegarde cette image (en mode RVB au format PNG) (vous verrez pourquoi plus tard !
repérer les coordonnées des trous
Un trou dans le circuit se traduit par un cercle sur l'image. Il reste donc à trouver un traitement d'image adapté permettant de détecter les cercles.
Comme c'est un peu mon métier, je me suis orienté vers
la transformée de Hough qui permet de faire ça (de façon un peu lourde mais efficace).
Restait à trouver un soft pour faire la transformée de Hough
Un coup de Google et hop un freeware :
HoughCircleDetect
On ouvre l'image on essaye un peu et les trous sont détectés !
Bon il reste à sauvegarder leur position dans l'image...
La fonction n'existant pas... j'ai contacté Florian Andersen (auteur du soft) qui fort sympathiquement la créé pour moi (Merci Florian)
Il suffit alors de faire un clic droit dans la liste des trous et on sauvegarde un ficher .cvs qui s'ouvre avec Excel.
traiter la liste des trous
Il reste donc à transformer ce ficier en un autre (un fichier script) que sait avaler Eagle.
J'ai créé un petit tableur excel qui permet de faire ça (presque simplement).
Il suffit d'ouvrir ce fichier avec Excel (
les macros doivent être autorisées...)
puis de cliquer sur la flèche bleue pour importer le fichier .cvs issu de HoughCircleDetect
puis d'exporter le résultat sous forme de script pour eagle en cliquant sur le smiley
Comme indiqué, il vous faudra ouvrir le fichier avec notepad et supprimer les caractères guillemets "...
puis sauvegarder avec l'extension .scr (pour "script").
import sous Eagle
Eagle est un programme (un peu complexe) de CAO pour circuit imprimés. Une version freeware existe et est largement suffisante pour faire ce qu'on souhaite

.
Téléchargez là et installez là en mode "freeware".
Lancez Eagle, créez un nouveau projet et une nouvelle carte (new board)
et importer le fichier script
Vous avez (enfin) tous les trous de votre pcb sur l'écran
S'il en manque un ou deux (sur 550) il suffit de les remettre !
calibration
Un lecteur averti aura remarqué qu'il y a des cellules "échelle x, échelle Y, offset x et Offset Y" dans le tableur excel. ça sert à calibrer votre ficher afin que les trous "tombent où il faut".
Une astuce consiste à positionner sur votre pcb un Circuit intégré qui vous servira d'échelle.
Sachant que le pas d'un CI est de 2,54mm, il suffit d'afficher les coordonnées des points correspondants aux pattes et d'en déduire l'échelle x et Y (qui a priori doivent être identiques).
Pour ce faire cliquez sur le bouton "i" dans la barre de bouton à gauche et sélectionnez une patte, vous devriez voir apparaître ses coordonnées x, y en mm (avec le facteur d'échelle précédemment saisi dans Excel)
Faites la même chose pour une deuxième patte, puis une règle de trois vous donnera le facteur d'échelle. Vous pouvez aussi appliquer un offset en x et y pour décaler le pcb dans son ensemble (mais ça ne sert pas à grand chose sauf à se caler sur un multiple de 2,54mm).
Le résultat est plutôt très satisfaisant comme vous pouvez en juger :
Les petits trous font 0,5mm de diamètre... et il y en a beaucoup !
Convertir en Gcode
Il existe un plugin d'Eagle qui a également le bon goût d'être freeware et qui fait du Gcode parfaitement (pratique aussi pour la gravure anglaise).
Il s'agit de pcb-Gcode.
Téléchargez le, dézippez le et copiez le contenu dans le dossier "ulp" d'Eagle.
Il suffit de le configurer en tapant run pcb-gcode --setup
et votre Gcode est enfin généré. Il est accessible dans le dossier "projet" d'Eagle
et s'ouvre tout seul avec le logiciel de FAO que vous voulez
Désolé d'avoir été un peu long, mais j'y ai passé du temps alors autant que ça serve à d'autres !
Si vous connaissez des solutions plus simples je suis preneur
JP
Voir la pièce jointe auto_drill.ziple fichier de perçage de la carte µstep-4axis et le tableur excel