Conversion language de programmation

saimone67
Nouveau
12 Décembre 2008
19
  • Auteur de la discussion
  • #1
Mesdames; messieurs bonjour.

J'ai un petit problème technique, j' aimerais avoir votre avis sur la chose.

Je suis amené assez souvent à manipuler des CNC pour travailler du bois.
Ces machines utilisent un language propre à leur système.
Ces programmes sont édités via un software de FAO (type conversationnel MAZATROL pour Mazak par exemple).

Comme toujours, avec ces programmes, une utilisation pour formes ou usinages complexes est innapropriée pour ne pas dire incompatible.
Pour cela, je suis forcé de programmer via logiciel de FAO traditionnel (type TOPSOLID, MASTERCAM, ARTCAM ou autres)

Cependant ces logiciels éditent des programmes dont la syntaxe est en iso "pur".

Malheureusement, je peux lire ces programmes dans ma machine.

Je suis donc en train de voir comment je pourrais convertir des programmes iso dans ma machine.
En surfant sur le net, je suis tombé là dessus :

création de post processeur

Il serait possible de créer un post processeur permettant de "traduire" de l'iso en language utilisé par ma machine.

Est ce que quelqu'un aurait déjà utilisé WINPOST ?
Est-ce vraiment la bonne solution?

Merci pour vos réponses :)



Ps: voici la syntaxe des programmes lus par mes machines:

TPA\ALBATROS\EDICAD\01.00:291:r0w0h0
::SIDE=1;
::UNm DL=300 DH=300 DS=50 J'ai remarqué qu'ici sont renseignées les dimensions du brut
OFFS{
#0=0|0
#1=0|0
#2=0|0
#3=0|0
#4=0|0
#5=0|0
#6=0|0
#7=0|0
}OFFS
VARV{
#0=0|0
#1=0|0
#2=0|0
#3=0|0
#4=0|0
#5=0|0
#6=0|0
#7=0|0
}VARV
VAR{
}VAR
SPEC{
:: ATTR=%;0
}SPEC
OPTI{
}OPTI
LINK{
}LINK
PREV{
}PREV
SIDE#1{
W#89{ ::WTs WS=1 #8015=0 #1=50 #2=50 #3=-2 #201=1 #203=1 #205=1000 #1001=100 #9521=0 #8101=0 #8096=0 #40=2 #46=1 #8135=0 #8136=0 #8180=0 #8181=0 #8185=0 #8186=0 #9511=0 #9512=0 }W
W#2201{ ::WTl #8015=1 #1=150 #42=0 }W les trois lignes précédentes concernent l'arrivée d'un outil, la plongée, ainsi qu'une avance en X de 150 mm
}SIDE
SIDE#3{
}SIDE
SIDE#4{
}SIDE
SIDE#5{
}SIDE
SIDE#6{
}SIDE
 
saimone67
Nouveau
12 Décembre 2008
19
  • Auteur de la discussion
  • #3
Salut jeanluc, tout d'abord, merci de m'avoir répondu.

J'ai fait un programme comme tu me l'as demandé.

Brut: 150x100x30
Un contour de rectangle centré au milieu de la pièce, dimensions: 100x50, profondeur 5mm.
L'outil séléctionné est le nr1000. (l'équivalent en iso T1000D1000 M6).

J'ai une option dans mon logiciel qui me permet de traduire une partie du programme en ASCII.

La version ASCII OFF:


TPA\ALBATROS\EDICAD\01.00:291:r0w0h0
::SIDE=1;
::UNm DL=150 DH=100 DS=30
OFFS{
#0=0|0
#1=0|0
#2=0|0
#3=0|0
#4=0|0
#5=0|0
#6=0|0
#7=0|0
}OFFS
VARV{
#0=0|0
#1=0|0
#2=0|0
#3=0|0
#4=0|0
#5=0|0
#6=0|0
#7=0|0
}VARV
VAR{
}VAR
SPEC{
:: ATTR=%;0
}SPEC
OPTI{
}OPTI
LINK{
}LINK
PREV{
}PREV
SIDE#1{
W#89{ ::WTs WS=1 #8015=0 #1=25 #2=50 #3=-5 #201=1 #203=1 #205=1000 #1001=100 #9521=0 #8101=0 #8096=0 #40=1 #46=1 #8135=0 #8136=0 #8180=0 #8181=0 #8185=0 #8186=0 #9511=0 #9512=0 }W
W#2201{ ::WTl #8015=1 #2=25 #42=0 }W
W#2201{ ::WTl #8015=1 #1=100 #42=0 }W
W#2201{ ::WTl #8015=1 #2=-50 #42=0 }W
W#2201{ ::WTl #8015=1 #1=-100 #42=0 }W
W#2201{ ::WTl #8015=1 #2=25 #42=0 }W
}SIDE
SIDE#3{
}SIDE
SIDE#4{
}SIDE
SIDE#5{
}SIDE
SIDE#6{
}SIDE



La version ASCII ON:


