Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2205

.pdf
Скачиваний:
14
Добавлен:
07.01.2021
Размер:
4.03 Mб
Скачать

Рис. 68. Окно существующей виртуальной сцены, открывающееся при двойном щелчке по блоку VR Sink

Если нажать уже в окне V-Realm Builder на стандартную кнопку создания нового файла , это вызовет появление пустой виртуальной сцены, в которую нужно будет добавить объекты и сохранить файл с оригинальным именем (ural1.wrl).

Если файл ural1.wrl с объектами уже существует и его имя было указано в поле Source file окна настройки блока VR Sink, то при двойном щелчке по блоку VR Sink сразу откроется окно с виртуальной сценой автокрана, описанной в файле ural1.wrl (рис. 68). И в этом случае имеется возможность вызвать окно настройки VR Sink,

если нажать на кнопку Block parameters в окне анимации. Но вместо кнопки New в окне настройки параметров будет уже кнопка Edit (см. рис. 66), при нажатии на которую будет загружен редактор V- Realm Builder с виртуальной сценой автокрана (файл ural1.wrl), которую можно при необходимости изменить (рис. 69).

Рис. 69. Виртуальная сцена файла ural1.wrl в окне редактора V-Realm Builder

70

Рис. 70. Пример системыродителя и системы-потомка

В редакторе V-Realm Builder левую часть окна занимает подокно браузера, в котором в виде дерева отражены все геометрические объекты сцены. Для создания звеньев виртуального автокрана можно воспользоваться примитивами параллелепипедов, цилиндров, шаров и конусов. V-Realm Builder предусматривает также возможность создания сложных объемных фигур способом выдавливания из плоской фигуры, хотя в рассматриваемом примере эта возможность не использовалась. Каждое тело-примитив в V-Realm Builder обязательно привязывается к определенной форме Shape, которая может являться потомком системы координат, но не может сама иметь потомков. Системы координат могут и не содержать геометрических тел, а использоваться для задания точки наблюдения за сценой, точки дополнительного освещения и т. п. Редактор V-Realm Builder имеет большое количество разных возможностей, однако для создания анимации механического объекта используются далеко не все.

Любая система координат (строка, которая начинается на T{}) может иметь в качестве родителя и потомков другие системы координат. При этом потомки располагаются ниже и правее родителей в подокне браузера. По умолчанию всем системам координат присвоено название Transform, которое можно изменить на оригинальное, щелкнув мышью по слову Transform. Наличие оригинальных имен является обязательным для систем координат звеньев автокрана, приводимых в движение. Причины этого будут раскрыты ниже. На рис. 70 в качестве примера в развернутом виде показаны две системы координат: родитель Transform и потомок Nom1. Если системародитель приводится в движение из

модели Simulink, то вместе с ней приводятся в движение и все ее системы-потомки, и связанные с ними тела-примитивы.

Обязательные свойства любой системы координат в редакторе

V-Realm Builder задают строки center (центр), rotation (вращение),

71

scale (увеличение), scaleOrientation (ориентация увеличения), translation (перемещение), bboxCenter (центр коробки объекта, привязанного к системе), bboxSize (размеры коробки объекта).

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

При двойном щелчке мышью по любой из этих строк открывается окно установки соответствующих параметров. На рис. 71 в качестве примера задано перемещение начала системы координат относительно оси Z родительской системы на 3,2 единиц длины, а на рис. 72 – вращение системы координат относительно оси Y родительской системы на 45º.

Рис. 71. Пример задания перемещения

Рис. 72. Пример задания вращения

центра системы координат (строка

системы координат (строка rotation)

translation)

 

Пример «привязывания» тела-примитива цилиндра к системе координат с именем Nom2 показан на рис. 73. Здесь система координат Nom2 имеет двух потомков: форму Shape с примитивом Cylinder и систему координат Transform. Каждая форма Shape может содержать только один примитив какого-либо вида (параллелепипед Box, конус Cone, цилиндр Cylinder, шар Sphere) либо одну фасонную по-

72

Рис. 73. Примитив тела Cylinder в системе координат
Nom2

