{{tag>graphisme impression plotter em}}
====== Plotter Roland DXY-1200 ======
{{:materiel:plotter_roland_dxy-1200:plotter_roland_dxy-1200.jpg?direct&700|}}
**Caractéristiques**
* surface d'impression : A3 (297 x 42 mm)
* langage de contrôle : DXY-GL, une variante Roland du HPGL
* plateau à plaquage électrostatique
* connexions : port parallèle ou port série DB-25 par câble [[https://en.wikipedia.org/wiki/Null_modem|Null-modem]] + câble USB-série
En français, «plotter» se traduit par «table traçante». Le principe d'impression est de déplacer un feutre selon un mouvement en XY, de l'abaisser pour tracer ou le lever pour le déplacer. Ce modèle permet d'utiliser 8 feutres différents qui sont stockés sur le côté, le plotter vient lui-même chercher le feutre à utiliser. Ces machines étaient couramment utilisées avant que des imprimantes graphiques soient disponibles, jusqu'à la fin des années 1980, en particulier dans la construction pour tracer des plans.
===== Comment tracer ? =====
1. Relier l'ordinateur au plotter en utilisant un cable série et un adaptateur USB-Série.
2. Placer le papier
* vérifier que le voyant paper hold est éteint
* positionner le papier en commençant par le coin en bas à gauche
* appuyer sur paper hold pour activer le plaquage électrostatique
{{:materiel:plotter_roland_dxy-1200:plotter_placement_papier.png?direct&600|}}
3. Envoyer le dessin à tracer, voir ci-dessous les diférentes méthodes pour créer le dessin
===== Dimensions de la zone d'impression =====
Le plotter peut fonctionner selon 2 unités différents : 0.1mm ou 0.025mm, le réglage s'effectue par un dipswitch à l'arrière. Selon l'unité les valeurs maximum de coordonnées sont modifiées.
**L'origine du repère est en bas à gauche.**
{{:materiel:plotter_roland_dxy-1200:dxy-1200_zone_impression.png?direct&900|}}
===== Comment créer le tracé ? =====
==== Avec Inkscape ====
Plusieurs tentatives infructueuses avec les fonctions traceur de inkscape 0.92 et inkcut 1.0 sur debian 9.0 : impossible d'ouvrir le port série
* https://www.codelv.com/projects/inkcut/
* https://github.com/inkcut
* https://alpha.inkscape.org/vectors/www.inkscapeforum.com/viewtopic7cc6.html?t=4987 version 1.0 pour inkscape 0.92
A réessayer avec des versions plus récentes d'inkscape ou inkcut.
==== Avec Processing ====
Premier test
/* Test plotter Roland DXY-1200 / tracé d'une diagonale
La Baleine, résidence «Extension graphique», 6 sept. 2022
pierre@lesporteslogiques.net / processing 4.0b2 @ kirin / debian 9 stretch
dimensions d'une feuille A3 sur plotter : 16800 x 11880 (avec unité de 0,025mm)
*/
import processing.serial.*;
Serial myPort;
void setup() {
println(Serial.list());
myPort = new Serial(this, Serial.list()[1], 9600); // ouverture du port
}
void draw() {
String GL;
GL = "IN;SP1;PU;";
GL += "PU80,80;";
GL += "PD16720,11800;";
GL += "PU;";
myPort.write("IN;");
myPort.write("OS;");
myPort.write(GL);
noLoop();
}
Avec Processing, il ne faut pas envoyer les instructions trop vite, le buffer de mémoire étant limité à 1024 octets. Saturer le buffer produit la perte de commandes et le traceur signale une erreur en faisant clignoter la led en bas à gauche. (voir ci-dessous pour vider la mémoire)
**Des exemples plus complets sont accessibles ici : https://github.com/emoc/processing_roland_dxy-1200**
=== Notes ====
Ca doit être possible de récupérer des infos sur l'état du plotter en communication série pour débusquer les erreurs!
==== Avec Python et Chiplotle ====
* http://sites.music.columbia.edu/cmc/chiplotle/
* https://github.com/drepetto/chiplotle
* https://chiplotle.readthedocs.io/en/latest/index.html
===== Documentation =====
* Mode d'emploi du DXY-1350 (fr, pdf) : [[https://lesporteslogiques.net/materiel/plotter_roland_DXY-1200/DXY_FR.PDF|Plotter DXY]]
* Référence pour le langage de commande : [[https://lesporteslogiques.net/materiel/plotter_roland_DXY-1200/Roland_DXY-1300-1200-1100_Command_Reference_Manual.pdf|Command Reference Manual DXY-1200 (en, pdf)]]
===== Connexion =====
**Cable série DB-9 / DB-25**
Schéma diffusé dans la communauté Chiplotle d'après le [[https://lesporteslogiques.net/materiel/plotter_roland_DXY-1200/plotter_cable.pdf|câble Assmann AK150-3-R]]
{{:materiel:plotter_roland_dxy-1200:cable_plotter_db9_db25.png?direct&600|}}
Les paramètes de la communication série sont définis par les dipswitchs à l'arrière de la machine :
* 9600 bps
* parity : None
* databits : 8
* stopbits : 1
===== Langage de commande =====
Le plotter (comme tous ceux de la série 1000) comprend les instructions en langage DXY-GL ou RD-GL 1 (RolanD Graphic Language ), le choix du langage est fixé par un dipswitch à l'arrière du plotter. Les commands DXY-GL sont composées d'une seule lettre, en RD-GL les commandes sont composées de 2 lettres. \\
Quelques exemples :
IN - Initialize
PD - Pen Down
PU - Pen Up
SP - Select Pen
CI - Circle
Quelques séquences d'instructions en détail :
**IN;SP4;FT4,41;PU5900,6200;RR200,200;**
* IN; initialise le tracé
* SP4; sélectionne la plume n°4 du chargeur
* FT4,41; définit le mode de remplissage par hacurage avec un espacement de 41 unités
* PU5900,6200; place la plume aux coordonnées 5900, 6200
* RR200,200; remplit un rectangle de dimension 200, 200 dont l'origine est à la position de la plume
**IN;SP5;PU3000,3000;PD5000,5000;CI500,60;**
* IN; initialise le tracé
* SP5; sélectionne la plume n°5 du chargeur
* PU3000,3000; déplace la plume levée jusq'au point 3000, 3000
* PD5000,5000; trace une ligne de la position actuelle vers le point 5000, 5000
* CI500,60; trace un cercle autour de la position actuelle de rayon 500 et de segment 60° (= un hexagone)
===== Pointes =====
===== Entretien =====
Pour conserver l'effet électrostatique : **ne jamais nettoyer la surface d'impression avec de l'eau!** (ni tissus siliconé, détergent, solvant ou tissus traité chimiquement) \\
===== Problèmes =====
==== Auto-test ====
Pour tester si le plotter fonctionne, il est possible de démarrer la machine en auto-test :
* mettre sous tension en appuyant sur enter (le tracé se met en pause)
* placer le papier et appuyer sur paper hold pour déclencher la fixation électrostatique
* appuyer sur pause pour relâcher la pause
==== Arrêter un tracé / Vider la mémoire ====
* appuyer sur [PAUSE]
* appuyer sur [VIEW]
* maintenir [ENTER] et appuyer sur [->]
===== Ressources =====
* https://wiki.liegehacker.space/books/reverse-engineering/page/roland-dxy-990
* https://github.com/beardicus/awesome-plotters/blob/main/README.md
* https://drawingbots.net/resources
* procédure inkscape et autres infos : https://hackaday.io/project/12276-roland-dg-dxy-990/details
* lib HPGL pour Processing (à tester!) https://github.com/ciaron/HPGLGraphics
* https://www.atarimagazines.com/creative/v10n7/170_Plots_about_plotters.php
* refaire une alim : https://www.jarredglickstein.com/pen-plotters.html
* http://www.alfredklomp.com/technology/plotter/
* https://martianwabbit.com/2019/10/25/notes-on-a-roland-dxy-1150.html
* https://sighack.com/post/cohen-sutherland-line-clipping-algorithm