Utilisation de LINUXCNC pour Machine Fil Chaud XYUV

  • Auteur de la discussion SkippyLeChat
  • Date de début
S

SkippyLeChat

Compagnon
Après avoir cherché sur le net, et avoir galéré sur la traduction de posts en anglais plus ou moins clairs, je vous propose une méthode pour piloter une machine fil chaud XYUV avec l'interpréteur GCode LinuxCNC (dont la qualité -fabuleuse - et le prix -rien- ont tout pour séduire)
Cette ouverture au GCode et la souplesse qui va avec, ouvre des perspectives très intéressantes pour sortir des protocoles propriétaires utilisés par la plupart des outils utilisés par les modélistes pour découper leurs ailes et leurs fuselages.
En espérant avoir fait avancé le schmililiblic !

1 - Réaliser une configuration LinuxCnc XYUV

L'utilitaire StepConf permet de définir la configuration d'une fraiseuse utilisant les 3 axes linéaires XYZ et éventuellement l'axe rotatif A. La configuration des axes B,C,D,U,V,W (voir dans la doc LinuxCNC a quoi correspondent ces axes) est possible, mais en allant modifier les fichiers .ini et .hal : c'est ce qui doit être fait pour réaliser une configuration X,Y,U,V :

Etape 1 : Avec StepConf

Créer une configuration XYZA et y définir les affectations de broches et les informations de timing. Configurer en particulier soigneusement les courses X et Y, les Fdc, la commande de chauffe et le palpeur de POM : on ne peut plus y revenir (sauf à tout refaire)

Etape 2 : Modification des fichiers HAL et INI à la main

Les 2 fichiers .ini et .hal sont dans le répertoire <perso>. LinuxCNC.Configs
a)Modifier le fichier INI :
- Il faut définir 8 axes. Pour cela, copier et coller les sections [AXIS_0] à [AXIS_3] et de les renommez en [AXIS_4] à [AXIS_7],
- Dans la section [TRAJ] :
. Modifier coordonnées de X Y Z A en X Y U V
. Modifier Axes = 8
b) Modifier le fichier HAL
- Changer toutes les occurrences axis.2 en axis.6 et axis.3 en axis.7
- Modifier les lignes « set stepgen.n.position.scale [AXIS_n]SCALE » de façon à ce que :
stepgen.2 soit affecté à [AXIS.6]
stepgen.3 soit affecté à [AXIS.7]
stepgen.0 reste affecté à [AXIS.0]
stepgen.1 reste affecté à [AXIS.1]
Attention : Ne plus modifier la config avec StepConf : les .ini et .hal seraient écrasés. Personnellement, quand tout est au point, je supprime le fichier stepconf pour éviter toute manip intempestive.
Au lancement LinuxCNC enverra une erreur : il n'arrive pas à interpréter une commande sur l'axe Z passée par le fichier g-Code par défaut (Axis.gnc). Pas grave et facile à corriger en modifiant ce fichier par défaut (sudo gedit etc.)
Les pinailleurs me diront : oui, mais la visualisation de parcours n'affiche que XY ! Et alors, répondrais-je. J'ai la machine réelle sous les yeux.
Bref, tant pis pour la visualisation.

2- Problème de coordination des vitesses de XY et de UV

En gros, la vitesse lente des déplacements G1 passée en G-code par la commande F (en unité/mn) est la vitesse de déplacement de l'addition vectorielle des déplacements XYZ. Dans notre cas XY.
Tout va bien quand le déplacement XY est plus long que le déplacement UV. Tout va mal quand UV est plus long que XY : dans ce cas « UV va trop vite ! ». Pas bon du tout pour la découpe d'une aile avec un fil chaud. Mais il y a des solutions :

a)La moins bonne : faire un fichier G-Code pour chaque aile G et D
Dans ce cas, on a beau tourner le problème (et le polystyrène) dans tous les sens, le début de découpe sera le BA dans un cas et le BF dans l'autre. Ou pire, l'inversion intrado et l'extrado. = Bof ! Et puis, avoir 2 fichiers ne simplifie pas vraiment l'archivage et est une source d'erreur.