верхность Extrusion. В то же время любая система координат может иметь в качестве потомков несколько форм Shape с примитивами.

Общая последовательность добавления в дерево объектов систем координат и их потомков форм Shape с примитивами следующая. Допустим, необходимо добавить еще одну систему координат Patr2 в качестве потомка к системе координат с именем Patr1. Для этого необходимо сначала щелкнуть мышью один раз по нижней строке children системы координат Patr1, чтобы выделить ее (рис. 74,

а). Затем нажать на кнопку на вертикальной панели инструментов в левой части окна либо использовать меню в по-

следовательности Nodes– Insert – Groups

– Transform.

При этом в дерево объектов в качестве потомка системы Patr1 добавится система координат Transform (рис. 74, б). Чтобы

изменить ее название, необходимо щелкнуть один раз мышью по уже выделенной строке Transform и ввести новое имя Patr2. Затем двойным щелчком раскрыть систему Patr2 и выделить в ней строку children (рис. 74, в).

Затем добавить форму, нажав на кнопку , либо использовать меню в последовательности Nodes – Insert – Common – Shape. При этом в дерево объектов в качестве потомка системы Patr2 добавится форма Shape, которая пока не содержит никакого примитива. Раскрыв форму Shape двойным щелчком и выделив в ней строку geome-

try (рис. 74, г), добавить примитив, нажав на одну из кнопок:

параллелепипед; – конус; – цилиндр; – шар; – фасонная поверхность. Для тех же целей можно использовать меню в последовательности Nodes – Insert – Geometry – (вид примитива). После последней операции дерево объектов будет иметь вид, как на рис. 74,

д.

73

а)

в)

б)

74

г)

д)

 

Рис. 74. Последовательность добавления в дерево объектов систем координат, форм и примитивов

Указанную последовательность действий можно сократить, если после выделения строки children системы координат Patr1 (см. рис.

74, а) сразу нажать на кнопку или другого примитива. Результат будет аналогичен описанному выше, однако название добавленной системы координат Transform придется изменить.

Любой примитив имеет свои свойства-строки, в которых задаются его размеры. Так, например, при нажатии на единственную строку свойств size параллелепипеда Box открывается окно, изображенное на рис. 75, а при нажатии на строку свойств height (высота) цилиндра, открывается окно, изображенное на рис. 76. В рассматриваемом на рис. 75 примере все три размера параллелепипеда равны 2 м. Изменить любой размер можно, поставив флажок в соответствующем поле (X Axis, Y Axis или Z Axis), затем ввести в числовое поле соответствующее точное значение либо воспользоваться прокруткой и нажать на кнопку OK.

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

75

Рис. 77. Объект фона сцены Background

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

Рис. 75. Задание размеров

Рис. 76. Задание высоты

параллелепипеда

цилиндра

Рассмотрим цветовое оформление сцены и объектов на ней. Вновь созданная сцена имеет черный цвет. Чтобы изменить его на требуемый, необходимо добавить в дерево в любом его месте объект фона Back-

ground нажатием на кнопку либо используя последовательность меню Nodes – Insert – Bindable – Background. Свойствастроки groundColor и skyColor задают цвета фона, которые могут быть изменены пользователем после двойного щелчка по строке

(рис. 77).

Для изменения цвета тел примитивов, который по умолчанию серый, необходимо выделить строку appearance соответствую-

щей формы Shape того примитива, цвет которого необходимо изменить (рис. 78, а). Затем, используя последовательность меню Nodes – Insert – Appearance – Appearance, вставить группу Appearance, содержащую три строки: material, texture и textureTransform (рис. 78, б).

Затем, выделив строку material и нажав на кнопку либо используя последовательность меню Nodes – Insert – Appearance – Material,

76

вставить группу материала Material, содержащую еще 6 свойствстрок (рис. 78, в). Строка diffuseColor позволяет изменить цвет объекта.

Еще один важный момент – установка точки и направления просмотра сцены в процессе моделирования. Необходимо нажать на кнопку либо воспользоваться последовательностью меню Nodes – Insert – Bindable – Viewpoint. При этом в дереве объектов появится группа Viewpoint, содержащая 6 свойств-строк (рис. 79, а).

