Материал: 7лаб

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Рисунок 9 - Добавление 3D объекта Навигация в 3D анимации

Теперь можно запустить модель и увидеть простую 3D анимацию.

  1. Когда вы добавляете 3D окно, AnyLogic создает область просмотра, где вы можете с легкостью управлять 3D просмотром в ходе выполнения модели. Чтобы переключиться в 3D обзор во время выполнения модели, откройте панель разработчика, щелкнув по элементу управления

Панель разработчика в правом углу панели управления. В панели разработчика раскройте список выбрать область и показать и выберите опцию [window3d].

  1. Управляйте 3D сценой с помощью следующих команд:

Чтобы

Используйте мышь следующим образом

Передвинуть сцену

  1. Зажмите левую клавишу мыши в области просмотра 3D и не отпускайте.

  2. Двигайте курсор мыши в нужном направлении.

Повернуть сцену

  1. нажмите клавишу Alt (Mac ОС: Option) и не отпускайте.

  2. Щелкните по области просмотра 3D, не отпуская клавишу Alt, зажмите левую клавишу мыши.

  3. Двигайте курсор мыши в нужном направлении вращения.

Приблизить/удалить

сцену

1. Прокручивайте колесо мыши в окне 3D по направлению к себе, чтобы приблизить сцену, и от себя - чтобы удалить.

Добавить пастонамазочную машину

  1. Выберите станцию обработки pastingMachine и в ее свойствах задайте Видимость: нет. Таким образом анимация станции по умолчанию не будет отображаться во время выполнения модели и не помешает 3D анимации.

  2. Перейдите в палитру 3D объекты.

  3. Перетащите 3D объект Пастонамазочная машина из секции Производство палитры на графический редактор агента Main и разместите его поверх станции pastingMachine.

  4. Появится диалоговое окно Автомасштабирование 3D объекта.

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

  1. В диалоговом окне щелкните кнопку Да.

Нарисовать стены

Рисунок 10 – Стены

  1. Дважды щелкните мышью по элементу Стена в секции Пешеходы палитры Разметка пространства, чтобы перейти в режим рисования.

  2. Щелкните в точке, где должен начаться сегмент стены. Вторым щелчком обозначьте, где будет находиться угол. Дважды щелкните по графическому редактору, чтобы разместить конечную точку сегмента стены.

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

Чтобы отрегулировать расположение стены, выберите ее и используйте сочетание клавиш Shift+стрелка.

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

  2. Зажмите клавишу Ctrl и выделите все нарисованные стены одну за другой. В панели свойств отобразится Выбрано n элемента(ов).

  3. В секции Внешний вид укажите Цвет: серый.

  4. В секции Местоположение и размер укажите Z-Высота: 20.

Фаза 2. Моделирование движения погрузчиков с произвольной навигацией

Создайте погрузчики

  1. Перетащите элемент Тип транспортера из палитры Библиотеки производственных систем на графическую диаграмму агента

Main.

  1. В диалоговом окне Создание агента укажите Имя типа агента:

Forklift.

  1. Щелкните по кнопке Готово.

  2. Откройте секцию Склады и контейнерные терминалы палитры 3D объекты и перетащите элемент Погрузчик на графическую диаграмму агента Forklift.

  3. Приведите размер 3D объекта в соответствие с масштабом агента.

  4. В секции Размеры и движение свойств агента Forklift укажите следующее:

  1. Длина: 2 м

  2. Ширина: 1.3 м

  3. Высота: 1.5 м

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

погрузчика: setCargoPosition(1, 0, 0, METER);

Рисунок 11 – Свойства

Нарисуйте базовое местоположение погрузчиков

  1. Перетащите Прямоугольный узел с палитры Разметка пространства на графическую диаграмму агента Main.

  2. Назовите его forkliftHomeLocation.

  3. В свойствах узла выберите опцию Видимость: нет.

  4. Разместите узел в соответствии с изображением ниже:

