EMC2 tuto complet

  • Auteur de la discussion Poussin
  • Date de début
P

Poussin

Apprenti
Bonjours à tous,

Un tuto sur EMC2 est en ligne sur le site ID-Conception :-D , (enfin presque il me manque quelque image et vidéo sur l'usinage, je pense avoir le temps de faire ça se weekend :wink: )

Il est très complet, il se décompose en 5 parties :
Présentation de EMC2
Interface EMC2
Installation de EMC2
Configuration de EMC2
Utilisation de EMC2

Avis perso
après avoir essayé EMC2 et Mach3, je vous conseil fortement EMC2.
Il y a tout se dont vous avez besoins pour faire fonctionner votre machine ID-CNC ou tout autre machine commandé par port //.



Bruno.
 
Dernière édition:
H

horsot

Compagnon
Bonjour Bruno,

Beau tutoriel, bravo!

Comme tu t'en doutes :wink: j'ai 3 remarques (encore):

1 - Un "détail", dans ta page présentation il y a :
"L'autre particularité, c'est qu'il tourne sous linux, avec un noyau temps réel. Ainsi, les communications avec le port parallèle peu se faire avec une latence extrêmement faible"
La latence (retard) entre le processeur et le port parallèle ne dépend pas du logiciel mais de la structure matérielle, dans le cas du port // la latence est négligeable pour notre application (temps réel ou non). De plus le fait que le système d'exploitation soit "temps réel" donne une latence constante mais pas nécessairement faible, c'est le "Jitter" (les variations de latence) qui doit être le plus faible possible. En effet de manière générale la latence et, en général, les performances d'un système temps réel sont dégradé par rapport à un système classique. On peut comparer un système temps réel à un métronome, l'important c'est qu'il soit régulier pour entendre une mélodie correcte (pas qu'il soit rapide et irrégulier).

3- Une autre remarque, toujours dans la rubrique présentation : "Décélération entre 2 lignes"!?! Peux-tu détailler, je n'ai pas ce genre de phénomène et j'en ai jamais entendu parlé dans la liste de diffusion (où il discutent de point autrement plus pointus et fins). De plus EMC2 bufferise et préinterprête les lignes de G-codes afin de ne pas avoir de "blanc" dans la trajectoire. Pour tes exemples simples, l'ensemble du Gcode est en mémoire et est déjà interprété dès le départ du cycle.
Je vois une raison à cette décélération : l'accélération de tes axes est trop faible et lors de changement de direction (entre 2 lignes ou dans les trajectoires courbes) EMC2 limite la vitesse d'usinage pour en attendant que les axes aient atteint leur vitesse de croisière afin de respecter au mieux la trajectoire. Je te conseille d'essayer avec une accélération (bien) plus importante. Pour te convaincre que les "lignes" n'ont rien à voir avec ton souci, essaie de faire de petits segments (des centaines voir plus si tu veux) tous colinéaires et tu verras qu'il n'y a pas de ralentissement. Il y a une autre solution pour "gagner" en vitesse de trajectoire c'est de jouer avec les mots :
____"G61" trajectoire exacte, ie suivi de la trajectoire au mieux possible)
____"G61.1" point stop exact, ie la machine s'arrête brièvement à chaque fin de trajectoire)
____"G64 P- Q-" mode continu, qui te permettent d'être plus "laxiste" sur le suivi de trajectoire d'une tolérance "P" (il coupe un peu les coins) et ainsi limitant les ralentissements (utile pour les machine à fil chaud par exemple). L'option "Q" permet de simplifier la trajectoire (segments colinéaire, arcs en segments,...) tout en restant dans la tolérance "P".

3 - Une autre remarque, dans ta page "Configuration". Ubuntu 8.04 est hardy heron et non dapper, je crois qu'il y a eu inversion (mauvais script)? Le problème de ce script c'est qu'il rajoute un nouveau dépôt sans enlever l'ancien... Ça ne doit pas poser de soucis mais ce n'est pas propre de laisser de vieux dépots actif...

Sinon le reste me semble bon, en tout cas merci de tes contributions continue comme ça!

