1 - 2015

Оживляя механизмы. Работа с анимацией в системе автоматизированного проектирования КОМПАС-3D (часть 2). Переменные

Михаил Паньков
Михаил Паньков,
инженер-технолог 1-й категории отделения разработки управляющих программ для станков с ЧПУ, НИИЦ (г.Курск) ФГУП «18 ЦНИИ» МО РФ

Простейшие методы анимации объектов в КОМПАС­3D — вращение и перемещение, а также некоторые эффекты, принципы работы библиотеки и ее настройка были рассмотрены в первой части статьи, опубликованной в журнале «САПР и графика» № 4’2014. Во второй части речь пойдет об анимации сложных объектов, в которых движение одних частей зависит от других объектов, их параметров и свойств.

В ранее рассмотренных примерах простые действия применялись к объектам только в режиме сборки, что не всегда было удобно при анимации сложных объектов, включающих подсборки. При анимации процесса всё действие затрагивало только сборочные единицы и детали первого уровня вложенности. Понятие уровней вложенности хорошо демонстрирует обычная матрешка: самая главная сборка — это самая большая матрешка, то есть первый уровень вложенности (например, сборка «Автомобиль»), а каждая последующая сборка, вплоть до самой маленькой, — это уровни вложенности второго, третьего …n­го порядка (например: кнопка на панели приборов в кабине автомобиля). Чтобы анимировать процесс в сборке с вложенностью узлов и деталей второго и последующего уровней, необходимо прибегнуть к управляющим переменным и параметризации объектов.

Рис. 1. Вид окна переменных и способы его открытия

Рис. 1. Вид окна переменных и способы его открытия

Параметризация — это зависимость параметров отдельных объектов между собой при наложении на них определенных взаимосвязей и ограничений. Под объектом параметризации понимается любая простейшая геометрическая фигура: точка, прямая, кривая (дуга окружности, кривая по закону, сплайн и т.д.). Примером взаимосвязи двух объектов может служить равенство длин отрезков или радиусов окружностей, коллинеарность линий, касательность кривых и т.д. Следует помнить, что при удалении одного или нескольких объектов взаимосвязь исчезает. Помимо взаимосвязей между объектами существует такое понятие, как «ограничение», суть которого сводится к наложению зависимостей параметров на один объект или приравниванию параметра объекта к константе. Допустим, в пространстве существует отрезок, зафиксированный относительно двух точек. Второй отрезок имеет установленный размер 50 мм, и на него наложена взаимосвязь «коллинеарность» с первым отрезком. Ограничение позволит второму отрезку сместиться только вдоль оси первого отрезка, а длина отрезка при этом останется неизменной. Параметризация полезна в области унификации деталей, а также при создании стандартных изделий, когда в модели меняется всего несколько параметров. К примеру, у болта с шестигранной головкой изменению в пределах одного диаметра резьбы подвержены следующие параметры: шаг резьбы, длина болта, размер под ключ. Остальные размеры носят информационный характер, и они стандартны. Но если необходимо отойти от стандарта и на базе существующей детали создать аналог, то изменению будут подвергаться и другие параметры: высота головки, размер фаски и т.д. Все это сводится к правильному наложению взаимосвязей и ограничений объектов внутри модели.

С выходом КОМПАС­3D V15 Библиотека анимации стала называться Приложение Механика: Анимация (kompas.ru/industry/machinery)) и теперь входит в комплект КОМПАС­3D V15: Механика, который решает задачи проектирования всевозможных механизмов, агрегатов, приводов, трансмиссий и передач энергетических и рабочих машин.

Как уже говорилось в первой части статьи, сопряжения между деталями и подсборками в основной сборке играют существенную роль для безошибочного воспроизведения анимации. Прежде чем создавать новый проект анимации, необходимо убедиться в том, что детали и узлы механизма, участвующие в анимации, обладают определенными степенями свободы, чтобы иметь возможность совершать задуманное действие в пространстве. Для этого сопряжения, которые каким­либо образом фиксируют детали, участвующие в движении, необходимо исключить из расчета. Это делается для того, чтобы при создании проекта у нас была «точка возврата в исходное положение» при неудачном варианте анимации.

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

Изменением параметров, необходимых для получения желаемого результата, можно заниматься двумя способами: редактированием параметров операций или объектов параметризации либо путем создания переменных.

В КОМПАС­3D существуют два типа переменных — пользовательская и связанная. Первая создается пользователем в окне переменных, вторая возникает автоматически при создании объекта параметра и имеет связь с параметрами этого объекта. На рис. 1 изображено Окно переменных, которое вызывается нажатием пиктограммы f(x) или вызовом меню Вид -> Панели инструментов -> f(x) Переменные. Все действия с переменными происходят в этом окне.