b)Inverser les axes XY et UV
On oublie le croisement au niveau des câbles moteur (!). Par contre, l'inversion pourrait être faite physiquement au niveau du branchement des Pins du port parallèle : dans mon cas, j'ai une carte d'interfaçage entre une HobbyCnc et le câble venant du PC. Un commutateur électronique et un seul inter de commande ferait l'affaire.
Il y a beaucoup plus simple : réaliser 2 configurations de machine comme décrit en haut. C'est l'affectation les pins du port parallèle différente dans l'une et l'autre qui réalisera le croisement. Dans mon cas, j'ai 2 configurations : « CNC-FilChaud » et « CNC-FilChaud Miroir» dont je peux me servir respectivement pour faire une aile Droite ou une aile Gauche. A l'usage, c'est beaucoup moins compliqué qu'il n'y parait.

c)l'utilitaire "GCode Fil Chaud"
Même avec le croisement XY et UV proposé ci-dessus, le problème n'est pas réglé dans le cas de distances XY et UV différentes dans un sens ou dans l'autre dans le même fichier G-Code. Cela n'arrivera sans doute pas pour des découpes d'ailes (sauf pour les évidements), mais ceux qui réalisent des fuselages peuvent être confrontés au problème.
J'ai réalisé un utilitaire "GCode Fil Chaud" développé en VisualBasic (*) qui modifie le GCode avec un prétraitement : les commandes G1 dans lesquelles XY < UV sont complétées par une commande F qui ralentira l'équipage XY pour ajuster UV à une vitesse normale de découpe.
Exemple :
Si la vitesse de découpe Fdec est F 200 (soit 3.33mm/s)
Arrive une commande :
G1 X 0,0356 Y 0,0866 U 0,3267 V -0,3213
Les distances Dxy = 0,0936 et Duv = 0,4582 (racine de la somme des carrés)
La Vitesse de XY doit alors être corrigée à Fcor = Fdec x Dxy / Duv
La commande G1 est donc complétée par Fcor = 200 x 0,0936 / 0,4582 = 40,87 et devient :
G1 X 0,0356 Y 0,0866 U 0,3267 V -0,3213 F 41
Pour rétablir la situation, la première commande G1 suivante est complétée avec F 200.

Voilà, il y a maintenant tout ce qu'il faut pour réaliser des ailes, des fuselages, etc. Avec un interpréteur de haut niveau tel que LinuxCNC.

Skippy

(*) Cet utilitaire est à disposition pour qui veut ! Suffit de demander..
 
B

Bth

Ouvrier
Bonjour SkippyLeChat,
J'ai suivi un peu la même démarche avec Linux et le '' fil chaud ''. J'ai lu et archivé pas mal de choses mais sans grandes convictions. C'est un peu flou pour moi.Si tu le permet je vais suivre ton aventure. je suis entrain de réaliser une machine de découpe. Il me faut encore un peu de temp pour la finir.La commande des moteurs est faite et je suis entrain de cabler le module pour faire chauffer le fil. J'utilise des vis au pas de 4mm par tours. Pas de doute: c'est LinuxCNC qui va gérer l'ensemble. Et Merci pour ces recherches et la mise au point.

Cordialement.

Bth Thierry
 
S

SkippyLeChat

Compagnon
Tes vis au pas de 4mm ce doit être des trapézoïdales ? J'ai les mêmes sur la fraiseuse et la machine fil chaud. Si tu utilises un écrou, les jeux et les durs pourront nuire à l'ensemble... Moi j'ai opté pour des vis-à-billes-du-pauvre : c'est à dire des roulements positionnés en biais et qui donnent les même résultats qu'une vis à billes à la peau des fesses. Les dimensions de roulements idéales sont :
vis trapézoïdales de 14 : roulement 20x32x7
vis trapézoïdales de 16 : roulement 25x37x7
Avec ce genre de montage j'ai atteint sans peine des vitesses rapide de 100mm/sec. Ça ne vaut pas les entrainements par courroie crantée, mais c'est pas mal et même très suffisant pour une machine d'amateur. J'ai limité à 50mm/sec. Parce que sinon la vis de 1m de long rentrait en transes (napolitaines). Les accélérations/décélérations de LinuxCnc sont alors un grand plaisir pour les yeux et les oreilles ! Les découpes par contre, ça reste du 100 mm/min., mais au moins on à la satisfaction de ne pas perdre de temps sur les déplacements rapides.
Bref, le choix de LinuxCnc me convient parfaitement. Continue et tu ne seras pas déçu. Quand tu en seras aux configs LinuxCnc n'hésite pas à me contacter.
Skippy
 
B

Bth

Ouvrier
Bonjour Skippy,

