Страница 3 из 12

Re: Странные шестерни, прогу бы или плагин

Добавлено: 18 мар 2011, 19:30
Семён
Передаточное число наверное будет пропорциональна площадям фигур, приведенных к площадям окружностей. Т.е вычисляем площадь фигур, приводим в эквивалентные площади окружностей, вычисляем периметр приведенных окружностей и передаточное число. Таким образом можно вычислить и элементарные пути, скорости и ускорения в периоде оборота.
Можно ведь нарисовать второй контур зубьев (на мастер контуре) и вписать в него любые зубья с неотрицательными углами. После этого на втором контуре отобразить по пятнам контакта ответные зубья.

Re: Странные шестерни, прогу бы или плагин

Добавлено: 18 мар 2011, 22:23
Nick
А что делать если в ведущей шестеренке будет большое углубление, которое не будет участвовать в зацеплении, но будет влиять на площадь?

может можно как-нибудь формализовать задачу поиска точки зацепления для двух гипотетических контуров? Пусть даже получится сложная функция, потом ее, если что численными методами решим :roll: ...

Re: Странные шестерни, прогу бы или плагин

Добавлено: 19 мар 2011, 00:38
Семён
Ситуация с отсутствием зацепления подразумевает отсутствие зубьев у обеих шестеренок, так что условие на межцентровое равенство все равно должно выполняться, иначе систему заклинит.
Формализовать можно только получение второй шестерни по заданной. А первая это уже дело фантазии.
Да и формализовать особо ничего не надо. Просто вращать вектор радиуса по линии межцентровой прямой и определять точку контакта на второй шестерне.

Re: Странные шестерни, прогу бы или плагин

Добавлено: 19 мар 2011, 04:55
MrPG
root писал(а):т.к. иначе придется долго подбирать это расстояние, чтобы получить хотя бы более менее сходящиеся циклы.
Не-а, не придется ;) Мы же _принудительно_ провернем ведомую шестеренку на нужное количество оборотов. Но при этом внутри этого поворота углы между соседними копиями ведущей будут пропорциональны локальным радиусам. То есть, если мы промазали по расстоянию между центрами - это не фатально, просто получится "примерно как сейчас" - слишком далеко торчащие выступы начнут описывать круглые выемки в теле второй шестерни. А это не особо страшно. Да, если получится радиус уточнять как-то в коде - конечно, результат станет лучше. Но и без этого - на глаз - должно быть достаточно хорошо.

Re: Странные шестерни, прогу бы или плагин

Добавлено: 21 мар 2011, 13:31
Nick
.....Блин, третий день об этом думаю, но никак все в мозг не укладывается :).

Сейчас все выгдялит так:
Перемещаем ведущую шестеренку по окружности, и поворачиваем ее на нужный угол. Шаг перемещения и угол - равномерны на всем протяжении.

Но если мы начнем перемещать или поворачивать ее в зависимости от локального радиуса, то период может не сойтись и в конце окружности мы окажемся в неправильной фазе поворота или промахнемся мимо конца окружности и залезем на следующий период.

Re: Странные шестерни, прогу бы или плагин

Добавлено: 21 мар 2011, 13:44
MrPG
(огорченно) Я же 17 Mar 2011, 04:18 привел вполне разумное описание простенького алгоритма. Именно для того, чтобы все сошлось ;) Если что-то криво описал - готов пояснить.

Re: Странные шестерни, прогу бы или плагин

Добавлено: 21 мар 2011, 15:07
Nick
Теперь более менее начал понимать...

А оптимизировать будем начальную скорость вращения?

Re: Странные шестерни, прогу бы или плагин

Добавлено: 21 мар 2011, 21:33
Семён
root писал(а): Но если мы начнем перемещать или поворачивать ее в зависимости от локального радиуса, то период может не сойтись и в конце окружности мы окажемся в неправильной фазе поворота или промахнемся мимо конца окружности и залезем на следующий период.
Да, похоже на то. Наверное надо определять период , а это подразумевает только целочисленные коэффициенты передачи.

Re: Странные шестерни, прогу бы или плагин

Добавлено: 21 мар 2011, 21:42
Nick
Не обязательно, будем оптимизировать стремление к заданной величине, как и сейчас.