Рисунок 12 - Расположение узла

Нарисуйте сушильную камеру

  1. Перетащите Прямоугольный узел с палитры Разметка пространства на графическую диаграмму агента Main.

  2. Назовите curingOven.

  3. В свойствах узла выберите опцию Видимость: нет.

  4. Измените размер узла и его местоположение так, чтобы они соответствовали изображению ниже:

Рисунок 13 - Сушильная камера

  1. В свойствах узла щелкните кнопку Аттракторы..., чтобы задать местоположение агентов в узле.

  2. В диалоговом окне выберите опцию Сетка и задайте значения 5 x

  1. Перетащите аттракторы, чтобы изменить их местоположение. Добавьте 3D анимацию

    1. Откройте палитру 3D объекты.

    2. Перетащите элемент Сушильная камера из секции Производство на графический редактор агента Main и разместите его поверх аттрактора в узле curingOven.

    3. В открывшемся диалоговом окне Автомасштабирование 3D объекта щелкните кнопку Да.

    4. Расположите объект так, чтобы он находился в пределах стен нашего плана и полностью закрывал собой аттрактор.

    5. Скопируйте 3D объект (Ctrl+перетаскивание) и разместите копию на следующем аттракторе. Повторяйте процесс, пока все аттракторы в узле curingOven не будут закрыты 3D объектами.

Задайте управление погрузчиками в диаграмме процесса

  1. Откройте палитру Библиотеки производственных систем и перетащите блок Transporter Fleet на графическую диаграмму агента

Main.

  1. Назовите его forklifts.

  2. В свойствах блока укажите следующее:

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

  2. Задайте Количество транспортеров: 2. Двух погрузчиков будет достаточно, чтобы перевозить партии электродов между областью ожидания и сушильными камерами.

  3. В параметре Базовое местоположение (узлы) выберите узел

forkliftHomeLocation.

  1. Задайте Радиус поворота: 1 м.

  2. В параметре Новый транспортер выберите тип агента Forklift.

  3. Задайте Максимальную скорость: 0.5 м/с.

  1. Перетащите блок MoveByTransporter с палитры Библиотеки производственных систем на графическую диаграмму агента Main и поместите его в диаграмму процесса после блока batch.

  2. В свойствах блока укажите следующее:

  1. Имя: toOven

  2. Место назначения: Node

  3. Узел: curingOven

  4. Автопарк: forklifts

  5. Время погрузки: 1 минуты

  6. Время разгрузки: 1 минуты

Задать процесс сушки электродов

После того, как электроды были доставлены в сушильную камеру, начнется процесс дегидратации. В реальности такие процессы занимают от 12 до 24 часов. Для целей нашего учебного пособия мы значительно сократили это время.

    1. Перетащите блок Delay с палитры Библиотеки моделирования процессов на графическую диаграмму Main и разместите ее в диаграмме процесса после блока toOven.

    2. В свойствах блока delay задайте Время задержки: 2 минуты.

    3. Укажите Место агентов: curingOven.

    4. Запустите модель и посмотрите, как погрузчики перевозят партии электродов.

Задайте перемещение электродов в область ожидания

  1. Нарисуйте прямоугольный узел на плане в соответствии с изображением ниже.

  2. Назовите его preassembleElectrodeBuffer.

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

Рисунок 14 – Узел

  1. В свойствах узла выберите опцию Видимость: нет.

  2. Задайте Расположение внутри: Упорядоченное.

  3. Добавьте в диаграмму процесса еще один блок MoveByTransporter и расположите его после блока delay.

  4. Назовите новый блок toElectrodeBuffer.

  5. В свойствах блока toElectrodeBuffer укажите следующее:

  1. Узел: preassembleElectrodeBuffer

  2. Автопарк: forklifts

  3. Время погрузки: 0.5 минуты

  4. Время разгрузки: 0.5 минуты

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

