lundi 23 avril 2012

Calcul d'angle machine avec IJK

Voici un exemple de code utilisé pour le calcul des angles machines en fonction de IJK dans mes sources sur Winpost :


'Calcul des angles machine avec machine tête twist A/C

 Function Calcul_A_C(IJK As Point3, PosAng As PosAngulaire) As PosAngulaire

    Dim Flip As Boolean

    If IJK.Y = 0 And IJK.X = 0 Then

       Calcul_A_C.A = 0

       Calcul_A_C.C = 0

    Else

        Calcul_A_C.C = Atan2(IJK.Y, IJK.X) * RADTODEG

        If Abs(PosAng.C - Calcul_A_C.C) >= 180 Then

            Flip = True

            Calcul_A_C.C = Calcul_A_C.C - 180

        Else

            Flip = False

        End If

       Calcul_A_C.A = Atan2(IJK.Z, Sqr(IJK.Y * IJK.Y + IJK.X * IJK.X)) * RADTODEG

       If Flip Then

            Calcul_A_C.A = -Calcul_A_C.A

       End If

    End If

 End Function


 'Calcul des angles machine avec machine tête twist B/C

 Function Calcul_B_C(IJK As Point3, PosAng As PosAngulaire) As PosAngulaire

 Dim Flip As Boolean

     If IJK.Y = 0 And IJK.X = 0 Then

       ' Tete Vertical

       Calcul_B_C.B = 0

       Calcul_B_C.C = 0

    Else

        Calcul_B_C.C = Atan2(IJK.X, IJK.Y) * RADTODEG

        If Abs(PosAng.C - Calcul_B_C.C) >= 180 Then

        Flip = True

            Calcul_B_C.C = Calcul_B_C.C - 180

        Else

            Flip = False

        End If

        Calcul_B_C.B = Atan2(IJK.Z, Sqr(IJK.Y * IJK.Y + IJK.X * IJK.X)) * RADTODEG

        If Flip Then

            Calcul_B_C.B = -Calcul_B_C.B

        End If

      End If

 End Function

 

  'Calcul des angles machine avec machine plateau A/C

 Function Calcul_A_C_Plateau(IJK As Point3, PosAng As PosAngulaire) As PosAngulaire

    If IJK.Y = 0 And IJK.X = 0 Then

       Calcul_A_C_Plateau.A = 0

       Calcul_A_C_Plateau.C = 0

    Else

       If IJK.X = 0 Then

            If IJK.Y > 0 Then

                Calcul_A_C_Plateau.C = -90

            Else

                Calcul_A_C_Plateau.C = 90

            End If

       Else

            Calcul_A_C_Plateau.C = -Atan2(IJK.Y, IJK.X) * RADTODEG

       End If

       Calcul_A_C_Plateau.A = -Atan2(IJK.Z, Sqr(IJK.Y * IJK.Y + IJK.X * IJK.X)) * RADTODEG

 

    End If

 End Function

 

 'Calcul des angles machine avec machine plateau B/C

 Function Calcul_B_C_Plateau(IJK As Point3, PosAng As PosAngulaire) As PosAngulaire

    If IJK.Y = 0 And IJK.X = 0 Then

       Calcul_B_C_Plateau.B = 0

       Calcul_B_C_Plateau.C = 0

    Else

       If IJK.Y = 0 Then

            If IJK.X > 0 Then

                Calcul_B_C_Plateau.C = -90

            Else

                Calcul_B_C_Plateau.C = 90

            End If

       Else

            Calcul_B_C_Plateau.C = -Atan2(IJK.X, IJK.Y) * RADTODEG

       End If

       Calcul_B_C_Plateau.B = -Atan2(Sqr(IJK.Y * IJK.Y + IJK.X * IJK.X), IJK.Z) * RADTODEG

    End If

 End Function

samedi 14 avril 2012

Version de VisuOutil

Une version 2.5.35 est sur le site : http://5axes.free.fr/Outil.htm

  • Modifications sur relecture des fichiers Esprit
