Forums Neueste Beiträge
 

Parallele Sinuskurve auf dem Umfang eines Zylinders berechnen

01/11/2008 - 11:54 von Andreas Killer | Report spam
Hallo allerseits.

Mir steht im Moment jemand auf der Leitung und ich seh die Lösung nicht,
die bestimmt simpel ist.

Ich habe hier eine Mantelkurve zu fràsen, also eine Nut auf dem Umfang
eines Zylinders.

Der Durchmesser des Zylinders soll 150 sein, und meine Nut mit einer
Breite von 22 soll zuerst bei einer Drehung von 70° in eine Höhe von 22
sinusförmig steigen und dann auf weitere 40° wieder 22 sinusförmig
fallen. Damit ich das ganze gut weiter verarbeiten kann brauche ich die
abgewickelten Kurven.

Vielleicht mache auch alles falsch, aber mein bisheriger Ansatz sieht
optisch recht gut aus. Die Mittelpunktsbahn der Nut berechne ich so:

Function KurveX( _
ByVal Durchm As Double, ByVal Grad As Double) As Double
KurveX = Durchm * Pi / 360 * Grad
End Function

Function KurveY( _
ByVal GesamtWinkel As Double, ByVal Weg As Double, _
ByVal Grad As Double) As Double
KurveY = (SinG(180 / GesamtWinkel * Grad - 90) + 1) / 2 * Weg
End Function

Das funktioniert alles ganz wunderbar, nur bei der Berechnung der
Nutkanten, sprich der parallelen Kurve hakt es:

Wenn meine Sinuskurve von +/-1 auf 180 Grad wandern würde, dann könnte
ich so meinen "Kompensationsfaktor" bestimmen, den ich dann nur noch mit
dem halben Werkzeugdurchmesser multiplizieren müsste um auf den Versatz
zu kommen:

Function KompX( _
ByVal Durchm As Double, ByVal GesamtWinkel As Double, _
ByVal Weg As Double, ByVal Grad As Double) As Double
KompX = SinG(ArcTanG(SinG(180 / GesamtWinkel * Grad)))
End Function

Function KompY( _
ByVal GesamtWinkel As Double, ByVal Weg As Double, _
ByVal Grad As Double) As Double
KompY = CosG(ArcTanG(SinG(180 / GesamtWinkel * Grad)))
End Function

(Anmerkung: SinG, CosG, ArcTanG sind Funktionen die die entsprechenden
Werte in Grad zurückgeben)

Meine versetzte Bahn würde ich dann so berechnen:

X = KurveX + KompX * Breite / 2
Y = KurveY + KompY * Breite / 2

Haut aber nicht so ganz hin, weil je nach Weg und Drehung die Kurve mal
flacher und mal steiler ist. Y sieht gut aus, aber X muss ich irgendwie
anders berechnen..., nur wie?

Um das ganze mal stark zu vereinfachen habe ich ein Excelfile (XL2002)
hochgeladen welches sich nur mit der steigenden Kurve befasst:

http://home.arcor.de/andreas.killer/sinus.xls

Ich bin für jede Idee dankbar und nehme korrigierte Versionen gerne
unter mailto:andreas.killer@gmx.net?subject=sinus entgegen. :-))

Vielen Dank, Andreas.
 

Lesen sie die antworten

#1 Wolfgang Meiners
01/11/2008 - 14:00 | Warnen spam
Folgender Weg sollte funktionieren:

1.: Du hast eine ebene Kurve, die in Parameterdarstellung
vorliegt. Diese Kurve beschreibt den Weg des Mittelpunktes des Fràsers
(wenn ich dich richtig verstanden habe).
Es ist also

x = f(xi), y= g(xi)

wobei f und g zwei Funktionen sind, deren Werte du berechnen
kannst und xi der Parameter ist, der sich àndert.

Um nun die Fràskanten zu berechnen, musst du zunàchst den
Tangentenvektor der Mittelpunktskurve bestimmen, kannst daraus daraus
dann den Normalenvektor ermitteln und mit dessen Hilfe die Punkte der
Fràskante berechnen. Das sieht so aus:

Tangentenvektor:

t_x = ([f'(xi)]^2+[g'(t)]^2)^(1/2)*f'(xi),
t_y = ([f'(xi)]^2+[g'(t)]^2)^(1/2)*g'(xi).

Daraus ergibt sich der Normalenvektor zu

n_x = -([f'(xi)]^2+[g'(t)]^2)^(1/2)*g'(xi),
n_y = ([f'(xi)]^2+[g'(t)]^2)^(1/2)*f'(xi).

Die Punkte der Fràskante ergeben sich dann als

x_oben = f(xi) + d/2 * n_x
y_oben = g(xi) + d/2 * n_y

sowie

x_unten = f(xi) - d/2 * n_x
y_unten = g(xi) - d/2 * n_y


Grüße
Wolfgang

Ähnliche fragen