PEmbroider
Guide de tutoriels de broderie machine | |
---|---|
Module: Broderie computationnelle | |
⚐ à améliorer | ☸ débutant |
⚒ 2022/03/25 | ⚒⚒ 2018/03/01 |
Catégorie: Broderie machine |
Introduction
PEmbroider est une bibliothèque ouverte de broderie machine computationnelle développé par Golan Levin, Lingdong Huang, et Tatyana Mustakos. Selon les auteurs (notre traduction), «Les outils libres et gratuits qui existent sont soit des outils GUI autonomes complets (InkStitch, Embroidermodder), soit des bibliothèques à grande échelle (EmbroidePy), qui ne s'intègrent pas facilement aux boîtes à outils populaires de "codage créatif" et ne permettent pas non plus de créer facilement des dessins génératifs et computationnels. PEmbroider, en revanche, est une bibliothèque Java gratuite, multiplateforme, open-source et légère pour la conception de broderies génératives. Elle s'intègre au célèbre cadre de codage créatif Processing, offrant un accès facile à un écosystème vaste et diversifié de fonctionnalités, notamment la typographie de haute qualité, l'interaction en direct, la capture de mouvement, la vision par ordinateur, la cartographie SIG, la simulation physique, et bien plus encore.» (PEmbroider,Mai 2021).
License
«Intended primarily for artists, craftspersons, educators, makers, and schools, PEmbroider is free, open-source software released under both the GNU General Public Licence (GPLv3) and the Anti-Capitalist Software License (ACSL 1.4). In short: you are encouraged to use PEmbroider to make art; you are required to share your improvements to PEmbroider; and you are expressly forbidden from using PEmbroider to profiteer.» (Mai 2021).
Installation
(1) PEmbroider nécessite l'installation de Processing
- Download officiel de Processing
Sous Ubuntu 18 (un Java est compris dans la distribution de Processing 3.5.4)
- Dézipper le *.tgz
- cd processing-XXX
./processing
(2) Ensuite il faut installer PEmbroider
En principe on devrait pouvoir installer cette bibliothèque avec gestionnaire de Processing (ne marche pas....)
Sketch → Import Library → PEmbroider
Alors, il faut installer manuellement:
- Zip Archive (Download)
- Installation du zip
- Il faut dezipper l'archive dans le dossier
libraries
dans le dossier sketchbook. La location précise est indiqué dans lesPreferences
- Sous Unix:
~/sketchbook/libraries/
Structure du dossier PEmbroider. Dans le dossier example on trouve des exemples et dans reference, le manuel manque.
~/sketchbook/libraries/PEmbroider$ ls -la
drwxr-xr-x examples drwxr-xr-x library -rw-r--r-- library.properties drwxr-xr-x reference drwxr-xr-x src
Le langage processing
Le langage processing, est selon Wikipedia (5/2021, notre traduction), une bibliothèque graphique et un environnement de développement intégré (IDE) libre, conçu pour les communautés des arts électroniques, des nouveaux médias et de la conception visuelle, dans le but d'enseigner aux non-programmeurs les principes fondamentaux de la programmation informatique dans un contexte visuel.
Il existe plusieurs variantes du même langage en Java, JavaScript, Python, R etc. Arduino est un langage similaire à Processing. L'environnement Processing de base est basé sur Java et on code dans une sorte de Java simplifié, plus facile à a apprendre. L'orientation objet ne se voit que indirectement.
Un exemple d'un programme typique très simple est le suivant:
// Hello mouse.
void setup() {
size(400, 400);
stroke(255);
background(192, 64, 0);
}
void draw() {
line(150, 25, mouseX, mouseY);
text("Hello world !", width / 2, height / 2);
}
Selon Wikipedia, les gestionnaires setup()
et draw()
sont deux fonctions pré-définies très importantes dans processing. La première, setup(), est exécutée une seule fois au lancement du programme. La seconde, draw() est lancée à intervalle régulier, par défaut 60 fois par seconde.
Exemple
Dans le dossier PEmbroider il y pas mal d'exemples à tester. Ils sont également ici
Example program
Le Cheat Sheet officiel fournit un exemple de base qui montre la logique d'un script Pembroider. Il contient le code pour créer un cercle rempli avec un point tatami.
// Example PEmbroider program
import processing.embroider.*;
PEmbroiderGraphics E;
void setup() {
// Starting up:
noLoop();
size(800, 600);
E = new PEmbroiderGraphics(this, width, height);
String outputFilePath = sketchPath("filename.dst");
E.setPath(outputFilePath);
E.beginDraw();
E.clear();
//-------
// Content goes here:
E.fill(0, 0, 0);
E.circle(200, 200, 200);
//----------
// Visualization and export:
// NOTE: Leave optimize() and endDraw() commented out,
// until you are ready to export the embroidery file!
// Don't forget to un-comment them when you want to export!
//
// E.optimize(); // VERY SLOW, but essential for file output!
E.visualize(); // Display the embroidery path on-screen.
// E.endDraw(); // Actually writes out the embroidery file.
}
PEmbroider circle.png Visualisation de poins du circle
PEmbroider shapes
Tester la génération d'un fichier au format PES
Pour tester le code, il suffit de cliquer sur "Run" (>)
Ensuite on peut ajouter des commandes dans la fonction draw()
. Pour le moment cela ajouter une fonctionalité pour gommer les dessins de broderie dans la visualisation
Il faudrait surtout créer le fichier de broderie:
Au début, changer le nom du fichier en fonction de vos préférences, par exemple:
String outputFilePath = sketchPath("PEmbroider_shapes.pes");
Ensuite à la fin, optimiser et écrire le fichier.
//-----------------------
E.optimize(); // optimise le code, très lent
E.visualize();
E.endDraw(); // write out the file
//save("PEmbroider_shapes.png");
Voici une simulation du code:
PEmbroider shapes.png Visualisation des points par Processing
PEmbroider shapes-PES.png Visualisation avec Truesizer
Extrait de code (Code pour le rectangle et le circle simple en haut à gauche)
import processing.embroider.*;
PEmbroiderGraphics E;
void setup() {
//noLoop();
size (900, 600);
E = new PEmbroiderGraphics(this, width, height);
String outputFilePath = sketchPath("PEmbroider_shapes.pes");
E.setPath(outputFilePath);
E.ellipseMode(CORNER);
E.beginDraw();
E.clear();
E.strokeWeight(1);
E.fill(0, 0, 0);
E.noStroke();
E.hatchSpacing(5);
E.hatchAngleDeg(50);
E.hatchMode(PEmbroiderGraphics.SATIN);
E.setStitch(2, 50, 0);
E.PARALLEL_RESAMPLING_OFFSET_FACTOR = 0.33;
//-----------------------
// Standard shapes are supported
E.circle (50, 50, 150);
E.square(225, 50, 150);
.....
//-----------------------
E.optimize(); // slow, but very good and very important
E.visualize();
E.endDraw(); // write out the file
save("PEmbroider_shapes.png");
}
void draw(){
background(200);
if (mousePressed){
E.eraser(mouseX,mouseY,20);
}
E.visualize();
}
Liens
- PEmbroider (home page sur Github)
- Official CheatSheet (remplace un manuel introductif, à compléter avec la documentation de Processing).
- PEmbroider API Reference. Référence complète (très concise).