Hallo,
was ich sagen wollte, das der Winkel und der Weg x nur dann proportional sind, wenn die Ansteurung über die Drehbewegung einer Kreisscheibe(segment passiert.
Der Druckkopf der meisten Tintenstrahldrucker wird von einem Zahnriemen gezogen, der mittels einer Zahnriemenscheibe auf einem Schrittmotor angetrieben wird.
Bei einer Ansteuerung mittels Schubstange oder Gleitstein in Führungsschiene, ist der Bezug Wegstrecke und Drehwinkel etwas sinusförmiges.
Es fehlt eine Skizze von Dir, wie du die Linearbewegung aus der Drehbewegung bestimmt's
Für's erste kannst du ja mal einfach die Additionstheoreme nutzen.
Sei die kleinste Auflösung des Gerätes 1 und der Radius r ein Vielfaches davon.
Dann ist der sinus des kleinsten Winkels d
dsin(d)=1/r
dcos = sqrt(1-dsin^2(d))
Für einen Vollkreis fängt man einfach bei 0 Grad an.
Dort ist der Sinus 0 und der Cosinus 1.
Da wir den Wert spaäter aber immer mit Radius multiplizieren müssen tue ich das jetzt schon;
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| dsin:=1/r; dcos := sqrt(1-dsin^2(a)); si := 0; co:= r; schritte := 2*pi*r; For i ;= 1 to Schritte do begin BewegeZu(co,si); tmpSi:= si; si := si*dcos+co*dsin; co := co*cosd-tmpSi*sind;
end; |
Dass kann man noch verbessern indem man linean ABschnitte mit einer minimalen Abweichung von einem halben Punkt bestimmt.Dannn braucht man eine Linienroutine . Da die Harware aber eh langsam ist, kann man rühig Punkt für Punkt anfahren.
Gruß Horst