mercredi 27 juin 2012

Winpost 0.4.10

Petite modification sur Winpost pour répondre à une demande.

Dans les Cycles Fixes, il est possible d'utiliser des variables pré-calculées à partir des données APT.
en version 0.4.10 les valeurs disponible sont  au nombre de 16:

PP_CYCLE_FIRST_X-PP_CYCLE_DEPTH
PP_CYCLE_FIRST_X+PP_CYCLE_DEPTH
PP_CYCLE_FIRST_Y-PP_CYCLE_DEPTH
PP_CYCLE_FIRST_Y+PP_CYCLE_DEPTH
PP_CYCLE_FIRST_Z-PP_CYCLE_DEPTH
PP_CYCLE_FIRST_Z+PP_CYCLE_DEPTH
PP_CYCLE_X-PP_CYCLE_DEPTH
PP_CYCLE_X+PP_CYCLE_DEPTH
PP_CYCLE_Y-PP_CYCLE_DEPTH
PP_CYCLE_Y+PP_CYCLE_DEPTH
PP_CYCLE_Z-PP_CYCLE_DEPTH
PP_CYCLE_Z+PP_CYCLE_DEPTH
PP_CYCLE_CLEARENCE-PP_CYCLE_DEPTH
PP_CYCLE_CLEARENCE+PP_CYCLE_DEPTH
-PP_CYCLE_DEPTH
-PP_CYCLE_RETRACT

lundi 14 mai 2012

VisuOutil 2.6.10

Nouvelle version de VisuOutil sur le site 5 axes: http://5axes.free.fr/Outil.htm


J'ai travaillé sur la partie connexion entre les éléments avec une révision de la fonction de test des connexions. Cette partie est assez complexe, les possibilités de couplage entre les éléments donnent des combinaisons qui nécessite des tests multiples. Ces tests sont nécessaires pour améliorer l'export au format Tebis. En effet le format Tebis est certainement aujourd'hui le format FAO le plus complet dans la gestion des outils et des paramètres associés. Il est pour moi une référence, mais cette évolution nécessite une gestion très carrée des connexions sous peine de bloquer la relecture des assemblages dans le logiciel. Ces restrictions sont apparues avec la version 3.5 du logiciel.
Pour assurer une relecture améliorée dans Tebis les tests des connections ne doivent pas pas montrer d'erreur dans VisuOutil.


Voici donc une version 2.6.10 avec ces nouvelles fonctions de test.

mercredi 2 mai 2012

VisuOutil 2.5.61

Une mise à jour de la version de VisuOutil est disponible sur le site : http://5axes.free.fr/Outil.htm

Cette version permet d’améliorer les Exports vers Tebis & WorkNC ainsi que l'import Mastercam. Des tests ont été faits pour valider les exports.

Winpost 0.4.9

Suite à la remarque d'anthony; J'ai modifié la version de Winpost pour rajouter une option permettant de supprimer les codes de vitesses si l'on a une répétition de la vitesse avec des valeurs identiques:

L'activation de ce code va permettre de gérer les codes APT du type :

SPINDL/15000.0000,RPM,CLW
RAPID
GOTO  / -249.00000, -126.00000,    9.00200, 0.000000,-1.000000, 0.000000
RAPID
GOTO  / -249.00000,  -26.00000,    9.00200, 0.000000,-1.000000, 0.000000
FEDRAT/ 5000.0000,MMPM
GOTO  / -249.00000,  -24.00000,    9.00200, 0.000000,-1.000000, 0.000000
FEDRAT/ 5000.0000,MMPM
GOTO  /  249.00000,  -24.00000,    9.00200, 0.000000,-1.000000, 0.000000


Version 0.4.9 : http://5axes.free.fr/WinPost/WinPost004X.exe

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

dimanche 15 janvier 2012

Les stratégies trochoïdales adaptatives

J'ai testé pas mal de chose sur le sujet. Les stratégies trefflage ont fait un peu long feu. Pas vraiment de boite qui utilise pas facile à mettre en œuvre et surtout difficile à reprendre sur de la forme 3D.
Image Sescoi : Ebauche trefflage
Pour ce qui est des ébauches les plus efficaces sont le trochoïdale adaptatif. C'est à dire le déclenchement de la trochoïde seulement en cas de forte charge. Ce déclenchement est réglable avec un paramètre spécifique. Le problème aussi sur ces stratégies c'est que la moindre erreur dans le parcours se paye cache.. Un angle non rayonné et c'est l'outil qui vole. Elles sont surtout intéressante dans les matériaux dur. Sinon ce n'est pas nécessaire ( pas la peine d'essayer dans l'alu je vois pas les gains à atteindre sauf si l'on a qu'une machine pas trop rigide mais véloce).
Parcours Volumill