La mécanique ne me fait pas de soucis. Ce que je vais faire rapidement: c'est de paramètrer Linuxcnc en utiilisant ce que tu préconises. J'ai la marche à suivre et j'ai édité des fichiers ini pour du homming!! Il est vrai que tu a fait tout le travail.

Bonne journée.

Bth Thierry
 
S

SkippyLeChat

Compagnon
Pour rendre à César ce qui est à Jules, la modification des .ini et .hal est décrite en anglais au fin fond du forum LinuxCnC ! Le reste, c'est moi.
Skippy
 
X

xavtronic

Nouveau
Bonjour,

J'arrive peut-être un peu tard après la bataille, mais utilisant LinuxCNC et Cambam en remplacement de Ninos pour le fraisage, je regarde aussi de se côté pour piloter une découpe fil chaud. J'ai testé une grande partie des logiciels pour la découpe de poly, il y a quelques années j'avais réalisé un adaptateur USB pour la MM2001 et Jedicut en collaboration avec Jérôme (développeur de Jedicut).

La raison est toujours la même, la difficulté de trouver un PC adéquat et par expérience l'USB n'est pas la solution pour nos machines finalement. L'arrivée de carte comme la Raspberry Pi ou Beaglebone Black ( https://www.usinages.com/threads/linuxcnc-tourne-sur-la-carte-beaglebone-black.59348/ ) me fait revoir mon approche et j'aimerais pouvoir à terme utiliser ceci pour les CNC.

@skippy:
Est-ce que depuis ton poste tu as évolué dans le principe?

Je me pose pas mal des questions et si tu le permets j'aimerais profiter de ton expérience, car je n'ai plus de machine accessible / fonctionnelle pour tester.

