Logo carnetderootxzz@carnetderoot.net"La simplicité est la sophistication suprême" - Léonard De Vinci
jeudi 16 juillet 2015

:: OpenSCAD ::

Commandes de dessin

Formes 3D simples

  • cube() pour un parallélépipède,
  • cylinder() pour un cylindre ou un cône, tronqué ou non,
  • sphere() pour une sphère,
  • polyhedron() pour un polyèdre.

Toutes ces commandes comportent, dans les parenthèses qui suivent leur nom, un ou plusieurs paramètres. Ils sont particuliers à chaque commande et indiquent généralement des dimensions ou des distances, toujours en millimètres, parfois des instructions de rendu.

Formes 2D

  • square() pour un carré ou rectangle,
  • circle() pour un cercle,
  • polygon() pour un polygone.

Elles n’ont pas d’épaisseur, celle-ci leur est donnée par les commandes de transformation linear\_extrude() et rotate\_extrude().

Commandes de transformation

Les formes 3D et 2D peuvent être combinées et manipulées pour former des objets complexes, par des commandes de transformation dont voici les principales :

  • difference() pour extraire une forme d’une autre,
  • union() pour unir plusieurs éléments,
  • translate() pour déplacer un élément,
  • rotate() pour pivoter un élément,
  • intersection() pour ne conserver que la partie commune de deux formes se chevauchant,
  • resize() pour modifier la taille d’un élément,
  • color() pour colorer l’affichage d’un élément,
  • hull() pour réaliser une fusion de formes,
  • minkowski() pour créer un enveloppement d’une forme par une autre,
  • import() pour utiliser un fichier STL ou DXF,
  • linear_extrude() et rotate_extrude() pour donner une élévation à une forme 2D.

Références


mercredi 13 août 2014

:: Installation et utilisation de Pronterface et Skeinforge ::

Références

Installation des pré-requis

Python

Télécharger et installer Python 2.x.

Pour Linuxmint/Ubuntu, les paquets étant disponibles dans les sources officielles, on recherche la dernière version disponible :

$ sudo aptitude search python | grep -E '\s+python2\..\s+'
p   python2.7                       - Langage interactif de haut niveau orienté

Puis on l'installe :

$ sudo aptitude install python2.7

Note : tkinter est habituellement installé par défaut avec Python, mais vérifier quand même que les librairies sont bien présentes.

$ sudo aptitude search python | grep tk | grep ^i
[...]
i A python-tk                       - Tkinter - Écrire des applications Tk avec
[...]

Pypy (facultatif)

Pypy est un interpréteur alternatif à la distribution standard de Python. Il se veut plus rapide et reste compatible avec le code existant.

Télécharger et installer Pypy, ainsi que le module Tkinter.

$ sudo aptitude install pypy pypy-tk

Installation de Pronterface et Skeinforge

Pour installer dans ~/RepRap/, exécuter les commandes suivantes :