Comptes-tu continuer la série de tutos pour couvrir les aspects plus avancés (fichier de configs, HAL, Pyvcp,...)?

A bientôt

Xavier
 
W

wika58

Compagnon
Super l'idée de ce tuto... :smt038

Je vais le potasser car je débute sur EMC2.
J'ai eu bcp d'aide pour la configuration, mais pour me lancer dans l'utilisation, cela me sera bien utile... :roll:
 
P

Poussin

Apprenti
Oui tu me l'avais dit mais je n'ai pas eu le temps de modifier les pages, je suis très très pris en se moment.

Pour le ralentissement j'ai trouvé, il fallait augmenter la vitesse d'accélération je suis passé de 30 à 300.
L'histoire des fonction P- et Q- sont pas mal, il faut que j'essaie voir si je ne peux pas obtenir un lissage (programmation en ligne droite de forme 3D)

Je ne sais pas quelle version j'ai, celle de base proposé sur le site de EMC2.
Il va bientôt sortir sur la version Ubuntu 9

Perso je n'ai pas le temps de travailler avec ma machine donc découvrir de nouvelle fonction et en sortir un tuto ce n'ai pas prévu pour le moment.
A moins que tu le fasses et je le poste :-D


merci wika58, il y a encore des boulettes qui trainent mais les bases sont là tu pourras faire fonctionner ta machine.
 
D

dh42

Compagnon
Bonjour à tous,

Petite précision concernant les ralentissements de la machine.

La valeur d'accélération est effectivement importante, mais il y a un autre paramètre à prendre en compte si vous utilisez CamBam.

Lors de la conversion en Polyligne (Edit/convert to/polyline) CamBam transforme tout en lignes ou arc, et pour cela il utilise un paramètre définissant la précision de suivie du tracé. Ce paramètre est malheureusement sans unité, autrement dit il ne change pas, que l'on travaille en pouce ou en mm.

Par défaut ce paramètre est réglé sur 0.001, autrement dit, lorsque l'on travaille en mm la précision du tracé n'autorise pas de déviation de plus de 0.001mm :shock: ce qui produit une quirielle de traits très court = Gros fichier G-Code et ralentissement de l'usinage.

