URL: https://linuxfr.org/news/linux-et-la-commande-numerique-par-calculateur Title: Linux et la commande numérique par calculateur Authors: christophe_g Florent Zara, baud123 et Benoît Sibaud Date: 2012年12月16日T17:16:43+01:00 License: CC By-SA Tags: cnc, fablab, diy, ubuntu, cad, inkscape et blender Score: 67 Passionné d'informatique et utilisateur de Linux depuis environ 2003 (avec Mandrake 9.1), je me suis équipé pour mon travail (je suis artisan et je travaille le bois) d'une petite fraiseuse numérique 3 axes. Il était pour moi hors de question de revenir sous Windows et j'ai donc dû chercher les logiciels nécessaires tournant sous Linux. Pour ceux qui ne connaissent pas ce domaine, la fabrication assistée par ordinateur ([FAO](http://fr.wikipedia.org/wiki/Fabrication_assist%C3%A9e_par_ordinateur "Définition Wikipédia")) nécessite 3 étapes : - La modélisation de la pièce à l'aide d'un logiciel de dessin technique 2D ou 3D. Cette étape est appelée CAD en anglais : [Computer Aided Design](http://fr.wikipedia.org/wiki/Fabrication_assist%C3%A9e_par_ordinateur). - La création des parcours d'outil, en fonction du type de matière à usiner, de l'outil utilisé, de l'état de surface souhaité, etc. Cette étape est appelée CAM en anglais : [Computer Aided Manufacturing](http://en.wikipedia.org/wiki/Computer-aided_manufacturing). - Le pilotage de la machine-outil à l'aide d'un logiciel contrôleur : donc l'usinage proprement dit. Les logiciels de ce type ne sont pas très nombreux sous Linux, mais les choses avancent doucement, et je souhaitais donner quelques nouvelles de certains d'entre eux et faire naître, pourquoi pas, quelques vocations de contributeurs. Je ne suis pas du tout spécialiste de la [CNC](http://fr.wikipedia.org/wiki/Machine-outil_à_commande_numérique "Définition Wikipédia"), ni de l'informatique. Ce qui suit n'a donc aucun caractère exhaustif et comporte probablement quelques erreurs ou imprécisions. Il s'agit juste d'un petit état des lieux des logiciels que j'utilise ou dont je surveille le développement. NdM : _merci à christophe_g pour son journal._ ---- [Journal à l'origine de la dépêche](http://linuxfr.org/users/christophe_g/journaux/linux-et-la-cnc) [LinuxCNC](http://www.linuxcnc.org/) [LibreCAD](http://librecad.org/cms/home.html) [Inkscape](http://inkscape.org/) [Blender](http://www.blender.org/) [HeeksCNC / HeeksCAD](http://heeks.net/) [OpenCascade](http://www.opencascade.org/) [FreeCAD](http://free-cad.sourceforge.net/) [PyCAM](http://pycam.sourceforge.net/) ---- ### La modélisation 2D - [LibreCAD](http://librecad.org/cms/home.html) est un logiciel de dessin technique 2D, sous licence GPLv2, issu de la version Community 2.0.5 de [Qcad](http://www.qcad.org/en/). Qcad est un logiciel propriétaire (dont la version majeure 3.0 est sortie cet été), mais qui était disponible, dans une version plus ancienne, sous licence libre. Malheureusement la dernière version libre, la Community 2.0.5, commence à dater, et aucune nouvelle version libre ne semblait annoncée. Le premier but du fork LibreCAD était de porter Qcad 2.0.5 sous Qt4. C'est chose faite et le développement consiste maintenant à ajouter de nouvelles fonctionnalités, telles que la gestion des courbes de Bézier et l'amélioration de l'outil texte, par exemple. LibreCAD est actuellement en version 2.0 alpha4 et une ou deux idées de création d'un greffon CAM semblent pointer le bout de leur nez, mais sans rien de concret pour l'instant. - [Inkscape](http://inkscape.org/) n'est pas un logiciel de dessin technique, mais un logiciel de dessin vectoriel à vocation artistique. C'est pourtant le logiciel que j'utilise quotidiennement pour tous mes dessins 2D, pour deux raisons principales : son utilisation très agréable des courbes de Bézier, et, surtout, à cause de son extension [Gcodetools](http://www.cnc-club.ru/forum/viewtopic.php?f=33&t=35) qui permet de créer les parcours d'outils directement dans Inkscape. Mais je reviendrais sur Gcodetools un peu plus bas. Malheureusement, n'étant pas un logiciel de dessin technique, il manque à Inkscape quelques fonctionnalités utiles telles que la création de parallèles, de perpendiculaires, de tangentes ou encore le dessin des cotations. ### La modélisation 3D - [Blender](http://www.blender.org/) m'est parfois utile. Je ne l'utilise pas pour modéliser directement une pièce 3D. En revanche, il me permet de manipuler un mesh, tels que ceux issus de la numérisation d'une pièce existante, avec la machine-outil équipée d'un [palpeur 3D](http://www.indoor.flyer.co.uk/probe.htm). ![Blender](http://www.grellier.fr/pics/CNC/web_blender.jpg) - [Heekscad](http://code.google.com/p/heekscad/) est un logiciel de modélisation paramétrique basé sur [OpenCascade](http://www.opencascade.org/), et doté d'une extension CAM : HeeksCNC. Malheureusement, son développement est stoppé et il s'est toujours montré, chez moi, particulièrement instable. - [FreeCAD](http://free-cad.sourceforge.net/) est un logiciel de modélisation 3D paramétrique, basé sur OpenCascade. Il est très prometteur et son développement est actif. La prise en main n'est pas évidente, car elle s'appuie sur différents "ateliers" offrant chacun leur propres outils. La version de développement 0.13 est actuellement en cours de stabilisation. ### Les logiciels CAM La fabrication assistée par ordinateur (FAO évoquée ci-dessus), aussi appelée [CAM](http://en.wikipedia.org/wiki/Computer-aided_manufacturing "Définition Wikipédia") en anglais se développe : - [Pycam](http://pycam.sourceforge.net/) est un logiciel pour créer les parcours d'outils pour l'usinage de pièces 3D. Il est écrit en Python et s'avère très agréable à utiliser. Mon seul regret concerne les performances assez mauvaises sur les pièces un peu complexes, où la RAM se retrouve vite saturée. La version stable actuelle est la 0.5.1. La future version 0.6 est une réécriture d'une partie du code pour le rendre plus modulaire et s'annonce prometteuse. Malheureusement, Pycam est développé par une seule personne et le développement est très très lent. ![PyCAM](http://www.grellier.fr/pics/CNC/web_pycam-1.jpg) - Gcodetools est donc une extension à Inkscape, écrite en Python. Son fonctionnement est un peu atypique : l'outil d'usinage est créé sous forme d'un rectangle contenant ses caractéristiques en texte ; on doit créer des points d'orientation pour définir l'origine et l'échelle. Objectivement, je pense que ça tient plus de la bidouille que d'un vrai logiciel et, pourtant, ça fonctionne très bien : c'est le logiciel que j'utilise pour créer tous mes usinages 2D. En fait, pour avoir codé 2 ou 3 bricoles pour Gcodetools, je me suis rendu compte que la faute principale en revient surtout à Inkscape, dont le système d'extension est assez limité : quelques outils basiques (pour la création de la fenêtre de l'extension, par exemple), et un simple accès au DOM du document SVG. La plupart des fonctionnalités internes d'Inkscape ne sont pas accessibles aux extensions. Gcodetools sera intégré dans les extensions par défaut d'Inkscape, à partir de la version 0.49, qui devrait sortir d'ici quelques semaines. ![Inkscape](http://www.grellier.fr/pics/CNC/web_inkscape.jpg) - Cet automne, un projet qui semble sérieux, est né pour créer un module CAM pour FreeCAD. Rien d'utilisable pour l'instant, mais plusieurs personnes dont j'ai déjà croisé les pseudos ailleurs sur le net dans le petit monde de la CNC sous Linux ce sont retrouvées sur le [forum de FreeCAD](http://sourceforge.net/apps/phpbb/free-cad/viewforum.php?f=15) et le développement de l'infrastructure du module est bien entamée. FreeCAD, déjà très prometteur en tant que logiciel de modélisation, va donc visiblement être doté d'un module CAM lui aussi très prometteur ! ### Logiciel de Pilotage Dernière étape de l'usinage assisté par ordinateur, le logiciel de pilotage charge le parcours d'outil, et génère les signaux qui sont envoyés à la machine-outil. Je ne sais pas s'il existe d'autres logiciels de pilotage CNC sous Linux, mais pour ma part, je ne connais que [LinuxCNC](http://www.linuxcnc.org). Anciennement appelé EMC2, il a dû [changer de nom](http://www.linuxcnc.org/index.php/english/forum/29-forum-announcements/16867-linuxcnc-the-new-name-of-enhanced-machine-control) au printemps 2011, suite à la demande d'une entreprise qui possédait les droits sur les noms EMC et EMC2. Pour pouvoir piloter physiquement une machine-outil, LinuxCNC s'appuie sur un noyau Linux temps-réel. Sans ce noyau temps-réel, il fonctionne uniquement en mode simulation. Beaucoup de changements sont en cours actuellement et LinuxCNC va bientôt prendre en charge plusieurs types de noyaux Linux temps-réel. En effet, jusqu'à présent, LinuxCNC utilisait l'extension temps-réel [RTAI](http://www.rtai.org/), en particulier en raison de ses performances. Mais le développement de RTAI est lent et, pour l'instant, le noyau le plus récent pris en charge est le 2.6.38. Cela signifie que LinuxCNC, dont la distribution par défaut est Ubuntu, est bloqué pour son LiveCD, sur une Ubuntu 10.04, qui commence à dater. Des développeurs se sont donc mis au travail, afin que LinuxCNC puisse aussi fonctionner sur les noyaux temps-réel basés sur [RT_PREEMPT](https://rt.wiki.kernel.org/index.php/Main_Page) et [Xenomai](http://www.xenomai.org/). Et les premiers résultats semblent prometteurs et laissent espérer des performances proches de celles obtenues avec RTAI. Du travail est aussi fait au niveau de la prise en charge des processeurs ARM. ![LinuxCNC](http://www.grellier.fr/pics/CNC/web_linuxcnc.jpg) ![Usinage](http://www.grellier.fr/pics/CNC/web_usinage-3.jpg) Voilà. Si ça peut aider quelques personnes souhaitant utiliser une CNC sous Linux ou si certains parmi vous ont les doigts qui les démangent, et cherchent un projet auquel contribuer.

AltStyle によって変換されたページ (->オリジナル) /