Passer au contenu principal

Roland DXY-990

https://github.com/TimeTravel-0/penplotterfeeder

https://pypi.python.org/pypi/Chiplotle

https://hackaday.io/project/12276-roland-dg-dxy-990

http://www.rolandforum.co.uk/viewtopic.php?f=49&t=2072

http://wiki.lghs.be/_media/rnd:screencapture-rolanddga-support-product-lifecycle-policy-1508016279527.png

Milieu de page http://www.synthfool.com/laser/

Cable Serial <> USB : http://cmc.music.columbia.edu/chiplotle/manual/_static/SerialPlotterCable_Chiplotle.pdf

Créer un adaptateur à partir d'un vieux "pen": https://www.flickr.com/photos/anachrocomputer/sets/72157624783555539

psdtoedit

Pstoedit est un vieux soft en ligne de commande pour convertir à peu près n'importe quel fichier vectoriel en HPGL.

Installation sur Raspbian Jessie Lite :

  $ sudo apt install ghostscript
  $ sudo apt install pstoedit

Utilisation :

  $ PAGE_SIZE="a3" HPGL_VERSION=1 pstoedit -f "plot-hpgl:-plotformat hpgl" input.pdf output.hpgl

Les traits ont l'air d'être appliqués deux fois, ce qui peut être sympa pour les bics un peu récalcitrants mais ça vaudrait la peine de chercher à comprendre pourquoi.

Des variables d'environnement sont disponibles, voir sur https://www.gnu.org/software/plotutils/manual/en/html_node/Plotter-Parameters.html

Envoi depuis une Raspberry Pi avec le script python https://github.com/TimeTravel-0/penplotterfeeder Ratio de 40 sur les distances:

PD400,400;

envoie le pen à x10mm, y10mm. Maximum travel size: x416, y259 (16640, 10360). Au-dessus le déplacement est imprédictible (quelques millimètres de décalage).

Des commandes spéciales permettent de parler à la machine grâce au caractère d'échappement "ESC". Il a le code ASCII 27, en python on l'obtient avec chr(27). En Nodejs, "\x1b".

  • [ESC].B récupérer l'état du buffer (Nodejs: "\x1b.B")
  • [ESC].E récupérer un code d'erreur (0 = pas d'erreur, pour les autre codes voir manuel papier)
  • [ESC].O récupérer l'état de la machine (pour codes voir manuel papier)
  • [ESC].K arrêter le plot en cours et vider le buffer. Ne fonctionne pas top, on doit envoyer la commande plusieurs fois pour qu'elle soit prise en compte et parfois elle ne l'est pas.
  • IN; initialisation
  • SP1; selection du pen ⇒ 1
  • VS1; vitesse du pen ⇒ 1
  • SI1,1; taille sur l’axe x ⇒ 1, y ⇒ 1
  • PA0,4000; position x ⇒ 0, y ⇒ 4000
  • DT$; carractère final ⇒ $ et (char)3 = caractère invisible par défault
  • LB RADISLAV EST BG$; texte à afficher ⇒ RADISLAV EST BG + char final ⇒ $ (qui ducoup sera afficher)
  • PU; lever le pen
  • PD; decendre le pen
  • CP; retour à la ligne

Interface Web

John a créé une app web pour importer un fichier HPGL, le prévisualiser et l'envoyer à la machine : https://github.com/LgHS/hpgl-sender

(suivre les instructions du README)

Script Python

ssh pi@192.168.*.*
sudo apt-get install git virtualenv
git clone https://github.com/TimeTravel-0/penplotterfeeder.git
cd penplotterfeeder
virtualenv .
. bin/activate
pip install pySerial
python plot.py tests.hpgl 1 0 0 /dev/ttyUSB0

Il est possible de générer du HPGL directement depuis Processing avec cette librairie : https://github.com/ciaron/HPGLGraphics.

Cette lib ne prend pas en compte P3D (rotateXvertex(float,float,float)), il faut repartir d'un Fork de PGGraphicsSVG (sur le github de Processing) et adapter pour le HPGL.

Fork HPGLGraphics

John a forké la librairie Processing pour pouvoir définir des tailles personnalisées, des marges et la vitesse du pen : https://github.com/drskullster/HPGLGraphics (v1.0.4)

Pour compiler :

  • brew install ant
  • cd HPGLGraphics/resources
  • ant -Dclasspath.local.location=[Processing path] -Dsketchbook.location=[Sketchbook path]
  • La librairie est compilée dans le dossier [Sketchbook path]. Si l'originale était déjà présente, elle a été remplacée.