Помощь в написании студенческих работ
Антистрессовый сервис

Анимация зубчатого зацепления

РефератПомощь в написанииУзнать стоимостьмоей работы

Количество зубьев, вводимое на запрос программы, должно быть равно количеству зубьев соответствующего колеса. Приведенные выше значения соответствуют передаче, рассмотренной в качестве примера. Количество оборотов шестерни определяет ее поворот за весь цикл анимации. Количество кадров задает плавность вращения: чем больше кадров, тем плавнее. Princ «Для запуска введи ani2») ;_сообщение при… Читать ещё >

Анимация зубчатого зацепления (реферат, курсовая, диплом, контрольная)

Это вновь раздел для «продвинутых» пользователей. Рассмотрим две очень простые программы, позволяющие увидеть работу зубчатого зацепления, наблюдать, как контуры зубьев плавно огибают друг друга, передавая вращение от шестерни колесу. О том, как набрать текст программы в редакторе Visual Lisp, отладить программу, даже не имея навыков программирования, а лишь терпение и внимательность, сказано в п. 9.9.

Рассмотрим два варианта анимации: вращение плоских контуров колес и вращение объемных реалистичных моделей колес.

Плоская анимация

Для этого варианта анимации необходимо построить изображения контуров шестерни и колеса с зубьями, находящимися в зацеплении. Программа 20.1 реализует согласованное вращение контуров, которое видим в rfog'-файле в реальном времени.

Для построения контуров колес с зубьями:

  • ? откройте файл с ранее построенными контурами единичных впадин, приведенными в зацепление (см. рис. 20.5, б);
  • ? установите ПСК в плоскость передачи, в которой выполнено изображение (см. рис. 20.5, б) и в которой будет реализовано вращение контуров колес;
  • ? создайте слои Шестерня и Колесо. На слой Шестерня перенесите контур впадины шестерни, ее делительную окружность и маркер центра этой окружности. На слой Колесо перенесите такие же линии колеса;
  • ? «заморозьте» слой Колесо;
  • ? из оставшихся линий контура впадины шестерни, применив круговой массив, создайте полный контур шестерни (поз. 1, рис. 20.9, а);
  • ? командой block конвертируйте в блок все линии контура шестерни, т. е. линии всех зубьев, делительной окружности и маркер центра. При создании блока в качестве точки вставки укажите маркер центра шестерни;
Контуры колес {а) и один из кадров анимации (б).

Рис. 20.9. Контуры колес {а) и один из кадров анимации (б)

  • ? для контроля правильности создания блока укажите его — все линии шестерни должны представлять единой целое, а в центре шестерни должна появиться квадратная «ручка»;
  • ? заморозив слой Шестерня и разморозив слой Колесо, создайте контур колеса и блок из линий этого контура (поз. 2, см. рис. 20.9, а). Проверьте второй блок указанием.

В редакторе Visual Lisp наберите текст программы 20.1 (см. также и. 9.9 «Набор текста программы»):

Программа 20.1

;;; Анимация вращения зубчатых колес в реальном времени (defun c: ani2 ().

(command «_undo» «_m») ;_создать метку (setvar «cmdecho» 0) ;_отключить эхо-вывод (setvar «osmode» 0) ;_отключить объектную привязку (setq namel (car (entsel «Укажи шестерню «)) pi (cdr (assoc 10 (entget namel))) ;_центр шестерни zl (getint «Количество зубьев шестерни = «) name2 (car (entsel «Укажи колесо «)) p2 (cdr (assoc 10 (entget name2))) /_центр колеса z2 (getint «Количество зубьев колеса = «).

nl (getreal «Количество оборотов шестерни или червяка = «) n (getint «п Количество кадров = «) w (/ z2 zll.); _передаточное число.

angl (/ (* 360 nl) п) ;_угол поворота шестерни на один кадр, градусы ang2 (/ angl w -1.) ;_угол поворота колеса на один поворот червяка, градусы.

).

  • (repeat п ;_покадровая съемка
  • (command «_delay» 100) ;_задержка между кадрами, мс (command ''_rotate" namel «» pi angl)
  • (command «_rotate» name2 «» p2 ang2)

).

(command «_undo» «_b») ;_восстановление начального положения колес.

).

(defun c: mu () (command «_undo» «_b»));_возврат к метке.

(princ «Для запуска введи ani2») ;_сообщение при загрузке программы Действие программы 20.1 заключается в применении команды ROTATE к блокам колес. Угол поворота каждого колеса задается в соответствии с передаточным числом, поэтому колеса поворачиваются относительно своих центров синхронно, воспроизводя обкатывание зубьев колес.

Проверьте программу на синтаксис, загрузите ее (см. п. 9.9 «Отладка, тестирование и выполнение программы»).

Перейдите в графический редактор. Отобразите на экран контуры колес (см. рис. 20.9, а). Введите с командной строки имя программы ат2. В командной строке должен начаться следующий диалог:

Укажи шестерню (указать) Количество зубьев шестерни = (ввести 20).

Укажи колесо (указать) Количество зубьев колеса = 30 Количество оборотов шестерни = 1 Количество кадров = 500.

Количество зубьев, вводимое на запрос программы, должно быть равно количеству зубьев соответствующего колеса. Приведенные выше значения соответствуют передаче, рассмотренной в качестве примера. Количество оборотов шестерни определяет ее поворот за весь цикл анимации. Количество кадров задает плавность вращения: чем больше кадров, тем плавнее.

Можно рассмотреть вращение колес в целом (см. рис. 20.9, а). Для изучения процесса зацепления рекомендуем перед выполнением программы отобразить зону контакта на весь экран (рис. 20.9, б), задать число оборотов 0.2—0.3, количество кадров 500—800.

После завершения диалога начинается синхронное вращение контуров колес. По окончании программы изображение автоматически восстанавливается в исходное положение.

Принудительное прерывание программы можно выполнить по клавише. Для восстановления начального положения введите команду ти, которая вернет файл к состоянию, заданному меткой, — см. верхнюю строку текста программы 20.1.

Показать весь текст
Заполнить форму текущей работой