Re: Странные шестерни, прогу бы или плагин

Добавлено: 21 мар 2011, 22:48
Nick
Я тут вот что придумал: нам даже оптимизировать ничего не придется.
Сначала делаем все также, как и в равномерном перемещении, но смещаем на величину зависящую от радиуса. Потом смотрим сумму перемещений и из нее впрямую находим нужный коэффициент:

во формула:
CodeCogsEqn.png
CodeCogsEqn.png (1.13 КБ) 3598 просмотров
(для просмотра содержимого нажмите на ссылку)
L = 2\pi \sum_{i} l_i \newline\newline

k = D*2pi/L
Завтра попробую реализовать :geek: .

Re: Странные шестерни, прогу бы или плагин

Добавлено: 22 мар 2011, 02:48
MrPG
Гм... А точно не надо оптимизировать? Ведь при изменении коэффициента все углы изменятся, попадут (внимание!) в другие радиусы, и сумма новых углов уже не обязательно сойдется, вроде...

Re: Странные шестерни, прогу бы или плагин

Добавлено: 23 мар 2011, 00:05
Nick
Хмммм сделал....

Но все равно в ведомой шестеренке "фасолевость" наблюдается, хотя, уже заметно меньше.
необычные шестеренки.png (3588 просмотров) <a class='original' href='./download/file.php?id=1232&mode=view' target=_blank>Загрузить оригинал (20.71 КБ)</a>
Наверное не правильно рассчитываю коэффициент:

1. Находим на ведущей шестеренке ближайшую точку к центру ведомой (P).
2. Коэффициент отношения скоростей вращения беру равным k= r2/r1.
расчет необычной шестеренки.png (3588 просмотров) <a class='original' href='./download/file.php?id=1233&mode=view' target=_blank>Загрузить оригинал (11.93 КБ)</a>
Вот код самого расширения. Для включения неравномерного вращения нужно поставить Turning speed depends on local radius.

PS в конце работы выдает значение параметра K. В идеальном случае K должен быть равен 1.

Re: Странные шестерни, прогу бы или плагин

Добавлено: 28 мар 2011, 17:43
MrPG
Я что-то, похоже, не так делаю - но сколько ни пытался, вообще ничего хорошего не получается ;)
Открываю Inkscape 0.48, рисую в левом нижнем углу пустого листа вертикальный эллипс. Ставлю ему размеры 70*140 px. Запускаю Unordinary gears, на второй вкладке ввожу: 1, 1, 100, 105, ставлю галку Turning speed depends on local radius, и Units - px. 105 - это половина от горизонтальной оси (70/2=35) + половина от вертикальной (140/2=70). Жму apply - получаю коэффициент 0.913460894688 и картинку, где оно вращается в начале супер-быстро, а движется супер-медленно (что похоже на правду - но слишком сильно, вроде: видно начало рисования "почти горизонтального эллипса", но явно заваленного). И непонятно, что происходит в конце - вроде, эллипс приходит в исходную точку не в той же ориентации, которая ожидалась (вертикально), а наоборот - горизонтально. Ощущение, что где-то что-то считается не из 360 градусов, а из какого-то другого угла ;) Я насчитал то ли 7, то ли 8 поворотов исходной шестерни на 90 градусов - а их, вроде бы, не должно быть больше 4... Один оборот - в один оборот задан...
При попытке задать 2:1 видно, что моя шестеренка облетает круг дважды - еще страннее ;)

Re: Странные шестерни, прогу бы или плагин

Добавлено: 28 мар 2011, 20:14
Nick
Там может быть небольшая проблемка с трансформациями. Иногда, когда двигаешь поворачиваешь или изменяешь размер контура, эти изменения к контуру не применяются, а вместо этого изменяется параметр transform - матрица аффинного преобразования.
А расширение берет за основу контур без трансформаций...
В общем, пока я это не исправил лучше экспериментировать с только что отрисованными контурами.

И на всякий случай скинь svg, может там еще какой глюк есть :)...

Re: Странные шестерни, прогу бы или плагин

