PyCam (work in progress)

FIXME Work in progress…

 Logo de PyCam

Une fois un objet modélisé en 3D, on peut l'utiliser avec une imprimante 3D ou une CNC pour le produire. Les deux machines comprenant le même langage, mais ayant une méthode de travail différente (production additive pour la première, soustractive pour la seconde), on ne peut pas utiliser le même logiciel pour commander les deux. PyCam est un logiciel libre qui permet de convertir notre fichier 3D en un code compréhensible pour la CNC.

FIXME PyCam est un des rares logiciels à ne pas marcher sous Windows (ou du moins à ne pas avoir une version dédiée), Il y a bien une version .zip, mais le site indique qu'elle n'est pas testée, ce qui implique la possibilité de bidouiller le code pour l'adapter à votre ordinateur. Les anciennes versions (jusqu'à la v.0.5.1) fonctionnent encore, mais elles sont obsolètes. En revanche, l'installation sous Linux est assez simple et permet d'avoir les dernières versions de PyCam.

Installation

Allez sur le site de PyCam et cliquez sur le lien pour GitHub, qui contient la dernière version du programme. Le téléchargement devrait vous donner un fichier compressé (.tar.gz ou .zip): désarchivez-le.
Vérifiez d'avoir installé les paquets suivants:

  • python
  • python-gtk
  • python-opengl
  • python-gtkglext1
  • python-rsvg
  • python-guppy (facultatif)

Une fois cela fait, il vous suffit d'exécuter le fichier script/pycam pour lancer PyCam.

Présentation

 Ècran principal de PyCam