TPA\ALBATROS\EDICAD\01.00:291:r0w0h0
::SIDE=1;
::UNm DL=150 DH=100 DS=30
OFFS{
#0=0|0
#1=0|0
#2=0|0
#3=0|0
#4=0|0
#5=0|0
#6=0|0
#7=0|0
}OFFS
VARV{
#0=0|0
#1=0|0
#2=0|0
#3=0|0
#4=0|0
#5=0|0
#6=0|0
#7=0|0
}VARV
VAR{
}VAR
SPEC{
:: ATTR=%;0
}SPEC
OPTI{
}OPTI
LINK{
}LINK
PREV{
}PREV
SIDE#1{
SETUP WS1 EG0 X25 Y50 Z-5 TMC1 TR1 T1000 TP100 ROT0 EGL0 MLT0 DN1 DNR1 DNI0 DNO0 INEN0 INTP0 OUEN0 OUTP0 P9511=0 P9512=0
L01 EG1 Y25 DVAR0
L01 EG1 X100 DVAR0
L01 EG1 Y-50 DVAR0
L01 EG1 X-100 DVAR0
L01 EG1 Y25 DVAR0
}SIDE
SIDE#3{
}SIDE
SIDE#4{
}SIDE
SIDE#5{
}SIDE
SIDE#6{
}SIDE

J'ai déjà commencé à répertorier des codes que je connais, à savoir:

EG0 G90
EG1 G91
DVAR G40
DVAR0 G41
DVAR1 G42

etc...

Le soucis c'est, que faire avec le restant :wink:
 
JLuc69
Compagnon
19 Juin 2008
1 313
Genas (69)
J'ai l'impression que le langage de la machine est aussi fermé que tous les langages conversationnels.
C'est à dire qu'ils traitent une géométrie 2D sur une profondeur (en fait, ils font du 2D1/2).
Peux tu faire un programme 3D du style :

- appel de l'outil approche à X0 Y0 Z2
- descente travail à Z0
- usinage X100 Y5 Z-10
- usinage Y0
- usinage X0 Y-5 Z0
- remonter rapide Z2
- dégagement
- fin de programme

Sans correction de rayon
 
saimone67
Nouveau
12 Décembre 2008
19
  • Auteur de la discussion
  • #5
C'est tout à fait ça Jean Luc.
C'est du conversationnel, avec lequel je ne peux piloter "que" 2,5 axes simultanément.
J'aimerais utiliser une programme semblable à Artcam pour faire de la gravure, donc le 2,5D me suffit, j'entends par là que la machine me le permet.
Le soucis c'est que ces logiciels n'exportent, la plupart du temps, que des programmes en g code, que je ne peux pas directement ouvrir sur ma machine (ah que je regrette mon ancienne Mazak !!).

Enfin ...

J'ai fait le programme tel que tu me l'as demandé; ça donne cela:

TPA\ALBATROS\EDICAD\01.00:291:r0w0h0
::SIDE=1;
::UNm DL=200 DH=100 DS=19
OFFS{
#0=0|0
#1=0|0
#2=0|0
#3=0|0
#4=0|0
#5=0|0
#6=0|0
#7=0|0
}OFFS
VARV{
#0=0|0
#1=0|0
#2=0|0
#3=0|0
#4=0|0
#5=0|0
#6=0|0
#7=0|0
}VARV
VAR{
}VAR
SPEC{
:: ATTR=%;0
}SPEC
OPTI{
}OPTI
LINK{
}LINK
PREV{
}PREV
SIDE#1{
SETUP WS1 EG0 X0 Y0 Z2 TMC1 TR1 T1000 TP100 ROT0 EGL0 MLT0 DN0 DNR1 DNI0 DNO0 INEN0 INTP0 OUEN0 OUTP0 P9511=0 P9512=0
L01 EG0 Z0 DVAR0
L01 EG0 X100 Y5 Z-10 DVAR0
L01 EG0 Y0 DVAR0
L01 EG0 X0 Y-5 Z0 DVAR0
}SIDE
SIDE#3{
}SIDE
SIDE#4{
}SIDE
SIDE#5{
}SIDE
SIDE#6{
}SIDE


Quelques précisions:

Le point d'arrivée et le point de sortie en rapide est directement geré par la machine.

En fait, la trame d'un programme se déroule comme celà:

-"setup": Choix de l'outil, cote XYZ, le Z ici étant le Z final, correction du rayon
-ensuite viennent les différents profils de l'usinage souhaité (ligne, arc, etc...)

L'arrivée de l'outil et le dégagement se font directement par la machine en arrière plan.
En fonction des dimensions du brut renseigné, elle arrive en rapide à Z sécurité ( en fait c'est l'épaisseur du brut + 5mm ), puis elle descend en travail au Z renseigné dans le setup.
Idem pour le dégagement; arrivée au dernier point programmé, elle remonte en travail à Z sécurité, et dégage en rapide à YO (la position de dégagement est paramétrable hors programme).



Uploaded with ImageShack.us
 
JLuc69
Compagnon
19 Juin 2008
1 313
Genas (69)
Alors, dans ce cas, il n'y a qu'a faire une moulinette sur la partie travail (blocs XYZ) pour la transformer en LO1XYZ...
Et ainsi l'inclure dans le SIDE#1{}
Pour faire les choses bien, il faudrait connaitre les syntaxes pour :
- G1
- G2/G3 avec rayon
- G2/G3 avec centre
- G90/G91
- G40/G41/G42
 
saimone67
Nouveau
12 Décembre 2008
19
  • Auteur de la discussion
  • #9
La syntaxe pour l'avance rapide/travail n'est pas directement lisible malheureusement, donc là dessus il va falloir que je trouve une solution.

Pour tout le reste, je me suis déjà fait un excel.

Mon problème majeur étant que via artcam, j'aurais des programmes de plusieurs miliers de lignes.
Je me vois mal corriger la syntaxe de toutes les lignes une par une
:-D
 
La dernière réponse à ce sujet date de plus de 6 mois
Haut