1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.

Mon logiciel de CNC

Discussion dans 'Discussions générales sur la conception' créé par PCB5, 22 Septembre 2013.

  1. PCB5

    PCB5 Apprenti

    Messages:
    240
    Inscrit:
    20 Décembre 2011
    Localité:
    PARIS
    Mon logiciel de CNC
    Bonjour,
    Je voudrais presenter mon systeme de commande CNC. Il y a quelque temps deja lorsque j'ai commencé avec la CNC, s'est le probleme de trouver un systeme permettant la commande des moteurs depuis mon PC.
    La réponse que j'ai trouvé est composé d'une mini carte USB , d'une carte moteur , et d'un logiciel PC avec un language de programmation .
    Je voudrais parler plus particulierement du language de commande utilisé.
    Ce language que j'appelle GCode amelioré contient les instructions G0 et G1 ordinaires pour commander les deplacements , mais aussi des elements d'un language de programmation avec variables, parametres, constantes, fonctions , boucles etc.
    Par example pour usiner une rainure de clavette sur un axe , j'ecrit :

    #<dx>=8 (clavette de longueur 12 avec fraise de 4
    #<pass>=0.4 (0.4mm de descente par passe
    #<z>=0 (surface de la piece en z=0
    #<profondeur>=2
    g1x0
    g1z0
    #<i>=0
    while [#<z> le #<profondeur>]
    #<z>=#<z>-#<pass>
    g1z#<z>
    if [#<i> eq 0]
    g1x#<dx> (passe a droite
    #<i>=1
    else
    g1x0 (passe a gauche
    #<i>=0
    pause 1
    endif
    g1z0
    g1x0


    Je peux aussi mettre ce programme dans une fonction et un fichier separé clavette.txt

    !clavette sub
    #<dx>=#<1> (dx est passe en premier parametre
    #<pass>=#<2> (profondeur de passe 2ieme parametre
    #<profondeur>=#<3> (profondeur de la rainure 3ieme parametre
    ..... (le programme de taille
    endsub


    et l'appeler à chaque fois que necessaire :

    %include "clavette.txt"
    !clavette call 8 0.4 2


    An autre programme incluant la matrice de transformation des corrdonnées , qui peut changer la taille, l'orientation et la position des objets . De plus , les transformations peuvent êtres combinés à loisir et restaurer la transformation initiale pour le programme suivant.

    3 percages 120° autour d'un cercle :

    pushmat (empile une copie de la transformation d'axe courante
    translate[7,11] (combine une translation le cercle est centré en x=7 et y=11
    %xyrot[120] (combine une rotation de 120°
    G0x16
    execute
    %messagebox["percer ici !"]
    %xyrot[120]
    G0x16
    execute
    %messagebox["percer ici !"]
    %xyrot[120]
    G0x16
    execute
    %messagebox["percer ici !"]
    popmap (restitue la matrice à l'etat initilal


    Autre example:
    Tailler un engrenage sur la fraiseuse avec une fraise à engrenage et une table rotative CNC (branchée sur l'axe z)

    #<N>=16 (engrenage 16 dents
    #<dx>=21 (largeur de l'engrenage 21mm
    #<dx_margin>=3 (espace droite et gauche pour la fraise 3mm
    #<depth>=3.2355 (profondeur de coupe
    #<pass>=0.2 (profondeur d'une passe 0.2mm
    #<dy_far>=-1 (espace devant pour la fraise
    #<j>=0 (compteur j
    #<k>=1 (compteur k
    while [#<k> le #<N>] (pour k<=N donc k compte les dents
    #<r>=[[#<k>-1]*360/#<N>] (angle pour la dent No k
    G0Y#<dy_far> (la fraise s'eloigne
    G0Z#<r> (l'engrenage jusqu'a la dent k
    #<y>=0 (la taille commence en y=0
    while [#<y> le #<depth>] (tant que la profondeur non atteinte
    G1Y#<y> (la fraise va en y
    if [#<j> eq 0] (si la fraise est à gauche
    #<j>=1 (elle va a droite
    G1X[#<dx>+2*#<dx_margin>]
    else
    #<j>=0 (sinon la fraise va a gauche en 0
    G1X0 (la fraise execute un va et vient en x
    endif
    #<y>=[#<y>+#<pass>] (y augmente de la profondeur de passe
    endwhile
    #<k>=[#<k>+1] (on passe a la dent suivante
    endwhile
    G0Y#<dy_far> (c'est la fin la fraise retourne en 0
    G0X0

    Chaque dent est taillée en plusieurs passes puis on continue sur la dent suivante.

    Photo mini carte USB :

    carte_usb.JPG

    Le logiciel PC :

    soft_pc.JPG


    Je pense que ce systeme peyt être interessant pour d'autres lecteurs , peut être surtout e usinage conventionnel et 2D . Mais aussi pour des projets plus importants en raison de la possibilité d'ecrire des librairies de fonctions.

    Les commentaires sont les bienvenus
     
  2. orion-p87

    orion-p87 Nouveau

    Messages:
    27
    Inscrit:
    15 Septembre 2012
    Localité:
    San-Rafeù (Saint-Raphaël dans le Var)
    Mon logiciel de CNC
    Bonsoir,

    Pour savoir quoi en dire, j'aimerai bien connaitre les références de la carte et du soft. Parce que comme ça difficile de juger. Sinon tout ce qui permet l'utilisation "simplifiée" d'une CNC est bon à prendre. Merci de donner plein de détails sur ce matériel.
     
  3. PCB5

    PCB5 Apprenti

    Messages:
    240
    Inscrit:
    20 Décembre 2011
    Localité:
    PARIS
    Mon logiciel de CNC
    Oh c'est un materiel que je fabrique moi même à 100% a titre amateur.
    La carte USB aussi. La carte USB fonctionne sans driver ni DLL (peripherique USB standard).
    Le soft PC est aussi simple , sans installation , il suffit de copier le .exe sur le bureau et de le lancer.
    Il supporte plusieurs profils de machine (Un peu comme Mach3), il siffit d'ajouter le nom du fichier de configuration dans le raccourci.
    il supporte les axes asservis (plusieurs moteurs sur un même axe), le nombre d'axe maximum et 6. (axe x,y,z et a,b,c du point de vue GCode).

    le soft pc integre un planificateur de trajectoire , tres serieux qui calcule les vitesses adaptee pour la trajectoire des moteurs, mais c'est la carte USB qui genere les signaux (impulsions).

    Le soft PC a de nombreuses fenetres de configuration : vitesse et acceleration independante sur les 6 axes , Brochage du connecteur de sortie (avec signaux Enable, DIR+STEP, brôche, EStop, et même Clear pour les cartes qui auraient ce signal.

    De plus le Jog direct au clavier (fleches pour x,y et PageSuiv/PagePrec pour z) + Jog fin.

    Des boutons Home et Clear (remise a zero de la position).

    Je dirais que ces fonctions existent dejà dans Mach3, mais ici , ce n'est pas Mach3 et c'est USB directement.
     
  4. PCB5

    PCB5 Apprenti

    Messages:
    240
    Inscrit:
    20 Décembre 2011
    Localité:
    PARIS
    Mon logiciel de CNC
    Je voudrais donner un autre example pour montrer la souplesse du systeme . Ci -joint une fonction qui avec mon soft va bouger en x, y suivant une courbe quadratique (courbe arrondie avec un centre de courbure). Mon soft permet de réaliser ce mouvement en effet simplement à partir de son expression mathematique. Le planificateur de trajectoire du soft va cumuler tous les mouvements pour en faire une trajectoire executée avec une bonne vitesse (pas d'erret a chaque segment bien evidemment). Comme a chaque courbe approchée par un nombre fini d'iterations, une precision est necessaire , ici 0.1mm est choisi et placé dans la variable #<precision>



    (quadrato)
    ((1-t)^2 P0 + 2t(1-t )P1 + t^2 P2)
    (quadrato xc,yc,xe,ye)
    !quadrato sub
    #<xc>=#<1>
    #<yc>=#<2>
    #<xe>=#<3>
    #<ye>=#<4>
    #<x0>=[curpos[0]]
    #<y0>=[curpos[1]]
    #<precision>=0.1
    #<d1>=sqrt[[#<xc>-#<x0>]*[#<xc>-#<x0>]+[#<yc>-#<y0>]*[#<yc>-#<y0>]]
    #<d2>=sqrt[[#<xe>-#<xc>]*[#<xe>-#<xc>]+[#<ye>-#<yc>]*[#<ye>-#<yc>]]
    #<N>=fup[[#<d1>+#<d2>]/#<precision>]
    #<i>=1
    while [#<i> le #<N>]
    #<t>=#<i>/#<N>
    #<x>=[1-#<t>]*[1-#<t>]*#<x0>+2*#<t>*[1-#<t>]*#<xc>+#<t>*#<t>*#<xe>
    #<y>=[1-#<t>]*[1-#<t>]*#<y0>+2*#<t>*[1-#<t>]*#<yc>+#<t>*#<t>*#<ye>
    G1X#<x>Y#<y>
    #<i>=#<i>+1
    endwhile
    endsub
     
  5. fred250

    fred250 Compagnon

    Messages:
    2 904
    Inscrit:
    8 Mai 2007
    Localité:
    Vienne Isére 38
    Mon logiciel de CNC
    ça a l'air d’offrir des possibilités qui peuvent être intéressante, mais c'est quand même pas a la porter du premier venu :shock:
     
  6. Atch311

    Atch311 Apprenti

    Messages:
    223
    Inscrit:
    8 Juin 2011
    Localité:
    Nord Est
    Mon logiciel de CNC
    Ca à l'air très intéressant, surtout le fait de pouvoir faire une bibliothèque d'usinage.

    Mais, jJe suis d'accord que ça ne doit pas être à la portée du 1er débutant venu.

    Avec un petit tuto, qui expliquerait le déroulement du programme et des exemples d'usinage simples détaillés avec, entre autre, enregistrement et recherche de variables, même les débutants y arriveraient.

    Un petit post pour l'homme, un grand post pour le CNCiste!
     
  7. PCB5

    PCB5 Apprenti

    Messages:
    240
    Inscrit:
    20 Décembre 2011
    Localité:
    PARIS
    Mon logiciel de CNC
    Voila comment cela s'utilise :
    1/ Rediger le programme , l'utilisateur a de nombreuse aides pour tester et valider le programme
    par example
    %MessageBox["La variable i est #<i>"] ou %MessageBox'[la position courante est #curpos[0] #curpos[1]"]
    MessageBox_i.jpg
    MessageBox_pos.jpg
    Aussi les Messages Debug qui s'affichent dans la fenetre debug sans interruption du programme
    (Debug La variable i est #<i>
    (Debug la position courante est [curpos[0]] [curpos[1]]

    2/ Lancer le programme par le bouton "RUN"
    bouton_run.jpg
    Le programme se compile (il se transforme en fichier machine qui contient les mouvements detaillés , puis le programme se lance .
    running.jpg

    Il fait savoir que la compilation a toujours lieu moteurs à l'arret apres une instruction "EXECUTE" ou "MESSAGEBOX" ou "PAUSE" ou d'autres instructions similaires qui forment un point d'arret dans le programme. Si aucune des instructions precedentes n'est dans le programme , alors le programme est compilé à 100% avant d'etre executé. Ce que je veux dire, c'est qu'il n'y a pas de limite à la complexité du programme (a part la taille de disque du PC) puisque la compilation n'interfere pas sur l'execution.
     
  8. PCB5

    PCB5 Apprenti

    Messages:
    240
    Inscrit:
    20 Décembre 2011
    Localité:
    PARIS
    Mon logiciel de CNC
    Je voudrais aussi montrer que le programme GCode detecte les erreurs du programme (Type d'erreur et No de ligne et fichier source ) ce qui facilite la mise au point du programme
    error_message.jpg
    error_line.jpg


    De plus , le programme integre une fenetre de previsualisation avec zoom, rotation , changement de point de vue en 3D , choix d'axe visualisé etc

    Soit le programe suivant qui decoupe un rectangle arrondi de dimension 30 x 40mm centré en 0,0 en une passe à z=0, l'arrondi est de 5mm sur les 4 cotes.

    %include "librairie.txt"
    (round_rect
    (round_rect w,h,r,z
    !my_round_rect sub
    #<w>=#<1>
    #<h>=#<2>
    #<r>=#<3>
    #<z>=#<4>
    g0z[#<z>+1]
    g0x[-#<w>/2]y[-#<h>/2+#<r>]
    g1z#<z>
    g1x[-#<w>/2]y[#<h>/2-#<r>]
    !quadrato call [-#<w>/2] [#<h>/2] [-#<w>/2+#<r>] [#<h>/2]
    g1x[#<w>/2-#<r>]y[#<h>/2]
    !quadrato call [#<w>/2] [#<h>/2] [#<w>/2] [#<h>/2-#<r>]
    g1x[#<w>/2]y[-#<h>/2+#<r>]
    !quadrato call [#<w>/2] [-#<h>/2] [#<w>/2-#<r>] [-#<h>/2]
    g1x[-#<w>/2+#<r>]y[-#<h>/2]
    !quadrato call [-#<w>/2] [-#<h>/2] [-#<w>/2] [-#<h>/2+#<r>]
    endsub
    !my_round_rect call 30 40 5 0

    Voici une vue dans la fenetre de visualisation

    previsu.jpg
     
  9. fredcoach

    fredcoach Compagnon

    Messages:
    621
    Inscrit:
    11 Janvier 2013
    Localité:
    Hautes Alpes
    Mon logiciel de CNC
    Intéressant.
    Non. Très intéressant.
    La définition du langage est-elle publique?
    Et les sources?
    Je n'aime pas du tout l'USB dans un milieu d'atelier, trop sensible aux parasites.
    C'est donc la partie programmation qui m'intéresse.
     
  10. PCB5

    PCB5 Apprenti

    Messages:
    240
    Inscrit:
    20 Décembre 2011
    Localité:
    PARIS
    Mon logiciel de CNC
    Oui tout a fait :
    -la definition du language est publique , tout est documenté , c'est dans la notice. Voir telechargement de numeridrive plus bas.
    -Le protocole USB de la carte USB est publique , pour ceux qui voudraient developper leur propre logiciel autour de la carte USB. (Fichier protocole.rtf tres technique , pour les specialistes desirant developper un software).Ci-joint le protocole.
    -La carte USB est compatible Mach3 aussi (Plugins mach3usb.dll) mais je rappelle que tout cela est a titre amateur non professionnel conformement a l'esprit et aux regles du forum.Le plugin est en telechargement plus bas. Voir la pièce jointe protocol.zip
     
  11. stanloc

    stanloc Compagnon

    Messages:
    4 363
    Inscrit:
    29 Octobre 2012
    Mon logiciel de CNC
    Bonjour,
    Voilà une démarche bien rare sur les forums comme celui-ci. Ayant du écrire tous mes programmes d'usinage avec mes fraiseuses numériques, en Basic il y a bien longtemps, selon le protocole HPGL, je trouve qu'ici tous les signes <>][ qui apparaissent dans l'écriture des lignes m'embrouillent et risqueraient d'être oubliés en conséquence. J'utilise actuellement, sporadiquement, du matériel GALIL et là aussi il me faut écrire mes programmes d'usinage mais je m'en sors pour des choses simples car ils ont adopté un langage très proche du HPGL . Le matériel Galil est hors de prix en neuf pour un amateur mais heureusement en occasion aux USA il y a des cartes ou boitiers abordables compte tenu que l'on joue dans la cours des grands. Certains équipements peuvent s'interfacer avec Mach3 mais les gens se jettent dessus et les prix sont élevés.
    Stan
     
  12. PCB5

    PCB5 Apprenti

    Messages:
    240
    Inscrit:
    20 Décembre 2011
    Localité:
    PARIS
    Mon logiciel de CNC
    Pour la syntaxe, c'est comme ça. Effectivement le #<..> pour les variables est un peu lourd mais avec un copier/coller ca va .
    Pour le prix, comme c'est de source amateur , ca reduit considerablement la valeur estimé du produit , et ca reduit encore plus son cout (pas d'employes, pas d'impots, pas de charge). Je peux dire tout de suite que le cout est <=30euro. J'ai developpé cela parce que j'en avais besoin et je ne suit pas obligé de le vendre ou d'en faire profiter quiconque. Malgres tout c'est tout le contraire, j'aimerais trouver des utilisateurs à mon produit autre que moi seulement. Evidemment , je ne peux pas donner la carte USB à mes frais, mais comme je viens de le dire , c'est <=30eur.
     
  13. stanloc

    stanloc Compagnon

    Messages:
    4 363
    Inscrit:
    29 Octobre 2012
  14. PCB5

    PCB5 Apprenti

    Messages:
    240
    Inscrit:
    20 Décembre 2011
    Localité:
    PARIS
    Mon logiciel de CNC
    Voici la realisation de la decoupe du rectangle arrondi.
    Le programme fait plusieurs passes de 0.2mm la fraise fait 3mm

    #<z>=0 (z est une variable locale , ce n'est pas la meme dans la fonction
    while [#<z> ge -3]
    #<z>=#<z>-0.2
    !my_round_rect call 33 43 5 #<z>
    endwhile

    DSCF0003.JPG
    DSCF0004.JPG
    DSCF0008.JPG
    DSCF0009.JPG
    DSCF0017.JPG
    DSCF0023.JPG
    DSCF0026.JPG
    DSCF0032.JPG
     
  15. PCB5

    PCB5 Apprenti

    Messages:
    240
    Inscrit:
    20 Décembre 2011
    Localité:
    PARIS
Chargement...

Partager cette page