Шаг 3. Создаем типы вагонов

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

AnyLogic предоставляет удобный Мастер создания типа вагона. Просто укажите имя нового типа вагона и выберите фигуру анимации из списка готовых 3D объектов.

 Задайте типы вагонов
  1. Создайте новый Тип вагона, перетащив элемент Тип вагона из палитры Железнодорожная библиотека на графическую диаграмму Main.

  1. Откроется окно Мастера Создание агентов. Укажите Имя нового типа как Locomotive, оставьте опцию  Создать новый тип агента "с нуля" выбранной. Нажмите Далее.

  1. Выберите Locomotive 14.1m в качестве его фигуры анимации в 3D режиме.

  1. Добавьте еще 5 типов вагонов таким же образом. Назовите их BoxCar, OpenCar, GondolaCar, TankCar и HopperCar. Выберите соответствующие 3D фигуры анимации для каждого типа вагона: Крытый вагон, Открытый вагон, Полувагон, Цистерна, Хоппер.
  2. Таким же образом создайте тип поезда (перетащив элемент Тип поезда из палитры Железнодорожной библиотеки). Назовите его Train.
Измените свойства блока TrainSource

Давайте укажем блоку trainSource, чтобы он создавал поезда нашего типа Train:
  1. В поле Новый поезд выберите Train


  1. В Поле Новый вагон введите carSetup(carindex)
Переключитесь к полю для введения кода, щелкнув по иконке , которая сменится на, позволив написать Java выражение.
Введите следующее выражение:

Здесь мы используем условный оператор Java для того, чтобы создавать вагоны различных типов. Когда блок TrainSource создает новый поезд, он последовательно вызывает выражение, заданное в поле Новый вагон, для каждого создаваемого вагона поезда. Локальная переменная carindex хранит индекс только что созданного вагона. Наше выражение проверяет выполнение условия carindex==0. Если индекс равен нулю (то есть, мы имеем дело с первым вагоном состава), то будет выполнено выражение, написанное после знака ?

Это выражение new Locomotive() создаст вагон типа Locomotive.

Если заданное логическое условие вернет false, это будет значить, что сейчас создается не первый вагон состава. В этом случае мы воспользуемся функцией randomlyCreate, чтобы случайным образом выбрать один из типов грузовых вагонов, заданных нами на прошлом шаге. Список типов вагонов мы передаем функции в качестве ее аргументов.

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

Наблюдайте за моделью в 3D режиме
  1. Добавьте 3D окно из палитры Презентация и поместите его под диаграммой процесса и анимацией.

  1. Запустите модель. 

    При создании 3D окна, AnyLogic добавляет область просмотра, которая позволяет легко переключаться к сцене 3D анимации во время выполнения модели. Чтобы переключиться к 3D анимации в запущенной модели, откройте панель отладки, щелкнув по кнопке  Показать/скрыть панель разработчика в правом углу панели управления. В открывшейся панели отладки, раскройте список  Выбрать область и показать и выберите опцию [window3d].

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


Контрольная модель: Сортировочная горка - Шаг 3




 Шаг 2. Задаем логику

  Шаг 4. Моделируем сортировку вагонов