$ mkdir ~/RepRap
$ cd ~/RepRap
$ git clone https://github.com/kliment/Printrun.git
$ wget -P /tmp http://fabmetheus.crsndoo.com/files/50_reprap_python_beanshell.zip
$ unzip -d ~/RepRap/Printrun/skeinforge /tmp/50_reprap_python_beanshell.zip
$ ln -s ~/RepRap/Printrun/skeinforge/* ~/RepRap/Printrun/
$ rm -rf /tmp/50_reprap_python_beanshell.zip

Connexion à l'imprimante

Lancer Pronterface :

$ cd ~/RepRap/Printrun
$ ./pronterface.py

Sur Linux Mint 14 j'ai rencontré un problème de connexion avec l'imprimante (pb de baudrate), résolu par l'application du patch suivant :

$ cd /usr/lib/python2.7/dist-packages/serial/
$ sudo wget http://sourceforge.net/p/pyserial/patches/_discuss/thread/ed3fb0de/f4fd/attachment/pyserial.patch
$ sudo patch -b serialposix.py pyserial.patch

:: Installation de la suite logicielle Printrun/Pronterface et Slic3r ::

Références

Installation de Python

Python

Télécharger et installer Python 2.x.

Pour Linuxmint/Ubuntu, les paquets étant disponibles dans les sources officielles, on recherche la dernière version disponible :

$ sudo aptitude search python | grep -E '\s+python2\..\s+'
p   python2.7                       - Langage interactif de haut niveau orienté

Puis on l'installe :

$ sudo aptitude install python2.7

Note : tkinter est habituellement installé par défaut avec Python, mais vérifier quand même que les librairies sont bien présentes.

$ sudo aptitude search python | grep tk | grep ^i
[...]
i A python-tk                       - Tkinter - Écrire des applications Tk avec
[...]

Pypy (facultatif)

Pypy est un interpréteur alternatif à la distribution standard de Python. Il se veut plus rapide et reste compatible avec le code existant.

Télécharger et installer Pypy, ainsi que le module Tkinter.

$ sudo aptitude install pypy pypy-tk

Installation de Printrun/Pronterface et connexion à l'imprimante

Installation

Pour Ubuntu/Debian, donc pour Linuxmint aussi, il n'y a pas encore de paquet disponible dans les sources officielles, on va donc cloner le repository git et ainsi profiter de la dernière version.

Avant tout, on installe les dépendances :

$ sudo apt-get install python-serial python-wxgtk2.8 python-pyglet python-tornado python-setuptools python-libxml2 python-gobject avahi-daemon libavahi-compat-libdnssd1 python-dbus python-psutil git

Puis on clone les sources :

$ git clone https://github.com/kliment/Printrun.git

Permissions utilisateurs

Sous Linux Mint, l'utilisateur doit appartenir au groupe dialout pour accéder au périphérique.

$ sudo adduser utilisateur dialout

Connexion à l'imprimante

Lancer Pronterface :

$ cd Printrun
$ ./pronterface.py

Sur Linux Mint 17, j'ai rencontré un problème de connexion avec l'imprimante :

[...]
Connexion en cours...
stty: /dev/ttyACM0: Permission non accordée
[ERROR] Impossible de se connecter à /dev/ttyACM0 à la vitesse 250000:
Erreur série: could not open port /dev/ttyACM0: [Errno 13] Permission non accordée: '/dev/ttyACM0'
[...]

Cette erreur est dûe à un problème de baudrate. Pour résoudre ce problème il est nécessaire d'appliquer le patch suivant :

$ cd /usr/lib/python2.7/dist-packages/serial/
$ sudo wget http://sourceforge.net/p/pyserial/patches/_discuss/thread/ed3fb0de/f4fd/attachment/pyserial.patch
$ sudo patch -b serialposix.py pyserial.patch

Suite à l'application du patch, la connexion fonctionne déjà mieux :

Connexion en cours...
Imprimante connectée.

Installation de Slic3r

Installation et configuration de Slic3r

Deux méthodes sont possibles ici en fonction de la version de Slic3r que l'on désire installer. Soit on utilise les paquets fournis sur le site, soit on compile soi-même à partir des sources.

Méthode 1 : Paquets pré-compilés

  • Télécharger Slic3r
  • Extraire le contenu de l'archive et lancer le fichier bin/Slic3r

Méthode 2 : Sources

  • Installation des dépendances

    $ sudo apt-get install git build-essential libgtk2.0-dev libwxgtk2.8-dev libwx-perl libmodule-build-perl libnet-dbus-perl libexpat1-dev cpanminus
  • Pour la vue 3D (facultatif), il faut aussi installer ces paquets :

    $ sudo apt-get install libxmu-dev freeglut3-dev libwxgtk-media2.8-dev
  • Récupération des sources

    $ git clone https://github.com/alexrj/Slic3r.git
  • Installation

    $ cd Slic3r
    $ sudo perl Build.PL
    $ sudo perl Build.PL --gui

Note : Cette dernière commande est facultative si on n'a pas besoin de l'interface graphique.

Configuration de Slic3r

  • Lancer Slic3r
  • Configurer l'impression, le filament et l'imprimante dans les différents onglets
    • Conseil : enregistrer les paramètres de chaque onglet dans un fichier de configuration spécifique.
  • Exporter la configuration vers le fichier INI de votre choix (menu File / Export Config)

Intégration de Slic3r à Pronterface

  • Lancer Pronterface et ouvrir le menu Paramètres / Options
  • Dans l'onglet Commandes externes, remplacer les champs suivants par la commande indiquée :
    • Commande de slicing : /chemin/vers/bin/slic3r $s --load /chemin/vers/config.ini --output $o
    • Commande pour les paramètres du slicer : /chemin/vers/bin/slic3r --load /chemin/vers/config.ini --ignore-nonexistent-config
  • Dans l'onglet Interface utilisateur, cocher les cases :
    • Activer l'intégration de Slic3r
    • Mettre à jour les profils par défaut de Slic3r

Slic3r est maintenant correctement configuré et intégré à Pronterface.