В рабочей области на объектах эскиза нанесены размеры. Если установленный размер не противоречит взаимосвязям соседних объектов и ограничениям, которые на него наложены, то снизу размерной надписи в автоматическом режиме проставляется имя переменной, а сам размер заключается в бирюзовый прямоугольник (в отличие от информационного размера). По умолчанию имя переменной начинается с буквы «V» и имеет любой порядковый номер. Имя переменной должно состоять из латинских букв (различаются верхний и нижний регистр букв), знака прочерка и цифр. Более полную информацию по работе с параметризацией и переменными можно почерпнуть из вложенной справки КОМПАС­3D. Когда объекту присваивается размер, то в появившемся окне в поле Выражение можно ввести конкретное числовое значение, переменную, константу или выражение для вычисления значения. Через диалог окна переменных выражению переменной можно присвоить значение через ссылку на переменную внешнего файла (рис. 2).

Рис. 2. Варианты ввода значения размера

Рис. 2. Варианты ввода значения размера

Рис. 3. Цветовая индикация в зависимости от состояния переменной

Рис. 3. Цветовая индикация в зависимости от состояния переменной

Пользовательские переменные вводятся пользователем и располагаются в верхнем уровне окна переменных. Связанные переменные находятся ниже главного раздела и разделены на группы в зависимости от вида, содержащего тот или иной размер, параметра объекта и т.д. (см. рис. 1).

Переменная может быть внешней и/или информационной. Внешняя переменная доступна для редактирования при вставке модели в сборку — таким образом можно управлять из главной сборки параметрами объектов разной вложенности. Информационную переменную редактировать нельзя, так как она зависит от взаимосвязей и ограничений объектов в модели либо получается автоматически как результат вычисления операции.

Переменные можно связать:

  • с размерами;
  • с параметрами объектов модели (высота спирали, угол поворота операции вращения и т.д.);
  • с объектами «измерение» в модели.

В зависимости от назначения переменной ей присваивается определенный цвет (рис. 3):

  • синий — внешняя переменная;
  • желтый — информационная переменная;
  • ярко­зеленый — внешняя информационная переменная;
  • розовый — интервальная переменная;
  • бирюзовый — функциональная переменная;
  • красный — объект, содержащий ошибки.

При редактировании переменной в модели происходят изменения соответствующих параметров или размеров объектов. В дереве построения пиктограмма вида или операции, где произошло изменение, помечается красной галочкой (рис. 4). Модель необходимо перестроить, чтобы произошли изменения. Для этого необходимо вызвать меню Вид -> Перестроить или нажать клавишу F5. Когда редактируется эскиз модели, перестроение происходит автоматически.

Рис. 4. Окно с измененными параметрами: до перестроения и после

Рис. 4. Окно с измененными параметрами: до перестроения и после

Рис. 5. Окно с вводом переменной

Рис. 5. Окно с вводом переменной

Рассмотрим пример анимации из первой части статьи — перемещение одного элемента относительно другого. Оставим все детали и сопряжения без изменения. В сборке по­прежнему присутствуют два элемента: «Болт М8x1­6gx35 ГОСТ 7798­70» и «Шайба C.8.37 ГОСТ 11371­78». Расстояние от шайбы до шляпки болта — 40 мм. Система присвоила этому параметру переменную «V245» (рис. 5).

Чтобы управлять этой переменной, необходимо сделать ее пользовательской, а для этого в поле Выражение ей необходимо присвоить другую букву, цифру или символ из разрешенных системой. Присвоим ей букву «R». Переменная автоматически появилась в верхнем разделе окна переменных. Всё готово, чтобы приступить к созданию сценария анимации. В отличие от предыдущего варианта, он проще и исключает дополнительные построения траектории перемещения, а также включения элементов в проект анимации. В дереве анимации в меню Компоненты и переменные -> Выбрать переменную добавляем всего одну­единственную переменную R и назначаем ей диапазон изменения величин. Так как шайба будет плотно прилегать к шляпке болта, то перемещение шайбы будет изменяться от 40 до 0 мм (рис. 6).

Рис. 6. Последовательность действий при добавлении переменной в сценарий анимации

Рис. 6. Последовательность действий при добавлении переменной в сценарий анимации

Если создать «Шаг 2» и добавить в него ту же переменную, но с обратным диапазоном изменения величин (от 0 до 40 мм), то в момент касания шайбой шляпки болта она начнет перемещаться в обратном направлении.