Pour info, la même pièce (un cœur) passe de 970 lignes avec 0.001, 250 lignes avec 0.05 et 100 lignes avec 0.1 (sans que je vois la moindre différence sur l'aspect de la pièce) .... et les ralentissements on disparus :-D

le paramètre en question se trouve dans le menu: Tools/options

ligne: SplineToPolylineTolerance. (je tourne avec 0.1 pour du bois)

N'oubliez pas de le remettre à 0.001 si vous travaillez en pouces, sinon vous n'aurez qu'une précision de 2.5mm :eek: (0.1 pouce)

Vous pouvez jouer sur ce paramètre si vous utiliser une version de Mach3 limité à 500 lignes afin de faire maigrir le G-code :wink:

ATTENTION: il faut modifier le paramètre AVANT de commencer à convertir vos traits/splines.

La modif de ce paramètre nécessitera également d'augmenter la valeur de jointure (EDIT/join) sinon les traits ne se raccorderont pas (pour 0.1 en SplineToPolylineTolerance je tourne à 0.2/0.3 en jointure)

++
David
 
H

horsot

Compagnon
Bonjour à tous,
Il me semblait bien que je t'en avais déjà parlé mais je ne savais plus :smileyvieux:

Pour le "lissage" je pense que ça peut marcher.

Pour la version d'EMC2, normalement tu as la dernière la 2.4.3. La version est affichée en haut de la fenêtre d'AXIS (dans la barre). Le gestionnaire de mise à jour d'ubuntu va proposer les mises à jours automatiquement jusqu'à la version 2.5.x d'EMC2. Ensuite il faudra changer le dépot (emc2.4 par emc2.5) dans le gestionnaire de paquet. Ce n'est pas automatique car en général à chaque version mineure (ex: 2.4 => 2.5) il y a des petites incompatibilités de fichiers de configuration qui nécessitent d'être légèrement retouchés pour refonctionner.

Pour la version des scripts il y en a 2, un pour ubuntu "dapper" et un pour "hardy". La version ubuntu 8.04 est la "hardy heron" donc il faut prendre le script correspondant. De toute façon je conseille de mettre à jour la liste des dépots pour passer de la version 2.2 (présente sur le CD par défaut) à la version 2.3 au lieu d'utiliser ces scripts.

Ubuntu propose des versions toute les 2ans à support long (4 ans). les versions (année.mois) 6.04, 8.04 et 10.04 en sont. Il y a des problèmes d'intégration du noyau temps réel dans la dernière version d'ubuntu 10.04 .

Pour ce qui est du tutoriel, en ce moment je n'ai pas beaucoup de temps et pour être honnête je n'ai pas vraiment l'envie de m'y investir car j'ai déjà trop de "chantiers" en cours il faut faire des choix. Par contre si un jour tu l'écris, j'en ferai avec plaisir une relecture/critique (constructive). :wink:

Pour la remarque judicieuse de bh42, j'ai regardé de plus près cet effet de "saturation". Il semblerait que l'interpréteur de gcode ne soit pas temps réel donc ne soit limité que par la puissance de calcul du PC... Il y a de la marge surtout que la trajectoire interprété est pré-bufferisé (des centaines de mouvements segments et arc de cercles) avant d'être "exécuté" par le "contrôleur de mouvement". Par contre ce dernier est temps réel (à 1kHz, servo thread). Il semble ne prendre en compte que le mouvements en cours (un seul) pour savoir s'il est sur la trajectoire en cours, c'est ce point qui me semble limitant. Je pense que ceci pourrait expliquer le phénomène de saturation évoqué par dh42 et doit pouvoir se contourner avec "G64 P- Q-" si on souhaite être plus laxiste sur la trajectoire.

Sources (la première est très intéressante):
*http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?WhyManualWhilePausedIsHard
*http://linuxcnc.org/docs/2.3/EMC2_Developer_Manual.pdf.

Je tien à préciser que je suis loin d'avoir une vison d'ensemble d'EMC2, il y a 2 ans je ne connaissais (presque) rien en CNC. Tout ce que je sais vient de la lecture et relecture des différentes documentations (wiki et doc), de la lecture de la liste de diffusion, des quelques échanges sur l'IRC, de quelques timides excursions dans le code source.

Bonne journée

Xavier
 
A

Anonymous

Guest
Merci pour ces tutos que je vais consulter avidement. J'envisage d'utiliser un poste dédié linux + emc2 pour mon micro tour
 
B

boris

Apprenti
Bonjour, je remonte ce topic car je souhaite savoir si certaines personnes comme moi n'arrive pas à installer emc2, il me parait énormement gourmand et pour cause, il demande au miminum 256mo de ram pour lancer l'install :\ je veux bosser sur un pc qui est équipé de 200mo de ram et j'ai pas envie de devoir racheter de la ram à prix d'or ou de devoir changer de config.

Y'a t il un moyen de pouvoir l'installer sans avoir besoin d'autant de ram ?
 
H

horsot

Compagnon
Bonjour Boris,

boris a dit:
[...] il demande au miminum 256mo de ram pour lancer l'install [...]
Y'a t il un moyen de pouvoir l'installer sans avoir besoin d'autant de ram ?

C'est ubuntu qui demande 256Mo de ram pour fonctionner. Il y a moyen de le faire tourner avec moins mais l'installation devient plus complexe (installation d'un linux + patch noyau en temps réel RTAI + installation d'EMC2). Sinon un méthode peut-être de partir d'un CD "Xubuntu alternate" puis suivre la procédure d'installation manuelle d'EMC2 (voir wiki), ce doit être le plus simple.

Ensuite Je ne sais pas si ta configuration sera capable de faire tourner "AXIS" l'interface graphique 3D de EMC2. Il faudra peut être que tu te rabattes vers une solution plus légère.

En bref, à ta place je ne m'embêterai pas je récupèrerai un vieux PC (ami, famille, benne,...) avec 512Mo de RAM. Tu auras bien d'autres défis à configurer ta machine. :wink:

Bonne continuation

Xavier
 
B

boris

Apprenti
oui je crois que je vais racheter une carte mere un peu plus recente avec un minimum de 512mo de DDR ca sera toujours mieu que ma sd ram PC100 de 200mo actuel
 
B

boris

Apprenti
bon voila j'ai finalement changé de config et ca fonctionne, je vais utilisé ce tutoriel pour commencer à apprendre à me servir d'emc2 car je n'ai jamais utilisé emc2 ni linux, mais ca a l'air vraiment pas mal, je m'interesse aussi à la fonction HAL , y'a t il des tutos ou des topics qui en parle ?
 
X

xi

Apprenti
Pour information, j'utilise un vieux Pentium III 1GHz (?) monté sur une carte mère Abit BH6 avec 640Mo de RAM et un disque dur de 6.4Go.
C'est hyper stable, jamais de plantage, jamais de problèmes et ca coute rien vu l'age que ca a (la carte mère doit dater de 1998 et le processeur un peu plus récent). Le PC est allumé non-stop depuis pas loin de 2 mois avec EMC2 qui tourne pratiquement tous les jours ...
 
E

ewidance

Ouvrier
Bonjour,

Je reviens sur un point cité par horsot et qui ne m'avais pas sauté aux yeux lors de la première lecture. Je cherchait l'origine de problèmes de rapidité, sur des usinages générés avec CAMBAM, et ou la multiplicité des segments (gravure) faisait que la broche n'atteignait jamais la vitesse maximum.

J'ai d'abord optimisé la vitesse d'accélération dans la configuration de la machine sous EMC2, et effectivement cela a été mieux. J'ai aussi testé l'optimisation de la génération des segments comme décrit dans le post de DH42, et effectivement cela était un peu plus rapide et surtout beaucoup plus compact, mais sans être spectaculaire sur certains usinages.

Le fond du problème semble bien que même avec le bon processeur (EMC2) Cambam est incapable de générer toutes les valeurs possibles des Gcodes G61/G64 pour le paramètre d'usinage global 'Velocity mode'.

Effectivement sur EMC2, G64 peut prendre un paramètre P (G64 Px.xx), avec une tolérance (x.xx). Cela active une fonction unique dans EMC2: le 'Naive CAM Detector'. C'est cette fonction qui permet d'optimiser les tracés tant qu'ils restent dans la tolérance indiquée en paramètre à P. Malheureusement CAMBAM ne peut pas générer ce paramètre. Et c'est bien dommage, car là, l'usinage se fait à la vitesse de l'éclair..

Comme il serait dommage d'éditer chaque fichier Gcode à la main pour ajouter ce paramètre, l'auteur de cambam a décrit un work around que je m'en vais décrire ci dessous.

Les post processeurs sont des fichiers XML qui permettent de paramétrer la façon dont le Gcode sera produit.

L'idée est de dupliquer le post processeur d'EMC2, et de le modifier afin qu'il génère un G64 P x.xxx au lieu d'un G64 tout court. La valeur de x.xxx sera par contre fixe, mais nous évitera de modifier systématiquement les fichiers gcode...


Les post processeurs sont dans c:\Documents dans Settings\all users\application data\cambam plus 0.9.8\post.

Dupliquer EMC2.cbpp en EMC2-speed.cbpp, et modifier la ligne:
{$units} {$distancemode} {$velocitymode} {$cuttercomp(off)}

Pour la transformer en :
{$units} {$distancemode} {$velocitymode} P0.05 {$cuttercomp(off)}

Ici, la précision a été fixée à 5 centièmes de mm, ce qui est très largement suffisant pour de la gravure, mais vous pourrez avoir à trouver votre valeur pour vos besoins.

Sélectionner ensuite votre profil post processeur "EMC2-speed", dans le paramètre "Postprocessor" de cambam, et "Velocity Mode" à "Constant Velocity" pour que la génération de gcode produise bien le G64 P0.05 attendu.

Ensuite, c'est miraculeux, ca avoine :wink:
 
D

Domingo57

Ouvrier
Salut, J'épingle ton post, puisqu'il a l'air complet, se sera plus facile pour ceux qui recherchent de l'aide :wink:

bonne nuit
 
L

lapoutre

Ouvrier
Bonjour,
je viens de me familiariser avec CamBam,mais je suis bloqué avec les changement d'outils sur EMC2.
Est ce qu'il existe un tuto ou une video qui explique comment on réinitialise le bout de l'outil dans EMC2.
Merci d'avance
Vincent
 
D

dh42

Compagnon
Salut,

Sous réserve, car je ne connnais pas EMC2, mais je crois que l'on ne peut pas, la machine ne peut pas bouger pendant les changements d'outil comme sur Mach3 ; il faut que tu gère ça via les longueurs d'outils si j'ai bien compris.

++
David
 
G

gerard06190

Apprenti
dh42 a dit:
Salut,

Sous réserve, car je ne connnais pas EMC2, mais je crois que l'on ne peut pas, la machine ne peut pas bouger pendant les changements d'outil comme sur Mach3 ; il faut que tu gère ça via les longueurs d'outils si j'ai bien compris.

++
David


Salut,
Ben voilà comme je procède :
je relève le numéro de ligne.
Au clavier, j'appuie sur la touche "Enter", et de suite "F1" puis "F2" pour pouvoir bouger l'axe Z et changer l'outils. puis faire un toucher de l'outils sur l'axe Z.
Avec la souris je vais à la ligne repérée, clic droit, "démarrer de cette ligne".
Pour l'instant j'ai pas trouvé mieux...
 
J

jacky m

Nouveau
Bonjour
le lien du tuto ne fonctionne plus
quelqu'un sait pourquoi?

Jacky
 
D

drv67

Nouveau
Bonjour,
il semble que le site id-conception.fr soit planté depuis deux ou trois jours.
"403 forbidden"
En espérant un prompt rétablissement car j'ai commandé une CNC à Bruno. :wink:
Cordialement,
DRV67
 
Y

YvesP

Compagnon
Bonjour

Je me trouve embété avec MC2 car le soft ne répond pas comme il devrait et les boutons ne portent pas réelement le même nom que sur ce (superbe) tuto.

Je m'explique
J'ai dessiné une pièce à usiner
je l'ai transformé en Gcode
j'ouvre le code dans MC2
Pour des raisons pratique, je souhaiterais que l'origine de ma pièce se trouve au centre
Je pointe mon centre
Je positionne donc à l'aide d'une pinnule pointue
Je positionne Z de façon à ce que la pinnule soit à la bonne hauteur (pas trop serrée sur le pointage)
Je déplace mes axes X et Y de façon à centrer ma pinnule juste au dessus du pointage

Il ne me reste plus qu'a marquer mes POM
Donc a sélectionner successivement X et Y en cliquant à chaque fois sur ma prise de POM
Mais au lieu de mettre mes axes à zéro, la broche va automatiquement à l'origine machine X et Y donc dans mon cas X- max et Y- Max
Si je sélectionne l'axe Y une fenêtre Popup s'ouvre et me dit que mon origine est déjà placée et si je souhaite la reprendre.

A toutes fins utiles, j'utilise la version 2.4.6 et le bouton "POM des axes" ne s'appelle pas "POM des axes" mais "Prise d'origine générale".
Je sais que c'est une tres ancienne version, mais pour des raisons de compatibilité Ubuntu et de fichiers config, je proférerais ne faire la MAJ que plus tard.

Si vous avez une idée ou une connaissance de cette version merci de me dire pourquoi cela se passe ainsi.

Cdlt
Yves
 
C

carlos78

Compagnon
Bonjour YvesP,

Il me semble qu'il y a une confusion sur l'usage des POM :
- Sur emc2 les POM mettent uniquement en place les origines machines et donc les déplacements max admissibles sur ces axes (tels que paramétrés dans emc2). Les POM ne sont prises en compte par emc2 dans le Gcode d'un programme que pour interdire les limites des déplacements machine . Les POM ne servent donc qu'à balancer très grossièrement le volume de la pièce par rapport aux capacités de la machine.
- Ce sont les zéros des axes de emc2 qui sont utilisés par le Gcode. Ce sont ces valeurs zéros de emc2 qu'il faut règler avec précision avant de lancer le programme.

Le zéro de la pièce au centre ne peut pas se faire directement avec emc2, mais uniquement au moment de la création du gcode (avec par exemple un logiciel comme Cambam). Lorsqu'on récupère un dxf d'une pièce à partir d'une CAO, sa géométrie est souvent décalée, et il faut faire une translation de celle-ci avant de se lancer dans la phase usinage/gcode.

J'espère avoir répondu à ton problème.

Carlos78
 
P

pascalp

Compagnon
Sauf contre-indications grave, il vaut mieux utiliser la dernière version. En cas de doute, l'essayer avec un live CD.

Il y a deux types de références, L' Origine Machine (Le zéro physique des axes) et une origine "décalée" de travail. L'une correspond au POM, l'autre s'obtient avec le bouton "touché" sur chaque axe.

Ce que tu sembles chercher, est une origine décalé.
 
Y

YvesP

Compagnon
OK
Merci à vous deux pour cette réponse rapide :wink:

Je vais donc essayer de mettre ces conseils en application et je reviens vers vous pour vous dire si je m'en sort.

Cdlt
Yves
 
X

xi

Apprenti
Petit complément d'info :
Il faut que tu travailles en coordonnées relatives dans ton GCode (donc mettre G54 au début du programme par exemple). Ensuite tu définis ton origine pièce physique à l'aide du bouton "Toucher", et au niveau de la fenêtre popup qui s'ouvre quand tu appuies sur le bouton, tu veilles à choisir le même système de coordonnées que celui que tu as mis dans ton GCODE (eg G54).

(J'ai survolé le sujet, donc tout ca a peut être déjà été dit)

Comme l'ont dit les autres, le bouton POM sert à faire la prise d'origine Machine, donc à faire une seule fois quand tu allumes.
 
M

mim67

Apprenti
bonjour à tous,

voulant me mettre à LinuxCNC, je tombe sur ce post et les louanges concernant ces tutos ...
Las ! Ils n'y sont plus, ... ou plus exactement, il n'existe plus que 2 tutos sur les 4: Installation et Configuration. :cry:

C'est bien dommage; quelqu'un les aurait-il récupérés avant qu'ils n'aient disparu ?
Ou peut-être y en a-t-il d'autres, plus récents quelque part ?

Merci pour votre aide.

Michel

Poussin a dit:
Bonjours à tous,

Un tuto sur EMC2 est en ligne sur le site ID-Conception :-D , (enfin presque il me manque quelque image et vidéo sur l'usinage, je pense avoir le temps de faire ça se weekend :wink: )

Il est très complet, il se décompose en 5 parties :
- EMC2 Présentation
- EMC2 Installation
- EMC2 Configuration
- EMC2 Interface
- EMC2 Utilisation (bientôt disponible)

Avis perso
après avoir essayé EMC2 et Mach3, je vous conseil fortement EMC2.
Il y a tout se dont vous avez besoins pour faire fonctionner votre machine ID-CNC ou tout autre machine commandé par port //.

Quelques images pour vous donner envi :wink:
Capture-2.png


Capture-3.png


Bruno.
 
M

mim67

Apprenti
Merci DRV67,

je parlais plutôt des tutos LinuxCNC, mais ceux de CAMBAM me seront bien utiles aussi.

Quelqu'un sait-il ou sont passés les tutos de EMC2/LinuxCNC qui étaient hébergés chez ID conception ?

Merci par avance,

M.
 

Sujets similaires

laurenttanguy
Réponses
0
Affichages
1 063
laurenttanguy
laurenttanguy
T
Réponses
36
Affichages
4 988
Tristan l'apprenti
T
M
Réponses
8
Affichages
4 238
Mandrak
M
C
Réponses
80
Affichages
12 683
Comex007
C
D
Réponses
26
Affichages
5 674
lion10
lion10
Y
Réponses
6
Affichages
2 261
yach02
Y
Haut