а)

б)

в)

Рис. 78. К изменению цвета тела примитива

а)

б)

в)

77

Рис. 79. К установке точки и направления просмотра сцены

Строки position (рис. 79, б) и orientation (рис. 79, в) позволяют установить соответственно позицию (координаты) точки просмотра и направление просмотра. Свойство-строка set_bind может принимать два значения: True (истина) и False (ложь). Необходимо, чтобы было установлено значение True, чтобы установка координат точки и направления просмотра сцены вступили в силу.

Вернемся к разработке виртуальной сцены автокрана. Порядок построения дерева объектов в окне V-Realm Builder должен опираться на порядок нумерации локальных систем координат звеньев объекта на расчетной схеме автокрана (см. рис. 46), который, в свою очередь, зависит от конструкции механизма автокрана. Нулевая система координат на рис. 46 является неподвижной, а первая система координат X1Y1Z1 связана с базовым шасси автокрана и имеет 6 степеней свободы относительно системы X0Y0Z0: перемещение центра масс базового шасси вдоль оси X0 (q1); перемещение центра масс базового шасси вдоль оси Y0 (q2); перемещение центра масс базового шасси вдоль оси Z0 (q3); поворот базового шасси вокруг оси X1 (q4); поворот базового шасси вокруг оси Z1 (q5); поворот базового шасси вокруг оси Y1 (q6).

Начать построение дерева объектов для анимации автокрана лучше всего с цветового оформления сцены (добавить объект фона Background) и установки точки и направления просмотра сцены (добавить объект Viewpoint). В строке position объекта Viewpoint рекомендуется для начала установить координату Z не менее 10-15 м, чтобы виден был весь объект. В конце построения дерева объектов, свойства position и orientation могут быть изменены.

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

Система координат Base1 в рассматриваемом случае имеет 3 поступательных и одно вращательное перемещение относительно абсолютной (неподвижной) системы координат. Последняя в редакторе V-Realm Builder всегда задана неявно и связана со сценой, на кото-

78

рой происходит анимация. Соответствующие обобщенные координаты автокрана q1...q4.

Система координат Base2 будет иметь одну вращательную степень свободы относительно Base1 (q5). И, наконец, система координат Base3 будет иметь одну вращательную степень свободы относи-

тельно Base2 (q6).

У системы Base3 в качестве потомка будет присутствовать система координат Rama, не имеющая степеней свободы относительно Base3, и именно к системе Rama будет привязана форма Shape с геометрическим телом параллелепипеда Box, изображающего раму базового шасси автокрана. Мотор, кабина, колеса, выносные опоры изображены при помощи параллелепипедов и цилиндров и связаны с собственными системами координат, которые выступают в роли дочерних к системе Rama и не имеют степеней свободы относительно нее. То есть при любых перемещениях системы Base3 система Rama со всеми дочерними системами будет двигаться точно так же, как

Base3.

Здесь необходимо сделать отступление и рассказать о том, в каком формате должны подаваться данные (значения обобщенных координат) из Simulink-модели автокрана в блок VR Sink. Поступательные перемещения для каждого входа translation задаются в виде вектора, имеющего 3 компоненты [X Y Z], описывающие перемещения вдоль трех декартовых осей родительской системы координат. Если система координат (потомок) имеет только одно поступательное перемещение относительно родительской, то две из трех соответствующих компонент вектора [X Y Z] должны оставаться нулевыми в течение всего процесса моделирования. То есть на один вход translation блока VR Sink могут быть поданы от одного до трех поступательных перемещений какой-либо системы координат. Последнее и было сделано для системы координат Base1, значения трех обобщенных координат q1...q3 были в виде вектора поданы на один вход. Все последующие обобщенные координаты автокрана (q4...q13) подавались каждая на отдельный вход.

Вращательное перемещение для каждого входа rotation задается в виде вектора, имеющего 4 компоненты: [X Y Z ]. Здесь первые три компоненты задают вектор (в родительской системе координат) оси вращения, вокруг которой будет вращаться дочерняя система координат, а – собственно угол поворота в радианах. Таким образом,

79

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]