Tu utilises quel logiciel pour générer le gcode (Profili selon ton post ici : http://osegouin.free.fr/forum/viewtopic.php?t=817 )? Car ton explication m'interpelle ici:
J'ai réalisé un utilitaire "GCode Fil Chaud" développé en VisualBasic (*) qui modifie le GCode avec un prétraitement : les commandes G1 dans lesquelles XY < UV sont complétées par une commande F qui ralentira l'équipage XY pour ajuster UV à une vitesse normale de découpe.
Ceci ne devrait-il pas être directement géré lors de la production de gcode? Ou encore LinuxCNC ne calcul pas lui-même justement les vitesses d'interpolation? Ou il se base sur les axes XY?

L'utilisation de XY UV à la place de XY AB est pour contourner l'interpolation rotatif de l'axe A ou il y a une autre subtilité?

Est-ce que pour la commande du fil chauffant tu utilises simplement un contacteur ON/OFF ou c'est régulé en PWM pour avoir une compensation dynamique comme dans d'autre software?



En complément voici quelques liens que j'ai en partie regardés.

Une explication sur l'utilisation de LinuxCNC pour le fils chaud ( https://code.google.com/p/emc2hotwinch/ )

Utilitaire de conversion de fichier *.cut (généré par GMFC) vers gcode ( http://www.sokoll.net/doku.php/pastimes:rc:projects:cnc_foam_cutter:cut2g )


Ici il y a eu un embryon de départ pour cambam ( http://www.cambam.co.uk/forum/index.php?topic=209.0 ).
Je me pose la question s'il n'est pas intéresant de demander au développeur de Jedicut (Jérôme) ou RC-FP (5xProject Roland P. sauf erreur) d'implémenter une sortie de fichier g-code. Il faudrait définir un cahier des charges pour savoir ce qu'il faut exactement (XYZA vs YXUV, vitesse constante ou parcourt précis "G61" vs "G64", control du fil en PWM avec "S", etc).


A+
Xavier

PS: J'ai posté à deux endroits car je ne sais pas ou Skippy suis le sujet
https://www.usinages.com/threads/utilisation-de-linuxcnc-pour-machine-fil-chaud-xyuv.52507/
http://osegouin.free.fr/forum/viewtopic.php?t=817
 
Dernière édition par un modérateur:
S

SkippyLeChat

Compagnon
xavtronic a dit:
@skippy:
Est-ce que depuis ton poste tu as évolué dans le principe?
Non, c'est toujours dans la même config et cela va assez bien. Cela fait quelque temps que je n'ai pas découpé d'aile, mais ça devrait bientôt remettre ça pour un Salto de 5m au 1/3.
xavtronic a dit:
Tu utilises quel logiciel pour générer le gcode (Profili selon ton post ici : http://osegouin.free.fr/forum/viewtopic.php?t=817 )? Car ton explication m'interpelle ici:
J'ai réalisé un utilitaire "GCode Fil Chaud" développé en VisualBasic (*) qui modifie le GCode avec un prétraitement : les commandes G1 dans lesquelles XY < UV sont complétées par une commande F qui ralentira l'équipage XY pour ajuster UV à une vitesse normale de découpe.
Ceci ne devrait-il pas être directement géré lors de la production de gcode? Ou encore LinuxCNC ne calcul pas lui-même justement les vitesses d'interpolation? Ou il se base sur les axes XY?
Toujours Profili, avec l'utilitaire. Cela aurait été bien mieux que ce soit Profili qui fasse directement la correction, mais hélas ! Comme il faut bien avancer, je fais avec mon utilitaire.
Sinon, pour des bricoles comme des supports de fuselage de caisse de transport ou autres poissons en polystyrène pour amuser la galerie, j'ai une macro en VB sous Autocad qui me génère un Gcode où les déplacements XY et UV sont symétriques.
A propos de XYUV vs XYAB et de la nécessiter de corriger les vitesses :
Avec LinuxCNC : XYZ sont 3 axes linéaires principaux et UVW sont 3 axes linéaires secondaires, asservis à XYZ. Tout cela est interpolé, mais la vitesse de déplacement s'applique au mouvement du point XYZ. Le mouvement du point UVW sera plus rapide si la distance à parcourir est plus grande et plus lent si la distance est plus courte. Les rotations ABC sont elles aussi asservies au mouvement XYZ et s'expriment en degrés.
xavtronic a dit:
L'utilisation de XY UV à la place de XY AB est pour contourner l'interpolation rotatif de l'axe A ou il y a une autre subtilité?
Les vitesses de déplacement en mm/mn s'appliquent aux axes linéraires principaux... l'utilisation de AB ne résoudrait pas le problème, et en poserait d'autres puisque qu'il faudrait en plus calculer la correspondance degrés<=> mm pour faire la correction.
Profili utilise les axes XYUV
xavtronic a dit:
Est-ce que pour la commande du fil chauffant tu utilises simplement un contacteur ON/OFF ou c'est régulé en PWM pour avoir une compensation dynamique comme dans d'autre software?
J'ai une alimentation du fil chaud en PWM, mais en fait je fonctionne maintenant en tout ou rien : en découpe d'aile, je vais à la vitesse maximum à l'emplanture en restant dans le domaine rayonnement, et au saumon je compense la vitesse plus faible par une épaisseur de fil plus forte. Les profils n'étant pas fondamentalement différents, les vitesses sont à peu près constantes.
Je ne suis pas très convaincu par les dispositifs de compensation dynamique... Mais je peux changer d'avis, il suffit de me convaincre 8-)
xavtronic a dit:
Je me pose la question s'il n'est pas intéresant de demander au développeur de Jedicut (Jérôme) ou RC-FP (5xProject Roland P. sauf erreur) d'implémenter une sortie de fichier g-code. Il faudrait définir un cahier des charges pour savoir ce qu'il faut exactement (XYZA vs YXUV, vitesse constante ou parcourt précis "G61" vs "G64", control du fil en PWM avec "S", etc).
Je suis tout disposé à collaborer ! En particulier sur le principe de la correction des vitesses nécessaire à LinuxCNC
XYAB vs XYUV => réponse plus haut
vitesse constante vs parcourt précis => compte tenu des faibles vitesse de découpe (60 à 90mm/mn), la différence pratique est minime.

A ta disposition pour creuser le sujet.
 
Dernière édition par un modérateur:
X

xavtronic

Nouveau
Bonjour,

Merci pour ces précisions concernant LinuxCNC.

Concernant ton module PWM pour le fil chaud, tu l'as réalisé toi-même ou tu aurais une référence de commande?

Je vais essayer de reprendre contact avec Jérôme sur son site ( http://www.aeropassion.net/index.php ) afin de voir s'il y a une solution simple pour obtenir le g-code depuis Jedicut. Je sais qu'il a mis les plugins de Jedicut en projet open source, mais je n'ai pas regardé en détaille les possibilités.

http://www.aeropassion.net/leblog/post/2009/12/Les-plugins-de-Jedicut-en-open-source

http://www.aeropassion.net/leblog/pages/Comment-developper-un-plug-in

https://code.google.com/p/jedicut-extension/

http://www.aeropassion.net/forums/list.php?19


Je pense qu'il serait également intéressant de demander au développeur de RC-FP / Complexe ( http://5xproject.dyndns.org/5XProject/tiki-index.php?page=Logiciel+RP-FC ) s'il est prêt à apporter l'export en gcode depuis son logiciel.

Sinon pour te convaincre de la nécessité de la chauffe dynamique, c'est tout simple. Si tout est prévu et fonctionnel, utilise là :)! Je pense que pour des formes et découpes complexes c'est un plus indéniable, mais je dois avouer manque beaucoup d'expérience.

Tu es déjà inscrit sur le liste de diffusion de découpe CNC sur Yahoo? Car se sera le plus simple pour contacter le développeur de RC-FP.

Si tu es d'accord on s'échange nos adresses e-mail en privé pour discuter de certains points.

A+
Xavier

PS: Tu penses quoi du plugin Cambam? Il donne également les sources dans le dernier post ( http://www.cambam.co.uk/forum/index.php?topic=209.0 )
 
Dernière édition par un modérateur:
S

SkippyLeChat

Compagnon
xavtronic a dit:
Concernant ton module PWM pour le fil chaud, tu l'as réalisé toi-même ou tu aurais une référence de commande?
C'est une bricole perso avec un PIC... S'il fallait remettre le nez dedans, je ferais mieux :sad: avec Arduino par exemple.
De toute façon, Profili ne gèrant pas la chauffe (sauf erreur) : mon Gcode ne contient donc que des commandes on/off.
xavtronic a dit:
xavtronic a dit:
Tu es déjà inscrit sur le liste de diffusion de découpe CNC sur Yahoo? Car se sera le plus simple pour contacter le développeur de RC-FP.
xavtronic a dit:
PS: Tu penses quoi du plugin Cambam? Il donne également les sources dans le dernier post ( http://www.cambam.co.uk/forum/index.php?topic=209.0 )
Comme je me suis retrouvé avec un ensemble opérationnel convenant à mes besoins, je suis passé à d'autres sujets et ne me suis pas tenu au courant de ce qui se faisait. Je vais regarder tout cela (je ne connaissait pas l'existence de ce groupe Yahoo) et en particulier le pluggin Cambam dont je suis un adepte inconditionnel pour l'utilisation de ma CNC.
xavtronic a dit:
Je pense qu'il serait également intéressant de demander au développeur de RC-FP / Complexe ( http://5xproject.dyndns.org/5XProject/tiki-index.php?page=Logiciel+RP-FC ) s'il est prêt à apporter l'export en gcode depuis son logiciel.
Ton idée d'écrire un cahier des charges de ce qu'on demande comme export GCode est la bonne. On commence par ça et ensuite on a un support sérieux pour faire une demande aux développeurs : c'est le seul moyen pour les "accrocher". L'auteur de GMFC pourrait aussi être sollicité.
J'avais même un temps imaginé faire une interface graphique multi-plateforme. En effet, le fait de devoir passer d'une machine Windows pour l'interface graphique (profili dans mon cas) à Linux pour la découpe est lourd. J'avais regardé du côté d'Ecclipse comme IDE, mais je suis trop maqué avec VB et j'ai renoncé (j'ai pas 4 bras non plus :-D et comme avoir des machines fait qu'on a plein de copains...). L’intérêt du multiplateforme serait de satisfaire aussi les besoins d'utilisateurs d'autres interpréteurs GCode sous Windows.

Je t'envoie mon adresse mail en MP parce qu'on va finir par bassiner les autres avec un sujet assez marginal par rapport à l'usinage ! La découpe fil chaud ne déchaîne pas les passions !
 
Dernière édition par un modérateur:
C

chtipanda

Apprenti
si si on peut faire des choses avec une fil chaud
quand on regarde le dieux de la fil chaud
papykilowatt .ce qui freine je pense c est la complexité d utilisation pour arrivé a ce servir correctement d une fil chaud il faut expérimenté suivant sa configuration ,je rejoint skippylechat quand la config fonctionne pour son utilisation on ne touche plus et on profite enfin de sa cnc :wink:
 

Sujets similaires

L
Réponses
5
Affichages
743
looping40
L
J
Réponses
1
Affichages
666
lolo
S
Réponses
18
Affichages
2 287
francois23
F
B
Réponses
4
Affichages
15 236
FTX
D
Réponses
45
Affichages
1 769
sébastien62
sébastien62
N
Réponses
4
Affichages
710
BRICOLO
B
Haut