В следующем примере добавим к изменению параметров сопряжений изменение установленных размеров объектов внутри эскиза и создадим некоторую зависимость одних параметров от других.

Пример работы штампа включает перемещение плиты, пуансонодержателя и пуансонов вдоль направляющих фиксатора под действием какого­то усилия, приложенного к верхней плоскости плиты. Затем верхняя часть штампа переходит в первоначальное положение за счет буфера — упругого элемента. При изменении упругого элемента по высоте должен меняться его диаметр. Так как управляющей переменной в буфере будет его высота, то в эскизе, наложив все взаимосвязи между объектами и ограничения, в поле Выражение размера 35 мм записываем имя переменной Н и нажимаем Ok. При простановке размера можно сразу нажать Ok, а переменную Н ввести уже в окне переменных (рис. 7).

Рис. 7. Ввод размера и пользовательской переменной

Рис. 7. Ввод размера и пользовательской переменной

Выведем простейшую зависимость диаметра от высоты. Так как плита с пуансонодержателем перемещается на 8 мм, то буфер будет изменять свою высоту от 35 до 27 мм, а полудиаметр — от 23 до 31 мм. Выражение переменной, отвечающей за полудиаметр «V50», теперь будет иметь вид не числа, а формулы. Тем самым при изменении величины параметра Н будут меняться два значения: высота и диаметр буфера.

Такую зависимость можно создать и в режиме сборки, но чтобы не перенасыщать главный раздел окна переменных, изменение и расчет значений буфера были сделаны в режиме детали. Для того чтобы пользовательская переменная Н была видна в сборке, ей необходимо присвоить статус Внешняя (правая клавиша мыши в графе Имя на переменной — пункт Внешняя). В режиме редактирования эскиза статус переменной присвоить нельзя, поэтому необходимо завершить работу с эскизом. Как только статус переменной присвоен, поле графы Имя меняет свой цвет на синий. В режиме сборки данная переменная находится в том элементе, в котором она создавалась, а именно в буфере. Вид ее изменился (V95_H) за счет того, что она находится в подсборке. Для анимации необходимо, чтобы переменная была управляющей. С этой целью следует ввести новую пользовательскую переменную и присвоить ей значение переменной «V95_Н». Присвоим ей значение Н, после чего главный раздел окна переменных главной сборки изменит свой вид. Статус внешней ей присваивать не нужно, потому что данная сборка не входит в другие сборки. В сценарии анимации, как и в предыдущем примере, добавляется переменная и вводится диапазон изменений ее величины (рис. 8).

Рис. 8. Окно переменных и сценарий анимации штампа

Рис. 8. Окно переменных и сценарий анимации штампа

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

Анимацию сжатия пружины рассмотрим на примере работы вариатора (пример взят из тематического задания заочного этапа олимпиады CAD­OLYMP 2014). Вариатор — устройство, передающее крутящий момент и способное плавно менять передаточное отношение в некотором диапазоне регулирования.

Пружина строится обычной кинематикой любого сечения (в данном примере сечения окружности) вдоль спирали. Пружина должна быть соосна с валом, а крайние витки пружины шлифованы, чтобы обеспечить примыкание краев к прижимному и неподвижному диску. Так как после кинематики концы пружины цилиндрические, то необходимо их обрезать. В эскизе рисуем два прямоугольника — один внутри другого. Наружный должен охватывать всю пружину, внутренний — ее диаметральную часть, а кроме того, он должен быть параметризован по высоте пружины. Это делается для того, чтобы обеспечить эффект «шлифовки» при создании операции «Вырезание выдавливанием». В окне переменных двум связанным переменным, а именно параметру, отвечающему за высоту спирали «V14», и размеру «V43», отвечающему за прямоугольник, обрезающий крайние витки, присваивается одно значение, допустим Н1. Теперь при изменении высоты пружины (переменная Н1 в главном разделе окна переменных) обрезка крайних витков будет проходить безошибочно (рис. 9).

Рис. 9. Параметризация пружины

Рис. 9. Параметризация пружины

Рис. 10. Параметризация клинового ремня

Рис. 10. Параметризация клинового ремня

При увеличении скорости вращения ведущего вала прижимной диск начинает притягиваться к диску неподвижному. Пружина сжимается. Диаметр клинового ремня в месте стыка двух дисков начинает увеличиваться. В данном случае он увеличивается пропорционально, следовательно, можно завязать один параметр через другой. Так как переменная параметра, отвечающего за высоту пружины Н1, и переменная параметра, отвечающего за полу­диаметр ремня D2 (рис. 10), находятся каждый в своей модели, то зависимость этих параметров друг от друга можно сделать в главной сборке, для чего необходимо этим переменным в иерархии «модели» присвоить статус Внешняя.