PyCam se présente sous la forme de deux fenêtres: l'une de commande, l'autre de visualisation (pour voir l'effet des commandes utilisées).

Fenêtre de visualisation

La fenêtre de visualisation (à gauche de l'image) permet de voir le modèle chargé, ainsi que le parcours de l'outil. On peut choisir les parties à afficher avec un bouton en haut à gauche, et des vues standard sont accessibles avec les autres boutons (très utiles quand on a déplacé un peu trop la vue).

Commandes Action
Clic droit + mouvement de la souris Rotation de la vue
Clic gauche + mouvement de la souris (Dé)zoom
Clic de la molette + mouvement de la souris Translation de la vue
CTRL + rotation de la molette de la souris
rotation de la molette de la souris Déplacement de la vue vers le haut ou le bas de la fenêtre
SHIFT + rotation de la molette de la souris Déplacement de la vue vers la droite ou la gauche de la fenêtre

Fenêtre de commande

La fenêtre de commande (à droite de l'image) permet de créer le parcours que la CNC doit parcourir pour faire les actions demandées. Au lancement de PyCam, le fichier chargé par défaut sera une pièce avec PyCam en relief.

Pour renommer les différents objets, double-cliquez sur leur nom.

Onglets

Models

Cet onglet gère les modèles 3D et les dessins 2D utilisés pour définir les gravures à faire.

Onglet "Models". Les options dans la partie basse de l'écran apparaissent quand on sélectionne un modèle.

Sur la droite, on a différents boutons:

  • une case en couleur permettant de choisir la couleur du modèle sélectionné
  • Delete efface le modèle sélectionné
  • Clean efface tous les modèles
  • Up déplace le modèle sélectionné vers le haut, Down vers le bas (en sachant que les modèles en haut seront affichés par-dessus ceux plus en bas)
  • Help (FIXME il redirige vers une page inexistante au 20 octobre 2017)

Quand un modèle est sélectionné, d'autres options apparaissent, regroupées en onglets.
Dans la suite, “modèle” désigne le modèle sélectionné.

Position

Relative Shift déplace le modèle de la distance voulue dans les trois axes (après avoir appuyé sur Shift Model).
Align Position déplace le modèle de sorte à ce qu'il y ait la distance voulue entre l'origine des axes et un point particulier du modèle (extrémités ou point central, indépendant pour les trois axes). Les modifications seront appliquées quand on aura appuyé sur le bouton Align Position.

Rotation

Axis choisit l'axe selon lequel le modèle va être tourné.
Angle définit l'angle de rotation entre quatre options: 90° en sens horaire ou antihoraire, 180° et un angle personnalisé en sens horaire.
La rotation sera appliquée quand le bouton Rotate sera appuyé.

Scale

Proportional Scaling multiplie toutes les dimensions du facteur en % sélectionné (après appui du bouton Scale Model).
Scale to Size permet de modifier les dimensions du modèle de sorte à avoir la longueur voulue sur un axe. Le bouton Scale selected Axis modifie seulement l'axe voulu (en laissant intactes les mesures dans les deux autres), alors que Scale all Axis redimensionne le modèle comme Proportional Scaling (en fixant la longueur selon un axe).
mm → Inch redimensionne la pièce pour convertir toutes les longueurs de mm en pouces, alors que Inch→mm fait l'inverse.
Pour rappel, 1 inch = 25,4 mm. Cela implique que le premier bouton va diviser toutes les longueurs par 25,4 et que le deuxième va les multiplier par 25,4.

Polygons (seulement pour les modèles 2D)

FIXME Peu d'informations en ligne. Recherches approfondies en cours…

Swap axis

Cette section permet d'intervertir deux axes après appui sur Swap.
:!: Les effets sont assez bizarres, donc il ne faut pas abuser de cette option. :!:

Mirror

Cette section permet de modifier la pièce en prenant son symétrique par rapport à un plan du repère (O,x,y,z).

Support

Cette section gère la création de supports (pour que la pièce gravée reste solidaire à la plaque originale et ne se détache donc pas du plateau pendant l'usinage). Plusieurs paramètres sont configurables: structure du support, distance entre les grilles, offset, …
FIXME Définition vague, à préciser avec des recherches Web et des tests pratiques.

Projection (seulement pour les modèles 3D)

Ici, on peut créer un modèle 2D via une coupe du modèle. La hauteur de la coupe est modifiable via quatre options: Top (on prend la face supérieure du modèle pour déterminer sa projection), Middle (on coupe à mi-hauteur), Bottom (on prend la face inférieure) et Custom (on coupe à la hauteur à partir de l'origine des axe précisée).
L'opération crée un modèle en 2D (appelé “Projected Model”) tout en conservant celui de départ.

Extrusion (seulement pour les modèles 2D)

Cette section devrait permettre d'obtenir un modèle 3D en extrudant sa version 2D. Cependant cette opération semble durer très longtemps. FIXME

Tools

On peut ici paramétrer les outils montés sur la CNC: forme, diamètre, feed rate et vitesse de rotation.

 Onglet "Tools" avec outil créé et sélectionné

Au début, il n'y a pas d'outils créés (FIXME rechercher comment les charger à partir d'un fichier). Sur la droite:

  • New crée un nouveau outil
  • Delete efface l'outil sélectionné
  • Up et Down déplacent l'outil sélectionné vers le haut ou le bas (à quoi ça peut servir? FIXME)

Une fois l'outil sélectionné, on peut le modifier:

  • Tool Shape fixe sa forme: Flat bottom (tête cylindrique), Ball nose (tête sphérique) et Bull nose (tête toroïdale, “en forme de donut”)
  • Size permet de définir le diamètre de l'outil
  • Speed choisit la vitesse de l'outil selon deux paramètres: Feed Rate (vitesse en translation) et Spindle Speed (vitesse de rotation de l'outil). Pour plus d'informations, se référer à la page "Initiation à la CNC".
Processes

Cet onglet s'occupe des opérations à effectuer (les différents enlèvements de matière, pour être claires).

 Onglet "Processes" avec un process créé et sélectionné.

Les boutons habituels (New, Delete, Up et Down) sont présents à droite de l'écran. Pour plus de détails, voir la page dédiée dans le site de PyCam. Des options supplémentaires apparaissent une fois une opération créée et sélectionnée:

  • Strategy donne un ensemble de de paramètres pour définir l'opération. Parmi les choix disponibles: Slice removal (utile pour un enlèvement rapide et grossier de matière), Waterline (plus utilisé pour des travaux de précision), Surfacing et Engraving.
  • Pattern choisit le parcours de l'outil, soit en grille (Grid), soit en spirale (Spiral)
  • Overlap définit la proportion de superposition entre deux passages de l'outil. Plus cette valeur est proche de 100%, meilleure sera la qualité (sur le plan horizontal), mais plus longue sera l'opération et le temps de génération du G-Code. Pour donner un exemple: pour des trous de diamètre 8 mm et profonds 5 mm, avec un outil de diamètre 2 mm, en passant de 0 à 90% d'overlap le temps de génération est multiplié par 10 (environ 11 minutes à 90%) et le temps d'opération par 20 (de 16 secondes à 5 minutes). Le choix optimal dépend de la géométrie de la pièce et du diamètre de l'outil. Le rayon de l'outil sera réduit d'un facteur égal à celui de l'overlap (à 50%, le rayon virtuel de l'outil sera la moitié du réel).
  • Step down précise le pas vertical entre chaque couche. Plus petite sera la valeur, meilleure sera la précision de la pièce (selon l'axe z), mais plus longue sera l'opération.
  • Material allowance définit la distance minimale entre l'outil et le matériau. D'après l'aide en ligne, c'est surtout utile pour les outils à grand diamètre, et la dernière opération devrait avoir ce paramètre inférieur à 0. Avec ce paramètre, l'outil aura un rayon “virtuel” plus grand par rapport à sa taille réelle (si 1, alors le rayon de l'outil sera augmenté de 1 mm).
  • Direction précise les directions à suivre pour l'outil: X, Y ou XY pour Grid, outside → center ou center → outside pour Spiral.
  • Milling style fixe le mode de gravure de la pièce. Plus d'informations sur le site
  • Trace models (2D) (pour Engraving seulement) permet de choisir le modèle 2D à graver sur la pièce
  • Pocketing (pour Engraving seulement) FIXME
Bounds

Les zones où les outils peuvent travailler sont définies ici.

 Onglet "Bounds" avec une boîte créée et sélectionnée.

Les boîtes sont des parallélépipèdes avec les arêtes parallèles aux axes qui servent à délimiter une zone de travail (ou une zone à éviter FIXME rechercher comment). Une fois une boîte créée, des options supplémentaires apparaissent:

  • Type permet de fixer le type de la boîte: Relative Margin (PyCam va utiliser les modèles pour fixer automatiquement ses dimensions) et Custom (dimensions libres et modifiables par l'utilisateur)
  • Tool move limit définit les méthodes de passage de l'outil dans la boîte :?: A vérifier

Move inside limits reste toujours à l'intérieur de la boîte, Move along limits passe aussi par le bord de la boîte et Move around limits passe partout dans la boîte (quitte à déborder un peu). Pour une même pièce, la durée de l'opération peut varier énormément (pour celle par défaut et un outil de 5 mm de diamètre, le temps calculé est de 38 minutes avec Inside, 74 avec Along et 149 avec Around). FIXME Voir les différences sur les pièces finales en vrai

  • Lower et Upper permettent de définir en Custom les bornes de la boîte. En Relative Margin, cela permet de modifier la distance entre la boîte et les faces limites des modèles sélectionnés dans la zone Referenced Models en % ou en mm
Tasks

Ici, on définit finalement les différents opérations, en associant un outil, un processus et une zone (ainsi qu'un modèle de collisions, qu'il ne faut surtout pas oublier!)

Onglet "Tasks" avec deux tâches créées et la deuxième sélectionnée.x tâches créées et la deuxième sélectionnée.

Quand on a créé une tâche, il faut lui donner un outil, un processus et une boîte (générés dans les onglets précédents), Collision Models permet de préciser quels sont les modèles à utiliser pour la gravure (ce qui implique que ceux non sélectionnés ne seront pas vus par PyCam, et donc ignorés lors de l'avancement de l'opération!) Une fois les différentes tâches créées, vous pouvez générer le parcours soit seulement de celle sélectionnée avec Generate Toolpath, soit de toutes avec Generate All.

P.S.: soyez sûrs des différents paramètres! La génération du parcours peut prendre plusieurs minutes, donc il faut savoir être patients… À titre d'exemple, le fichier par défaut est créé en 158 secondes sur mon ordinateur avec un modèle et une opération de surfaçage rapide. Si vous vous apercevez d'avoir fait une erreur, le bouton Cancel permet d'annuler l'opération. Show Progress met à jour la vue 3D pour visualiser le parcours de l'outil généré et sa progression.

Toolpaths

Une fois générés, les parcours des outils arrivent ici, où l'on peut choisir leur ordre d'exécution, les éliminer, les exporter, …

 Onglet "Toolpaths" avec deux parcours créés, le premier sélectionné et le deuxième invisible.

Export Cette section permet de générer un fichier G-Code avec tous les toolpaths (Export all), celui sélectionné (Export selected) ou seulement ceux visibles (Export visible).

Settings Le bouton Preferencies donne accès à certains paramètres utiles pour la génération du fichier G-Code. Ceux qui ont le plus grand impact sur la durée de la découpe sont la hauteur de sûreté entre le plateau et l'objet (*Safety height*) et la vitesse limite de plongée (*Plunge feedrate limit*). Le premier fixe l'hauteur à laquelle l'outil va se positionner lors du déplacement à vide (sans être en train de découper de la matière), alors que le deuxième fixe la limite en vitesse quand l'outil plonge dans la matière. Ces opérations constituant une grande partie des mouvements de la CNC, les paramétrer correctement permettra d’accélérer considérablement l’exécution: pour la pièce par défaut de PyCam avec un processus “Slice removal” et 90% d'overlap, les options par défaut (25 mm et 100) donnent une durée de 19 heures, mais on peut descendre jusqu'à 7 heures avec 2 mm et 262.
Suggestions pour les paramètres: 2 mm plus haut que la coordonnée Z la plus haute de la pièce pour l'hauteur de sûreté et la moitié du feedrate nominal pour la limite en plongée. Simulation Ici, vous pouvez voir la simulation du parcours de l'outil, en pouvant notamment la démarrer, la mettre en pause, l'arrêter, modifier sa vitesse d’exécution,

Clone grid Cette section permet de dupliquer le parcours original dans une grille, dont le nombres de copies en ligne et en colonne (ainsi que leur espacement) peuvent être modifiés par l'utilisateur.

Crop Cette fonctionnalité permet de réduire les déplacements de l'outil dans le cas de pièces non rectangulaires (en théorie) :?:

File
  • Open Model… permet d'ouvrir un fichier .stl dans votre ordinateur.
  • Open Recent… liste les fichiers .stl ouverts récemment.
  • Export exporte les outils déjà créés sur LinuxCNC
  • Save Model enregistre la nouvelle version d'un modèle déjà ouvert.
  • Save Model as… permet de choisir un nom différent pour enregistrer le fichier .stl modifié (surtout si c'est la première sauvegarde).
  • Quit ferme PyCam.
Edit
  • Undo last model change annule la dernière modification sur le modèle.
  • Copy copie le modèle sélectionné (et seulement les modèles).
  • Paste crée une nouvelle version du modèle dans le presse-papiers (obtenu avec Copy).
  • Engrave text… ouvre une nouvelle fenêtre permettant de graver du texte dans la pièce, en choisissant l'inclinaison des lettres, l'espacement entre les lettres, l'interligne, la police et le texte à graver. Cela va créer un modèle représentant le texte, qui peut donc être modifié comme les modèles “standard”.
Settings

* Preferences ouvre une fenêtre qui permet de modifier différents paramètres: unités de mesure, objets affichés et couleurs, …

View

Ici, on peut choisir différentes fenêtres à afficher (dont certaines demandent l'installation de programmes supplémentaires).

Help

Des commandes variées pour avoir de l'aide, proposer de nouvelles fonctionnalités, signaler des bugs et ainsi de suite.