Странные шестерни, прогу бы или плагин
-
Семён
Re: Странные шестерни, прогу бы или плагин
Передаточное число наверное будет пропорциональна площадям фигур, приведенных к площадям окружностей. Т.е вычисляем площадь фигур, приводим в эквивалентные площади окружностей, вычисляем периметр приведенных окружностей и передаточное число. Таким образом можно вычислить и элементарные пути, скорости и ускорения в периоде оборота.
Можно ведь нарисовать второй контур зубьев (на мастер контуре) и вписать в него любые зубья с неотрицательными углами. После этого на втором контуре отобразить по пятнам контакта ответные зубья.
Можно ведь нарисовать второй контур зубьев (на мастер контуре) и вписать в него любые зубья с неотрицательными углами. После этого на втором контуре отобразить по пятнам контакта ответные зубья.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Странные шестерни, прогу бы или плагин
А что делать если в ведущей шестеренке будет большое углубление, которое не будет участвовать в зацеплении, но будет влиять на площадь?
может можно как-нибудь формализовать задачу поиска точки зацепления для двух гипотетических контуров? Пусть даже получится сложная функция, потом ее, если что численными методами решим
...
может можно как-нибудь формализовать задачу поиска точки зацепления для двух гипотетических контуров? Пусть даже получится сложная функция, потом ее, если что численными методами решим
-
Семён
Re: Странные шестерни, прогу бы или плагин
Ситуация с отсутствием зацепления подразумевает отсутствие зубьев у обеих шестеренок, так что условие на межцентровое равенство все равно должно выполняться, иначе систему заклинит.
Формализовать можно только получение второй шестерни по заданной. А первая это уже дело фантазии.
Да и формализовать особо ничего не надо. Просто вращать вектор радиуса по линии межцентровой прямой и определять точку контакта на второй шестерне.
Формализовать можно только получение второй шестерни по заданной. А первая это уже дело фантазии.
Да и формализовать особо ничего не надо. Просто вращать вектор радиуса по линии межцентровой прямой и определять точку контакта на второй шестерне.
-
MrPG
Re: Странные шестерни, прогу бы или плагин
Не-а, не придетсяroot писал(а):т.к. иначе придется долго подбирать это расстояние, чтобы получить хотя бы более менее сходящиеся циклы.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Странные шестерни, прогу бы или плагин
.....Блин, третий день об этом думаю, но никак все в мозг не укладывается
.
Сейчас все выгдялит так:
Перемещаем ведущую шестеренку по окружности, и поворачиваем ее на нужный угол. Шаг перемещения и угол - равномерны на всем протяжении.
Но если мы начнем перемещать или поворачивать ее в зависимости от локального радиуса, то период может не сойтись и в конце окружности мы окажемся в неправильной фазе поворота или промахнемся мимо конца окружности и залезем на следующий период.
Сейчас все выгдялит так:
Перемещаем ведущую шестеренку по окружности, и поворачиваем ее на нужный угол. Шаг перемещения и угол - равномерны на всем протяжении.
Но если мы начнем перемещать или поворачивать ее в зависимости от локального радиуса, то период может не сойтись и в конце окружности мы окажемся в неправильной фазе поворота или промахнемся мимо конца окружности и залезем на следующий период.
-
MrPG
Re: Странные шестерни, прогу бы или плагин
(огорченно) Я же 17 Mar 2011, 04:18 привел вполне разумное описание простенького алгоритма. Именно для того, чтобы все сошлось
Если что-то криво описал - готов пояснить.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Странные шестерни, прогу бы или плагин
Теперь более менее начал понимать...
А оптимизировать будем начальную скорость вращения?
А оптимизировать будем начальную скорость вращения?
-
Семён
Re: Странные шестерни, прогу бы или плагин
Да, похоже на то. Наверное надо определять период , а это подразумевает только целочисленные коэффициенты передачи.root писал(а): Но если мы начнем перемещать или поворачивать ее в зависимости от локального радиуса, то период может не сойтись и в конце окружности мы окажемся в неправильной фазе поворота или промахнемся мимо конца окружности и залезем на следующий период.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Странные шестерни, прогу бы или плагин
Не обязательно, будем оптимизировать стремление к заданной величине, как и сейчас.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Странные шестерни, прогу бы или плагин
Я тут вот что придумал: нам даже оптимизировать ничего не придется.
Сначала делаем все также, как и в равномерном перемещении, но смещаем на величину зависящую от радиуса. Потом смотрим сумму перемещений и из нее впрямую находим нужный коэффициент:
во формула: Завтра попробую реализовать
.
Сначала делаем все также, как и в равномерном перемещении, но смещаем на величину зависящую от радиуса. Потом смотрим сумму перемещений и из нее впрямую находим нужный коэффициент:
во формула: Завтра попробую реализовать
-
MrPG
Re: Странные шестерни, прогу бы или плагин
Гм... А точно не надо оптимизировать? Ведь при изменении коэффициента все углы изменятся, попадут (внимание!) в другие радиусы, и сумма новых углов уже не обязательно сойдется, вроде...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Странные шестерни, прогу бы или плагин
Хмммм сделал....
Но все равно в ведомой шестеренке "фасолевость" наблюдается, хотя, уже заметно меньше. Наверное не правильно рассчитываю коэффициент:
1. Находим на ведущей шестеренке ближайшую точку к центру ведомой (P).
2. Коэффициент отношения скоростей вращения беру равным k= r2/r1. Вот код самого расширения. Для включения неравномерного вращения нужно поставить Turning speed depends on local radius.
PS в конце работы выдает значение параметра K. В идеальном случае K должен быть равен 1.
Но все равно в ведомой шестеренке "фасолевость" наблюдается, хотя, уже заметно меньше. Наверное не правильно рассчитываю коэффициент:
1. Находим на ведущей шестеренке ближайшую точку к центру ведомой (P).
2. Коэффициент отношения скоростей вращения беру равным k= r2/r1. Вот код самого расширения. Для включения неравномерного вращения нужно поставить Turning speed depends on local radius.
PS в конце работы выдает значение параметра K. В идеальном случае K должен быть равен 1.
- Вложения
-
- unordinary-gears.tar.gz
- (4.97 КБ) 1196 скачиваний
-
MrPG
Re: Странные шестерни, прогу бы или плагин
Я что-то, похоже, не так делаю - но сколько ни пытался, вообще ничего хорошего не получается 
Открываю 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 видно, что моя шестеренка облетает круг дважды - еще страннее
Открываю 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 градусов, а из какого-то другого угла
При попытке задать 2:1 видно, что моя шестеренка облетает круг дважды - еще страннее
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Странные шестерни, прогу бы или плагин
Там может быть небольшая проблемка с трансформациями. Иногда, когда двигаешь поворачиваешь или изменяешь размер контура, эти изменения к контуру не применяются, а вместо этого изменяется параметр transform - матрица аффинного преобразования.
А расширение берет за основу контур без трансформаций...
В общем, пока я это не исправил лучше экспериментировать с только что отрисованными контурами.
И на всякий случай скинь svg, может там еще какой глюк есть
...
А расширение берет за основу контур без трансформаций...
В общем, пока я это не исправил лучше экспериментировать с только что отрисованными контурами.
И на всякий случай скинь svg, может там еще какой глюк есть
-
MrPG
Re: Странные шестерни, прогу бы или плагин
Да, очень похоже, что проблема именно в этом. И это очень здорово. Попробовал не менять размеры - просто от руки сделать эллипс похожих на правду размеров - и реально очень неплохо выходит, хотя и чуток фасолево по непонятной причине. Попробовал взять квадрат, и на нем вытянуть "зубцы" разного размера и формы штуки по три-четыре на сторону - и да, невероятно мощно улучшается результат. Оно, собственно, начинает всерьез зацепляться, в отличие от предыдущего, и более того - шестеренки начинают становиться очень похожими по форме зубцов друг на друга (раньше ведомая была вся из характерных "круглых вмятин"). K в районе "разумно выглядящих" расстояний и зацеплений для таких зубастых квадратов получается где-то 0.75-0.85.
Оптимизировать все-таки, вероятно, надо - как уже написал, похоже, что из-за движения радиусов по сложному профилю шестеренки сумма меняется довольно сильно, и вполне может не соответствовать в итоге нужному значению.
И да - оно настолько лучше по виду (еще не резал, но и так видно), что уже явно имеет смысл подумать на тему поиска оптимального расстояния между центрами
И по дефолту, наверное, начинать его придумывать надо тупо со среднего радиуса ведущей шестеренки (либо посчитанного по равномерным углам, либо уже с учетом неравномерности поворота). Дальше мы ее признаем "якобы круглой", и считаем потребный по передаточному отношению радиус второй шестерни, опять же, из предположения, что она "тоже круглая". То есть цель простейшая - размазать ошибки и проскальзывания примерно поровну на обе шестерни, без серьезной оптимизации этого дела. А дальше вот этот, уже написанный, алгоритм даст результат, вполне достаточный по качеству. Для самых сложных случаев - на грани разумного - оставить человеку возможность менять это самое расстояние.
Оптимизировать все-таки, вероятно, надо - как уже написал, похоже, что из-за движения радиусов по сложному профилю шестеренки сумма меняется довольно сильно, и вполне может не соответствовать в итоге нужному значению.
И да - оно настолько лучше по виду (еще не резал, но и так видно), что уже явно имеет смысл подумать на тему поиска оптимального расстояния между центрами
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Странные шестерни, прогу бы или плагин
Да, я думаю нужно поставить checkbox на включение оптимизации.
Попробую сегодня сделать и разобраться с трансформациями.
Попробую сегодня сделать и разобраться с трансформациями.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Странные шестерни, прогу бы или плагин
Сделал автоматический поиск оптимального расстояния.
Правда работает не быстро, т.к. рассчетов много. У меня шестеренку из 355 узлов с 400 копиями считал около 4 минут...
Вот результаты, слева с изменяемой скоростью и автоматическим вычислением растояния между центрами шестеренок, справа с тем же расстоянием, но с постоянной угловой скоростью: И, соответственно, само расширение:
Правда работает не быстро, т.к. рассчетов много. У меня шестеренку из 355 узлов с 400 копиями считал около 4 минут...
Вот результаты, слева с изменяемой скоростью и автоматическим вычислением растояния между центрами шестеренок, справа с тем же расстоянием, но с постоянной угловой скоростью: И, соответственно, само расширение:
- Вложения
-
- unordinary-gears.tar.gz
- (5.4 КБ) 970 скачиваний
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Странные шестерни, прогу бы или плагин
Сделал генерацию рейки для шестеренки. Для нее пока нет неравномерного движения, из локальных радиусов. Но основная задача - делать рейки для нормальных, равномерных шестеренок.
Чтобы сделать рейку выбираем Linear Gear и задаем количество оборотов.
Внимание, если количество оборотов большое, то лучше сначала сделать небольшой кусок рейки и затем его размножить. Если создавать всю рейку стразу, Inkscape может начать тормозить из-за большого количества объектов, которое равно (количество копий)*(количество оборотов).
Вот пример создания рейки для шестеренки из подшипников: А вот и само расширение:
Чтобы сделать рейку выбираем Linear Gear и задаем количество оборотов.
Вот пример создания рейки для шестеренки из подшипников: А вот и само расширение:
- Вложения
-
- unordinary-gears.tar.gz
- (5.62 КБ) 1256 скачиваний
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Странные шестерни, прогу бы или плагин
Оформил красивую шапку : http://cnc-club.ru/forum/viewtopic.php?f=15&t=287
- Unikus
- Опытный
- Сообщения: 194
- Зарегистрирован: 22 ноя 2010, 01:53
- Репутация: 1
- Настоящее имя: Николай
- Откуда: Португалия,Порто
- Контактная информация:
Re: Странные шестерни, прогу бы или плагин
Ага,Колюня,то что надо !!!
Если бы ещё небольшой мануальчик по построению...Кстати,было бы очень неплохо для народа юзающего Инкскейп,сделать мануалы по расширениям.Или может я не нашёл здесь?
