Guten Tag Ich will einen Plotter aus einem alten Scanner und einem Drucker bauen. Die Rohdaten für die "Zeichnung" will ich am Computer generieren, und anschliessend über z.B. die serielle Schnittstelle an einen Controller schicken. Momentan bin ich gerade am überlegen, wie ich die Ansteuerung der Schrittmotoren und die Übermittlung/Bereitstellung der Daten an den Controller lösen soll. Folgende Punkte bereiten mir derzeit noch ein Bisschen Kopfzerbrechen: Ich gehe einmal davon aus, dass man die "Zeichnung" in einem Vektor-programm zeichnen wird. (Bezüglich Koordinaten ect.) Das könnte z.B. irgend ein CAD-Programm oder Adobe Illustrator sein. Aber wie werden dann diese Koordinaten der Linien ect. aus diesen Zeichnungen herausgelesen? Sprich, wie kriege ich diese Rohdaten die ich dem Controller zur Steuerung der Motoren übermittlen muss ? Ich nehme an, dass ich auf dem Controller den Bresenham-Algorithmus implementieren muss, um z.B. eine Gerade anhand ihrer Start-, und Endkoordinaten abfahren zu können. Das ist mir soweit klar. Aber wie komme ich die Daten z.B. dieser Start-, und Endkoordinaten? Wie wird das dann bei Kurven üblicherweise übermittelt? Jede Koordinate jedes "Pixels" einzeln ? Oder muss ich da mit speziellen Dateiformaten wie DXF, HP-GL ect arbeiten? Hat da jemand mehr Erfahrung als ich ? Wie man sieht, bin ich auf diesem Gebiet noch ein grosser, dennoch intressierter Anfänger ;) Dennoch hoffe ich, dass es hier Leute gibt, die mir "auf die Sprünge" helfen. Grüsse
hagbard wrote: > Oder muss ich da mit speziellen Dateiformaten > wie DXF, HP-GL ect arbeiten? Ich denke schon... entweder das oder Du müsstest Dir eine eigenen Konverter basteln (was aber aufs Gleiche rauskäm). Die Frage die ich mir stelle ist: wie hoch ist die Wiederholgenauigkeit des so umgebauten Plotters wenn das Blatt 20x hoch und runter gefahren ist...
auf www.roboternetz.de hat jemand sein projekt vorgestellt. er hat genau das gemacht, was du jetzt vorhast. Ich finde, er hat es excellent gelöst.
Wenn Du einen richtigen Plotter ansteuern willst, dann solltest Du auch ein vektororientiertes Dateiformat haben (oder es Dir zumindest erzeugen). DXF ist so eines, HPGL auch, die Gerber-Files, die man aus der Leiterplattenherstellung kennt auch. HPGL und die Gerber-Files sind sehr einfach. Bei DXF solltest Du reichlich Erfahrung haben. Vieles nennt sich DXF, entspricht aber nicht der DXF-"Norm", es gibt Dialekte ohne Ende, Erweiterungen noch und nöcher, da wirst Du nicht froh. In einem früheren Leben hatte ich mal damit zu tun, jeder Hersteller einer CAD mit DXF-Ausgabe interpretiert DXF anders, oft passt es nicht, manchmal nicht richtig. Aber das wäre erst einmal der zweite Schritt, im ersten Schritt brauchst Du die entsprechende Hardware. Ich würde bei der Ansteuerung mit einem eigenen "internen" Format arbeiten (kann durchaus an HPGL oder Gerber angelehnt sein, übrigens gab es da mal eine DIN 66025) und die Schnittstelle nach außen läuft über einen Konverter. Du wärst dann flexibler (Vielleicht willst Du mal aus einer Bohrung einen Kreis malen, oder so). Das solls erst einmal sein Ciao
@anonymous: Hast du den genauen Link, kann leider nichts finden
Thread: http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=31737&highlight=plotter+selbstgebaut PDF zum Projekt: http://www.swine.de/daten/plotterk.pdf lg Peter
Elektro Gandalf wrote:
> Hast du den genauen Link, kann leider nichts finden
Stimmt, ohne die Suchfunktion ist das schwer zu finden... mit
Suchfunktion der 2. Beitrag mit Suchwort "Plotter" :)
"Die Frage die ich mir stelle ist: wie hoch ist die Wiederholgenauigkeit des so umgebauten Plotters wenn das Blatt 20x hoch und runter gefahren ist..." Ich dachte mir das so: Als x-Achse nehme ich den Transferarm des Scanners. Auf diesen Arm montiere ich wiederum den Transferarm des Druckers, welcher die Patrone hin un her bewegt. Das ist dann die y-Achse. So sollte ich eigentlich jede Koordinate eines A4-Blattes erreichen können. Ich habe mir nun einmal die Dokumentation des Projektes auf www.roboternetz.de angeschaut. Sieht interessant aus. Dieser Mensch hat jedoch mit Freehand gearbeitet, anschliessend daraus ein Postscript erstellt und mit "Runtime Revolution" die Koordinate für den Plotter berechnet. Leider ist diese Software nur für Mac. Gehe ich richtig in der Annahme, dass ich eine Software schriben muss, die mir bloss die Koordinaten des neuen Punktes an den Controller senden muss. Der Controller beweegt sich jetzt auf schnellstem Weg dorthin. Für eine Gerade wären das dann bloss 2 Koordinaten und sehrwahrscheinlich für eine Kurve sehr viele. Der Controller würde dann mittels Bresenham-Algorithmus den "schnellsten" Weg zu den neuen Koordinaten berechnen und die Schrittmotoren entsprechend ansteuern. Ist er an den neuen Koordinaten angelangt, sendet er ein OK an den Computer, und der nächste Datensatz wird gesendet. Stimmt das vom Prinzip her ? Aber wie komme ich nun an diese Koordinaten ran? Sollte ich die aus dem Postscript file extrahieren können? Wie sind die normalerweise abgespeichert? Ich habe ja auf dem Plotter sozusagen auch eine "Auflösung". Die Schritte dier der Schrittmotor für die ganze x-Achse braucht mal die Schritte für die y-Achse. Diese Auflösung müsste ich ja beim Berechnen der Koordinaten für den Controller berücksichtigen. Gruss
hagbard wrote: > Dieser Mensch hat jedoch mit Freehand gearbeitet, anschliessend daraus > ein Postscript erstellt und mit "Runtime Revolution" die Koordinate für > den Plotter berechnet. Leider ist diese Software nur für Mac. > Gehe ich richtig in der Annahme, dass ich eine Software schriben muss, > die mir bloss die Koordinaten des neuen Punktes an den Controller senden > muss. Das würde ich nicht tun. Ich würde Plotterseitig einen HPGL Interpreter schreiben. Alte DOS CAD Programme kommen praktisch immer mit einem HPGL Treiber daher. Für Windows gibt es einen 'rudimentären' HPGL Treiber, der sich als ganz normaler Drucker installieren lässt. > Der Controller beweegt sich jetzt auf schnellstem Weg dorthin. Für eine > Gerade wären das dann bloss 2 Koordinaten und sehrwahrscheinlich für > eine Kurve sehr viele. Der Controller würde dann mittels > Bresenham-Algorithmus den "schnellsten" Weg zu den neuen Koordinaten > berechnen und die Schrittmotoren entsprechend ansteuern. Yep. > Ist er an den > neuen Koordinaten angelangt, sendet er ein OK an den Computer, und der > nächste Datensatz wird gesendet. > Stimmt das vom Prinzip her ? Das mit der Rückmeldung würde ich gleich mal aussen vor lassen. Der Druckertrieber vom PC sendet Daten. Punkt. Wenn der Zwischenspeicher im Plotter voll ist (oder voll zu werden droht), greifen die ganz normalen RS-232 Mechanismen: sprich, mittles Handshake wird dem PC mitgeteilt doch bitte mal das Senden zu unterbrechen, damit der Datenwust abgearbeitet werden kann. > > Aber wie komme ich nun an diese Koordinaten ran? Sagen wir doch: HPGL Das ist ein Datenformat das von HP eingeführt wurde um zb. die Plotter von HP anzusteuern. Da es sehr einfach aufgebaut ist, erfreut es sich immer noch grosser Beliebtheit. HPGL ist einfach nur Text. Das sieht zb so aus PU; und bedeutet 'Pen Up' oder PU1000,1000;PD2000,3000;PU; was soviel heist wie: Pen Up und zur Position 1000/1000 fahren dort dann Pen down und zur Position 2000/3000 fahren dort dann einen Pen Up ausführen. > Sollte ich die aus dem > Postscript file extrahieren können? Wie sind die normalerweise > abgespeichert? Vergiss Postscript. Alles viel zu kompliziert. > Ich habe ja auf dem Plotter sozusagen auch eine "Auflösung". Die > Schritte dier der Schrittmotor für die ganze x-Achse braucht mal die > Schritte für die y-Achse. > Diese Auflösung müsste ich ja beim Berechnen der Koordinaten für den > Controller berücksichtigen. Ja musst du. Die Ansteuersoftware geht davon aus, dass eine bestimmte Schrittanzahl in X und Y möglich ist. Die Umrechnung sollte aber nun wirklich kein Problem sein. Das ist ein simpler Dreisatz.
Hmm. Den Windows Plotter Treiber scheint es so in der Windows Standard Installation nicht mehr zu geben. Es gibt aber Ersatz. Siehe http://www.martinvogel.de/forum/forum_entry.php?nr=209
hmm... also bei meiner XP-Prov. Version kann ich einen HP Plotter ( HP-GL/2 ) als Drucker auswählen. Geht an com oder lpt. lg Peter
Ich habe jetzt schon diverse HP-GL/2 Plotter Treiber installiert und ausprobiert. Wenn ich in einem CAD (Vellum / Draftboard) bloss eine Linie zeichne und diese plotten will, bekomme ich irgendwie nicht das Erwartete: (mit windowseigenem 'Hewlett-Packard HP-GL/2 Plotter' Treiber) ;BP;IN;SP0;QL100ROPS10240,8000RO90IP0,0,7999,10239SC0,3999,5119,0ACPA0, 0WU0PW0PP1PUSPPG; Irgendwie hätte ich mir laut Karl Heinz Buchegger eher etwas wie PU1000,1000;PD2000,2000;PU; also Start- und Endkoordinaten der Linie erwartet. Wäre das HP-GL und nicht HP-GL/2? Oder muss ich beim Treiber noch etwas spezielles konfigurieren? Was mache ich falsch ?
hagbard wrote: > Ich habe jetzt schon diverse HP-GL/2 Plotter Treiber installiert und > ausprobiert. Wenn ich in einem CAD (Vellum / Draftboard) bloss eine > Linie zeichne und diese plotten will, bekomme ich irgendwie nicht das > Erwartete: > > (mit windowseigenem 'Hewlett-Packard HP-GL/2 Plotter' Treiber) > ;BP;IN;SP0;QL100ROPS10240,8000RO90IP0,0,7999,10239SC0,3999,5119,0ACPA0, 0WU0PW0PP1PUSPPG; > > Irgendwie hätte ich mir laut Karl Heinz Buchegger eher etwas wie > PU1000,1000;PD2000,2000;PU; > also Start- und Endkoordinaten der Linie erwartet. > Wäre das HP-GL und nicht HP-GL/2? Oder muss ich beim Treiber noch etwas > spezielles konfigurieren? > Was mache ich falsch ? Du erwartest dass ich alle HPGL Kommandos auswendig kann. Kann ich nicht. Gibts aber im Netz. Und genau diese Doku suchst du jetzt mal. Deine Linie musste bei PA0,0 anfangen (PA = Plot absolut) und das Ende kann ich mangels Code Kenntnisse nicht entdecken. Besorg dir die HPGL Codes.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.