2009-02-25 19 views
1

Je n'ai pas besoin d'une fonction physiquement précise, mais quelque chose qui fait allusion aux courbes de développante, etc. J'utilisais juste r = 2 + sin^2, qui fait passer l'idée, mais ça ressemble - ahem. Googling autour, vous pouvez trouver beaucoup d'informations sur la façon de rédiger un «correct» engrenage, mais rien de la manière d'une approximation bare-bones.Vous cherchez une description des coordonnées radiales des dents d'engrenage

EDIT: Le 'look' que je suis après: http://www.cartertools.com/involute.html

+0

Qu'est-ce que vous essayez de faire? – user21714

+1

Vous pourriez obtenir de meilleures réponses avec une image. Et sur un forum de maths. – Brian

Répondre

0

Que diriez-vous r = 2 + sin(24*theta)^12? C'est un peu difficile de savoir ce que vous voulez sans que vous soyez plus précis dans votre question.

+0

Il ressemble un peu à un engrenage, mais ressemble plus à l'engin d'échappement sur une montre qu'à quelque chose pour prendre le couple. C'est la forme encombrante et angulaire des dents que vous obtenez avec une construction involute que je suis après. (Voir le nouveau lien, ci-dessus.) – Sniggerfardimungus

+0

Ce n'est pas vraiment lié à la programmation, donc je ne vais pas entrer dans les détails, mais vous aurez probablement besoin d'une fonction par morceaux, que vous pourriez probablement approximer en utilisant un Fourier séries. –

0

Il me semble que l'article de Wikipedia sur involute curves répond à votre question. Il a écrit:

« Pour polar coordinates (r, θ) la développante d'un cercle a pour équation paramétrique:

r = a s α

θ = tan α - a

où est le rayon du cercle et α est le paramètre. "

Si vous en avez besoin dans une forme paramétrée par θ au lieu de α, alors vous aurez besoin de le résoudre numériquement, car je ne pense pas qu'il y ait une solution symbolique. Vous aurez également besoin de prendre soin, car il y a une infinité de solutions pour r en termes de θ (à cause de la façon dont les spirales de développante sur le cercle):

2
from pylab import * 

nteeth = 30 
inner = 10 
outer = 12 

# these are in teeth-hundredths, but half the actual measurement 
bottom_width = 22 
top_width = 15 

def involute_r(angle): 
    '''angle is given in teeth-hundredths''' 
    angle = angle % 100 
    if angle > 50: 
     # symmetry 
     angle = 100 - angle 

    if angle < bottom_width: 
     return inner 
    if angle > (50 - top_width): 
     return outer 
    halfway = (inner + outer)/2.0 
    transition_width = 50 - top_width - bottom_width 
    curve = 1.0 - (angle - (50 - top_width))**2/(transition_width ** 2) 
    return halfway + curve * (outer - halfway) 


fig = figure() 
ax = fig.add_subplot(111, polar=True) 
theta = np.arange(0, 2*pi, 0.001) 
r = [involute_r(t * nteeth * 100/(2 * pi)) for t in theta] 
ax.plot(theta, r) 
ax.set_ylim(inner, outer+1) 
show() 
0

Cette équation pour la involute est correct. Vous l'utilisez par rapport au rayon de hauteur. Je sais que tu ne vas pas à l'exact, mais en pratique, ce n'est pas tout à fait la bonne forme. Un bon livre de conception de vitesse vous guidera à travers tous les détails excentriques sur des choses comme le rayon à la base pour le soulagement du stress. Vous pouvez read old versions online using Google Books, et ce n'est pas quelque chose qui est vraiment obsolète. C'est vraiment fascinant, et vous trouverez peut-être quelques détails qui vous aideront à rendre votre forme authentique.