Диапазон изменения полудиаметра ремня — от 20 до 60 мм. Диапазон изменения высоты пружины — от 30 до 10 мм. Так как крайние шлифованные витки пристыкованы к плоскостям контакта неподвижного диска и диска прижимного сопряжением «Совпадение», то при изменении полудиаметра клинового ремня в большую сторону диапазона, зависимый параметр высоты пружины будет уменьшаться, что заставит диски смещаться друг к другу (рис. 11). Выражение переменной  H1 через переменную D2 будет выглядеть следующим образом: (80­D2)/2. Введена дополнительная переменная, которая отвечает за положение грузиков между подвижным и прижимным диском.

Рис. 11. Варианты изменения параметров вариатора

Рис. 11. Варианты изменения параметров вариатора

Рис. 12. Фрагмент приложений синтаксиса системы КОМПАС-3D

Рис. 12. Фрагмент приложений синтаксиса системы КОМПАС-3D

Рис. 13. Сценарий анимации работы вариатора. Шаг 2

Рис. 13. Сценарий анимации работы вариатора. Шаг 2

Что касается формул, констант, логических операторов и функций, во встроенной справке КОМПАС­3D есть приложения III и IV, в которых указан полный комплект математических и логических операций системы (рис. 12).

В соответствии с заданием вариатор должен вращаться и изменять скорость вращения в результате сближения неподвижного и прижимного дисков.

Сценарий анимации механизма разбиваем на семь шагов. Последний пункт задания был разбит на два шага, чтобы создать эффект плавного снижения скорости вращения (рис. 13).

При вращении вала, происходящем без движения других элементов, воспользуемся обычным вращением вокруг оси. За это будут отвечать шаги 1, 3 и 5. Шаги 2 (см. рис. 13) и 4 будут не только плавно изменять скорость вращения вала, но и управлять переменными. Так как по заданию скорость должна увеличиться, то интервал времени от шага к шагу должен уменьшаться. Интервал переменных от крайнего положения до среднего и от среднего к противоположному крайнему одинаков, а время уменьшается, следовательно, каждый последующий шаг за счет сокращения времени должен проходить быстрее, тем самым увеличивая скорость вращения. На последние два шага время рассчитывается в обратном порядке, так как скорость, по условию, замедляется.

Одновременное вращение одного элемента в нескольких плоскостях рассмотрим на примере вращения колеса троллейбуса (пример взят из тематического задания командного зачета очного этапа олимпиады CAD­OLYMP 2013). В первой части данной статьи было рассмотрено вращение колес примитивным способом, когда колеса были добавлены в главную сборку и все они вращались вокруг своих осей параллельно корпусу троллейбуса. В данном примере колеса будут вращаться за счет переменной. Вращение и поворот колеса будет осуществляться вокруг отрезка, проходящего вдоль оси колеса и элемента «Точка», установленного в конец отрезка (рис. 14).

Рис. 14. Создание вспомогательных построений в колесе

Рис. 14. Создание вспомогательных построений в колесе

Рис. 15. Создание вспомогательных построений в корпусе

Рис. 15. Создание вспомогательных построений в корпусе

Рис. 16. Сценарий анимации вращения и поворота колеса троллейбуса

Рис. 16. Сценарий анимации вращения и поворота колеса троллейбуса

«Точку» необходимо вставить в троллейбусе туда, где колесо будет поворачиваться и не цеплять арку корпуса. Сопряжение «Совпадение» точки колеса и точки корпуса четко зафиксирует один элемент относительно другого, но не лишит колесо возможности вращаться во всех плоскостях. Продольная плоскость колеса в любой момент вращения и поворота будет находиться под одним и тем же углом к продольной плоскости корпуса, пока пользователь не изменит угол. Поэтому между этими плоскостями создаем сопряжение «Под углом». Иногда сопряжение «Под углом» выдает не совсем тот результат, которого ждешь, а именно: при смене значения величины угла через переменную угол меняется в противоположную сторону. Поэтому для данного примера в корпусе строится дополнительная плоскость под углом через ось, которая получена пересечением продольной центральной плоскости и плоскости, перпендикулярной днищу корпуса, проходящей через центры арок (рис. 15).

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

С видеопримерами анимации и исходными файлами можно ознакомиться в социальной сети «ВКонтакте» на странице vk.com/sapr_animatsiya.

Продолжение в следующем номере

САПР и графика 1`2015