La relecture des fichiers ETL est à valider et à améliorer. les versions 2.5.33 à 2.5.35 améliore la relecture des fichiers ( traitement de la partie holder)
  • Modifications sur relecture des fichiers Mastercam
La relecture des fichiers Texte sera à valider et à améliorer.
  • Modifications sur relecture des fichiers TopSolid'CAM
La relecture des outils doit être validée. Pour le moment c'est un premier niveau de traitement. Les fichiers Texte ne contiennent pas toute la géométrie. Une option permet à partir des infos de connexion de restituer la géométrie des portes outils.
La relecture traite les Fichier ELEM.txt et TOOL.txt . Relecture du fichier CUTSP.txt en préparation pour une futur version 2.6.


jeudi 12 avril 2012

Format outil Mastercam

Bonjour,

En cherchant des informations sur le format d'export des outils MASTERCAM pour mon application VISU_Outil, Je suis tombé sur un utilitaire WEB:
http://mastercam.ilmatar.net/tool_lib/
Qui permet de générer des fichiers de librairie outil au format MASTERCAM ( Sortie format X4) .

Le format semble valide et j'ai pu utiliser cette sortie pour compléter ma relecture des formats Outil des FAOs

mercredi 11 avril 2012

MACRO-CLIENT Fanuc

Pour mes besoins j'ai du me plonger dans les macros clients sur FANUC. J'ai eu un peu de mal à trouver les infos surtout que la doc constructeur était très Light sur certains sujets.

Voici donc une petite listes de codes utiles testés sur Fanuc 31i

Message Opérateur

#3000=30(ERREUR APPEL FONCTION UVW) Affiche une erreur CN et arrête la machine : 30= Numéro de l'erreur (ERREUR APPEL FONCTION UVW=0) = Texte de l'erreur

#3006=1(ERREUR APPEL FONCTION UVW) Par rapport à la solution avec variable 3000 permet de ne pas créer une erreur CN mais juste un message (ici pas de numéro de message d'erreur juste 0 ou 1 )

Temps d'éxécution d'un programme

J'utilise la variable 3001 Cette variable fonctionne comme une horloge comptant par incrément d'une milliseconde. On peut la remettre à Zéro dans un programme. Sinon, elle repasse à Zéro après 2147483648 millisecondes ce qui laisse de la marge :)

En début de programme
#3001=0 (INIT HORLOGE) En fin de programme je récupère le temps et je divise par 1000 pour les secondes
#501=#3001/1000 (HORLOGE FIN)

Ecrire dans un fichier des résultats
Pour Ecride ce temps dans un fichier
POPEN
DPRNT[TEMPS:#501[90]S]
PCLOS


POPEN pour ouvrir le fichier
PCLOS pour le fermer
et DPRNT pour écrire. Le fichier céé le sera avec le nom PRNTXXXX.DAT XXX étant un numéro incrémenté par la CN à chque nouveau fichier

DPRNT[TEMPS:#501[90]S] Pour écrire une variable on utilise la notation #501[43] -> 43 veut dire 3 chiffre après la virgule et 4 c'est le nomrbre de chiffre avant


Palpage avec palpeur de contact

Le palpage utilise le code G31 déplacement avec saut

G31X Y Z F (Palpage)
G53
#101=#5061(X au declenchement)
#102=#5064(Y au declenchement)
#103=#5062(Z au declenchement)

Attention sur ma machine l'orde des axes et XZCY d'où 5064 pour Y (cas d'un tour fraiseur)

Les variables #5061 à #5068 sont les données de position du signal de saut ( au moment ou le palpeur arrête la machine)


Vérouillage des fichiers macro
Pour le vérouillage des programmes (MACRO) sur Fanuc, il est possible d'interdire la modification des programmes 8000 à 9000 avec les paramètres CN :

Paramètres #3202
#3202-0 [NE8]:
Verrouille ou autorise l'édition des programmes 8000 à 8999.
0: Édition verrouillée 1: Édition autorisée
#3202-4 [NE9]:
Verrouille ou autorise l'édition des programmes 9000 à 9999.
0: Édition verrouillée 1: Édition autorisée

A complèter