Добавлено: 29 мар 2011, 05:55
MrPG
Да, очень похоже, что проблема именно в этом. И это очень здорово. Попробовал не менять размеры - просто от руки сделать эллипс похожих на правду размеров - и реально очень неплохо выходит, хотя и чуток фасолево по непонятной причине. Попробовал взять квадрат, и на нем вытянуть "зубцы" разного размера и формы штуки по три-четыре на сторону - и да, невероятно мощно улучшается результат. Оно, собственно, начинает всерьез зацепляться, в отличие от предыдущего, и более того - шестеренки начинают становиться очень похожими по форме зубцов друг на друга (раньше ведомая была вся из характерных "круглых вмятин"). K в районе "разумно выглядящих" расстояний и зацеплений для таких зубастых квадратов получается где-то 0.75-0.85.

Оптимизировать все-таки, вероятно, надо - как уже написал, похоже, что из-за движения радиусов по сложному профилю шестеренки сумма меняется довольно сильно, и вполне может не соответствовать в итоге нужному значению.

И да - оно настолько лучше по виду (еще не резал, но и так видно), что уже явно имеет смысл подумать на тему поиска оптимального расстояния между центрами ;) И по дефолту, наверное, начинать его придумывать надо тупо со среднего радиуса ведущей шестеренки (либо посчитанного по равномерным углам, либо уже с учетом неравномерности поворота). Дальше мы ее признаем "якобы круглой", и считаем потребный по передаточному отношению радиус второй шестерни, опять же, из предположения, что она "тоже круглая". То есть цель простейшая - размазать ошибки и проскальзывания примерно поровну на обе шестерни, без серьезной оптимизации этого дела. А дальше вот этот, уже написанный, алгоритм даст результат, вполне достаточный по качеству. Для самых сложных случаев - на грани разумного - оставить человеку возможность менять это самое расстояние.

Re: Странные шестерни, прогу бы или плагин

Добавлено: 29 мар 2011, 08:44
Nick
Да, я думаю нужно поставить checkbox на включение оптимизации.

Попробую сегодня сделать и разобраться с трансформациями.

Re: Странные шестерни, прогу бы или плагин

Добавлено: 30 мар 2011, 19:03
Nick
Сделал автоматический поиск оптимального расстояния.
Правда работает не быстро, т.к. рассчетов много. У меня шестеренку из 355 узлов с 400 копиями считал около 4 минут...

Вот результаты, слева с изменяемой скоростью и автоматическим вычислением растояния между центрами шестеренок, справа с тем же расстоянием, но с постоянной угловой скоростью:
unordinary-gears.png (3529 просмотров) <a class='original' href='./download/file.php?id=1277&mode=view' target=_blank>Загрузить оригинал (825.45 КБ)</a>
И, соответственно, само расширение:

Re: Странные шестерни, прогу бы или плагин

Добавлено: 01 апр 2011, 10:52
Nick
Сделал генерацию рейки для шестеренки. Для нее пока нет неравномерного движения, из локальных радиусов. Но основная задача - делать рейки для нормальных, равномерных шестеренок.

Чтобы сделать рейку выбираем Linear Gear и задаем количество оборотов.
:attention: Внимание, если количество оборотов большое, то лучше сначала сделать небольшой кусок рейки и затем его размножить. Если создавать всю рейку стразу, Inkscape может начать тормозить из-за большого количества объектов, которое равно (количество копий)*(количество оборотов).

Вот пример создания рейки для шестеренки из подшипников:
linear gear test 0002.png (3522 просмотра) <a class='original' href='./download/file.php?id=1307&mode=view' target=_blank>Загрузить оригинал (189.59 КБ)</a>
А вот и само расширение:

Re: Странные шестерни, прогу бы или плагин

Добавлено: 01 апр 2011, 14:25
Nick
Оформил красивую шапку : http://cnc-club.ru/forum/viewtopic.php?f=15&t=287

Re: Странные шестерни, прогу бы или плагин

Добавлено: 01 апр 2011, 21:38
Unikus
Ага,Колюня,то что надо !!! :thumbup: Если бы ещё небольшой мануальчик по построению...Кстати,было бы очень неплохо для народа юзающего Инкскейп,сделать мануалы по расширениям.Или может я не нашёл здесь?