Фаза 3. Обертывание электродов в конверты и сборка групп Нарисуйте конвейер, станции и область сборки

  1. Дважды щелкните по элементу Конвейер палитры Библиотека производственных систем.

  2. Нарисуйте конвейер в соответствии с изображением ниже.

  3. Назовите его wrappingConveyor.

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

Рисунок 15 – Конвейер

  1. В свойствах конвейера укажите следующее:

  1. Тип материального объекта: Electrode

  2. Z: 20

  3. Ширина: 0.5 м

В итоге ваш конвейер должен выглядеть следующим образом:

Рисунок 16 - Итоговый конвейер

  1. Перетащите элемент Станция обработки с палитры Библиотека производственных систем на графический редактор агента Main и разместите его на конвейере wrappingConveyor.

  2. Назовите станцию wrappingStation.

  3. В свойствах станции выберите опцию Видимость: нет.

  4. Настройте свойства wrappingStation следующим образом:

  1. Длина: 0.5 м.

  2. Время обработки: 1 секунда

  3. Оставьте неизменным значение параметра Вместимость: 1.

  4. В параметре Загрузка выберите опцию Идет одновременно с выгрузкой.

  1. Теперь нам нужно задать области, где будет проходить процесс сборки электродов в группу. Разные этапы сборки будут происходить в разных областях. Мы воспользуемся элементом Прямоугольный узел, чтобы определить границы этих областей:

  1. wrappedElectrodeBuffer - временная область ожидания, где обернутые в конверты электроды находятся перед тем, как их начнут объединять в группы. Ширина: 25 и Высота: 20.

  2. assembleArea - область, где происходит непосредственная сборка в группы.

Ширина: 15 и Высота: 20.

  1. assembledBlocksBuffer - временная область хранения собранных блоков электродов. Ширина: 20 и Высота: 20.

Размеры этих узлов нужно задавать с максимальной точностью, чтобы они не выступали из-под 3D объекта, который мы добавим на следующем этапе моделирования.

Рисунок 17 - Прямоугольный узел

  1. В свойствах каждого из трех узлов укажите следующее:

  1. Видимость: нет

  2. Расположение внутри: Упорядоченное

  3. Z: 20

Добавьте 3D анимацию

    1. Перетащите 3D объект Конвертировщик с палитры 3D объекты на графическую диаграмму агента Main.

    2. В диалоговом окне Автомасштабирование 3D объекта щелкните кнопку Да.

    3. Расположите 3D объект поверх станции wrappingStation так, как указано на изображении ниже:

Рисунок 18 - 3D объект

  1. Таким же образом используйте 3D объект Машина пайки блоков аккумулятора из палитры 3D объекты, чтобы создать анимацию для области сборки блоков.

  2. В свойствах 3D объекта задайте Доп. масштабирование: 160% для всех составных частей объекта. Чтобы выбрать составную часть, щелкайте мышью по объекту. При первом щелчке выбирается объект целиком, при втором - первая составная часть, при третьем - вторая составная часть.

  3. С помощью метки-манипулятора разверните 3D объект на 90 градусов вправо. Обратите внимание на изображение ниже: так машина для пайки блоков должна выглядеть на графическом редакторе в вашей модели:

Рисунок 19 - Машина пайки блоков аккумуляторов Добавьте процесс обертывания электродов в диаграмму процесса Сначала мы разберем партии электродов на отдельные электроды.

  1. Перетащите блок Unbatch с палитры Библиотеки моделирования процессов на графическую диаграмму агента Main и разместите его в диаграмме процессов перед блоком sink.

  2. Назовите новый блок unbatchElectrodes.

  3. В параметре Тип элемента свойств блока выберите Electrode.

  4. Добавьте блок Convey в диаграмму процесса после блока unbatchElectrodes.

  5. Назовите новый блок wrappingConvey.

  6. В свойствах блока укажите следующее: