Autor Beitrag
rotalosi
Hält's aus hier
Beiträge: 10
Erhaltene Danke: 1



BeitragVerfasst: Di 15.11.16 15:04 
Hallo,

heute muss ich etwas weiter ausholen um zu beschreiben welches Problem ich habe.

Ich habe eine (sehr alte) Maschine mit der man Vektorgrafiken im HPGL Format und auch Bitmaps (Nur Schwarz-Weiß) in Metall fräsen(gravieren) kann geerbt. :D
Ich habe mir eine Steuerung mit einem AVR gebaut. Diese Steuerung erwartet immer (Über USB) eine XY Position und ob der Fräskopf bei der Bewegung unten oder oben sein soll. Dazu habe ich eine Delphi Programm geschrieben, dass diese Daten aus einer *.plt Datei extrahiert und an die Steuerung schickt. Das funktioniert jetzt einwandfrei.

Nun wollte ich (wie in der defekten Original Steuerung) ein Schwarz-Weiß Bitmap fräsen. Aber da komme ich nicht weiter.

In der Originalsteuerung funktionierte das so: Je nach gewähltem Fräskopf wurde die X-Achse in festen Schrittgrößen vorwärts bewegt. Auf der Y-Achse wurde der Fräskopf auf das Metall gesenkt, solange die Bitmap an der entsprechenden Position schwarz war.

Mein erster Gedanke war einfach an den entsprechenden XY Punkten aus der Bitmap die Farben auszulesen.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
        for x:=0 to bild.Width -1 do
          begin
            for y:=0 to bild.Height -1 do
              begin
                color :=bild.Canvas.Pixels[x,y];
                List.Add('X = '+inttostr(x)+ ' Y = '+inttostr(y)+' Color = '+inttostr(color));
              end;
          end;

Das klappt aber nicht gescheit. Selbst bei einem kleinen Bild sind das zu viele Bildpunkte. Wenn ich nur jede 4 oder 5 Zeile nehme verliere ich Bildinformationen.

Ich finde einfach keinen praktikablen Ansatz. Hat jemand eine Idee wie ich sowas umsetzen könnte?

Gruß Frank
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6212
Erhaltene Danke: 94

Windows 7
XE2
BeitragVerfasst: Di 15.11.16 15:28 
Da du nur nach einem Ansatz fragst:

Stimmt die Bild-Auslösung mit der Auflösung der Fräsmaschine überein?
Falls nicht, solltest du vielleicht vor der Übertragung das Bitmap in die richtige Auflösung umwandeln.
t.roller
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 40
Erhaltene Danke: 9



BeitragVerfasst: Di 15.11.16 17:30 
Warum so umständlich?
Ich hätte einen Universal-Plotter-Treiber auf einem WINDOWS-PC installiert und getestet, was die Maschine mit den HPGL-Daten damit macht.
Wenn das Ergebnis nicht zufriedenstellend ist: Solange Grafik in einem Grafik-Programm ändern, bis es passt.

Kleiner Tipp: Zum Testen einen Paraffinblock nehmen...
rotalosi Threadstarter
Hält's aus hier
Beiträge: 10
Erhaltene Danke: 1



BeitragVerfasst: Mi 16.11.16 08:50 
@t.roller
Warum so umständlich?

Weil ich ein Programm schreiben will das die Maschine ansteuert.
Sicherlich gäbe es viele andere Möglichkeiten, aber bestimmt würde ich da nicht in einem Entwicklerforum nach fragen. Es geht ja darum das ich im Programm eine Bitmap öffne und diese interpretiere und an die Maschine übergebe.

@jascoul
Das versuche ich jetzt gerade. Ist aber nicht ganz so einfach. Die rein "elektronische" Auflösung, also die Punkte die die Schrittmotoren ansteuern können unterscheidet sich ja sehr deutlich von der mechanischen Auflösung, die durch den Gravierkopf vorgegeben wird. Ich denke aber das dies der richtige Weg ist.