Ищем описание радиальных координат зубьев шестерни - PullRequest
1 голос
/ 25 февраля 2009

Мне не нужна физически точная функция, но что-то, что намекает на эвольвентные кривые и т. Д. Я просто использовал r = 2 + sin^2, что объясняет идею, но похоже - хм. Погуглив, вы можете найти много информации о том, как составить «правильную» экипировку, но ничего о приближении голых костей.

РЕДАКТИРОВАТЬ: 'взгляд', который я ищу: http://www.cartertools.com/involute.html

Ответы [ 4 ]

2 голосов
/ 17 декабря 2009
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 голосов
/ 23 декабря 2009

Это уравнение для эволюты является правильным. Вы используете его относительно радиуса шага. Я знаю, что ты не идешь точно, но на практике это не совсем правильная форма. Хорошая книга по дизайну снаряжения проведет вас через все причудливые детали о таких вещах, как радиус в основании для снятия напряжения. Вы можете читать старые версии онлайн, используя Google Книги , и это не то, что действительно устарело. Это действительно довольно увлекательно, и вы можете найти там некоторые детали, которые помогут сделать вашу форму подлинной.

0 голосов
/ 25 февраля 2009

Мне кажется, что статья в Википедии о эвольвентных кривых отвечает на ваш вопрос. Там написано:

«В полярных координатах (r, θ) эвольвентное окружность имеет параметрическое уравнение:

r = сек α

θ = tan α - α

где a - радиус круга, а α - параметр. ”

Если вам нужно это в форме, параметризованной θ вместо α, то вам нужно будет решить ее численно, поскольку я не думаю, что есть символическое решение. Вам также нужно позаботиться, так как существует бесконечно много решений для r в терминах θ (из-за того, как эвольвентные спирали окружности):

image

0 голосов
/ 25 февраля 2009

Как насчет r = 2 + sin(24*theta)^12? Трудно понять, чего вы хотите, если вы не будете более конкретны в своем вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...