Sinon nous avons les ébauches à stratégie fort ap/Faible ae qui peuvent s'apparenter à du trochoïdale dans certains cas. Ce sont ce que j'appel des stratégies à décomposition de Zone c'est à dire que l'on décompose la zone à usiner en zone de forme simple( un cercle par exemple ou un oblong ) ce qui donne une première partie de l'usinage en spirale par exemple. Très efficace, les zones restantes sont ensuite traité en passe successive en avalant ( ce qui peut donner des trajectoires dans certains cas comparable à du trochoïde) Catia le fait depuis longtemps simplement ils ont oublié de rajouter des rayons de lissage dans les coins donc quand l'outil est rayon pour rayon ça vole directe ... Toujours pareil ; il ne sert à rien de faire le boulot si l'on va pas jusqu'au bout …
Dans la série de ces ébauches on trouve ces derniers temps VoluMill qui a son parcours breveté... Il marche plutôt bien, un peu moins performant qu'un trochoïdale adaptatif mais intressant ( surtout avec de l'outil à plaquette). On le retrouve aujourd'hui dans plusieurs FAO car ils vendent leur code. OpenMind,Mastercam, Solidcam et d'autre viennent de l'intégré et c'était la nouveauté de l'année 2010 chez tous ces éditeurs.
Ensuite au niveau des trochoïdes il faut aussi distinguer les formes de trochoïde . Aujourd'hui certains éditeurs comme Sescoi ont une option en trochoïde réduite. Ca peut faire gagner de 10 à 15 % en temps d'usinage.
Image Sescoi Trochoïde tronquée
Image Sescoi : Paramètres trochoïdal
Le problème aussi est sur des stratégies fort ap/faible ae la reprise des hauteurs de crête. La aussi Sescoi à sortie dans sa V20 un parcours spécial de qui permet de reprendre les crêtes dans le même parcours en gardant le bénéfice d'un fort ap/faible ae ( 20 % de gain). Enfin sur une prog bien maitrisé on peu avec le même éditeur sur des stratégies trochoïde adaptatif en réglant bien ses paramètres gagner jusqu'à 40% en temps d'usinage. Mais bon il faut aimer prendre des risques.
Image Delcam: trajectoire « Race-line »
Sinon dans les stratégies on a aussi tout ce qui est avec lissage de la trajectoire ( race-line pour reprendre un vocabulaire DELCAM) comme le fait Delcam ( qui a aussi le trochoïdale adaptatif dans la stratégie ), Tebis et que l'on retrouve aussi un peu dans les parcours Volumill et d'autres. Désolé de ne pas pouvoir citer tous le monde.
Image Delcam: trajectoire « Race-line »
Dans ces stratégies l'utilisateur à la possibilité de lisser les parcours pour fluidifier les mouvements . Mais attention à trop lisser on va rapprocher les passes et augmenter le temps d'usinage. Donc ici comme ailleurs il faut maîtriser ses paramètres pour vraiment bénéficier des avantages de ces options.
Le risque est cependant d'avoir des zones en usinage pleine matière. Dans ce cas les évolutions des logiciels permettent d'appliquer une vitesse d'usinage différente sur les passes pleine matière (tebis).
Voilà un p

Création de postprocesseur

Bonjour,

Voilà quelques conseils que j'avais déjà donnés à ceux qui seraient « tentés » par l'aventure postprocesseur. Qui n'est pas a mon avis un sujet insurmontable avec un peu de préparation. Premièrement il faut savoir qu'il existe plusieurs niveaux de difficulté et de complexité.

Niveau 1 ) Postprocesseur 3 axes et 3+2
Niveau 2 ) Postprocesseur 5 axes
Niveau 3 ) Postprocesseur 2 axes 1/2
Niveau 4 ) Pos processeur 2 axes 1/2 5 faces (Utilisation des fonctions de transformation et plan incliné)
Niveau 5) Postprocesseur de 2 à 5 axes

Si l'on rajoute à sa la possibilité de faire un postprocesseur généralisé comme j'ai essayé de le faire ( quelque chose qui permettrait de prendre en compte toute les CN à partir d'options de configuration : WinPost) On obtient une grosse usine à gaz assez indigeste. Il est donc préférable pour démarrer de repartir de quelque chose de neuf et de vous contenter de créer un pp pour une machine spécifique.

Ce que je conseil, c'est dans un premier temps de préparer votre travail en créant des fichiers exemples. Il en en effet indispensable avant de commencer à créer le postprocesseur de connaître le code CN de la machine.

Création d'une pièce type avec plusieurs type de parcours outil (surfaçage, perçage, taraudage, 3+2 et parcours 5 axes) Avoir les mêmes exemples mais écrient à la main , testés sur machine à vide qui permettront de faire un jeu de test.
Vous devez aussi définir quel niveau de complexité vous voulez atteindre 1, 2, 3,4 … 5.

Vous pouvez en parallèle commencer à travailler sur la partie Info et/ou math par exemple comment calculer B et C en fonction de I J K (pour votre machine).
Analyser la structure d'un fichier APT. Etc...

Si vous débutez dans le domaine , il y a déjà pas mal de travail préparatoire avant de se lancer dans le truc. Il faut aussi voir le temps que vous avez pour faire ce travail ( C'est un projet de fin d'étude, un projet d'un mois un stage ???)

Vous pouvez aussi travailler sur la partie décodage de l'APT (A savoir que tous les codes APT ne sont pas identiques, un APT Catia ne sera pas le même qu'un APT Cadds etc ) . Ce que je vous conseil c'est d'utiliser un format intermédiaire : APT -> Votre Format de travail -> ISO ou conversationnel Heidenhain. De cette manière vous isoler les problèmes que vous pouvez rencontrer et vous pouvez aussi plus facilement séparer les tâches . Un s'occupe de l'interface et de la relecture APT vers votre format , l'autre travail sur la partie » Mon format » vers sortie Machine.

Pourquoi utiliser son format ??? : Vous verrez je pense que la sortie APT ne peut pas toujours être traduite Ligne à Ligne ( Une ligne de code APT = Une ligne de Code langage machine) en passant par son format à soi cela permet de s'affranchir de problèmes qui peuvent apparaître selon les cas traités. J'ai pas d'exemple concret mais c'est le souvenir que m'a laissé ce projet.