HP Plotter

Unsere CAD-Abteilung kann jetzt die Entwürfe großformatig ausdrucken.

ACHTUNG: Wer direkt aus Inkscape drucken möchte liest bitte den letzten Abschnitt unten

A0-Plotter

A1-Plotter

Projekt-Team

Derzeit nur Ralf

Das Projekt

In einem ersten Schritt geht es zunächst mal darum, die Plotter an einer USB-Schnittstelle ans laufen zu bringen. Die Plotter haben beide RS232 und sprechen HPGL. Sollte also machbar sein mit:
USB —> FTDI —> RS232

Die Handbücher

Sind auf der C-Hack Owncloud

Und hier: HP-Computermuseum

Projektfortschritt

Der Probedruck hat auf Anhieb geklappt.

Die RS232 Schnittstelle funktioniert auch. Ich habe direkt ein paar HPGL Befehle über ein Terminal geschickt:

IN; //setzt den Plotter zurück
PU 1000,1000; //Fährt den Stift nach x=1000, y=1000 Plottereinheiten
PD 0,0; //Zeichnet einen Strich nach 0,0
LB Das ist ein Test //Schreibt den Text

Inkscape Zeichnungen plotten

1. Papier einlegen und vorbereiten
– Mindestens einen Stift in das Karussell einsetzen (Position 1)
– USB zu Seriell Converter in USB Schnittstelle stecken
– Papier einlegen (weit reinschieben, so dass hinten ca. 20cm herauskommen)
– [Chart Hold] Knopf am Plotter drücken
– [Remote] Knopf am Plotter drücken
– [P1] Knopf bewegt den Stift an die links-unten Ecke des Plotterbereichs
– [P2] Knopf bewegt den Stift an die rechts-oben Ecke des Plotterbereichs

2. Schnittstelle auf dem Rechner vorbereiten
– command line: stty -F /dev/ttyUSB0 9600 crtscts

3. Zeichnung in Inkscape erstellen
– Alle Objekte müssen in Pfade gewandelt werden
– Dann als dateiname.plt abspeichern

4. Plotten
– Command line: cp dateiname.plt /dev/ttyUSB0

Plotbereich bei A0 Papier: -22840,-16180 … 22840,16180 (plotter units)

D.h Der Ursprung (x=0, y=0) liegt in der Blattmitte.
Da z.B. Inkscape den Ursprung des Plotbereichs auf die linke untere Ecke des Papiers legt, muss man die Zeichnung um eine halbe Papierlänge nach links verschieben und um eine halbe Papierbreite nach unten.
Das ist unschön…

…Besser:
Mit dem HPGL Command IP 0,0,45680,32340; werden die Referenzpunkte P1 und P2 so kalibriert, dass sie zu den Inkscape Koordinaten passen.
Ich schreibe noch ein kleines Script, das das alles automatisch richtig einstellt.

Hier das Ganze als Shell-Script:

#!/bin/bash
echo "cplot CC-by c-hack.de 2018"
serialPort=$(/bin/ls /dev/tty* | /bin/grep ttyU)
if [ -z $serialPort ];
then

echo "no USB Serial Port found"
exit 1

else

echo $serialPort found

fi
echo "Plotting in progress...."
/bin/stty -F $serialPort 9600 crtscts
echo "IP 0,0,45680,32340;" > $serialPort
cp $1 $serialPort
echo "Done!"

Direkt aus Inkscape plotten

Wichtig: Wenn du Inkscape auf deinem Rechner unter Linux als Snap installiert hast, kann Inkscape nicht auf die serielle Schnittstelle zugreifen. Um den Zugriff zu erlauben gibst du in der Shell ein:

sudo snap connect inkscape:raw-usb

Das Plotten funktioniert dann nicht über den Drucken-Dialog, sondern in Extensions:

Dort die richtige serielle Schnittstelle einstellen. Z.B. /dev/ttyUSB0

Wichtig: Als Flow Control muss RTS/CTS gewählt werden. Sonst kommt es zu Übertragungsfehlern und der Plotter erzeugt wilde Kritzeleien.

Der Nullpunkt muss in der Blattmitte liegen.

Wenn die Grafik so wie hier hochkant gezeichnet ist, dann muss man die Option Drehen um 90° wählen.

Siehe hier:

Sobald man „Apply“ klickt startet der Plotvorgang.

Natürlich muss der Plotter vorbereitet sein, so, wie oben beschrieben (Paper Hold und Remote)