AnyLogic
Развернуть
Размер шрифта

Чертеж САПР

Чтобы добавить на диаграмму чертеж САПР

У пользователей AnyLogic есть возможность использовать в своих моделях чертежи САПР в формате DXF. Это может понадобиться, если вы моделируете движение объектов (агентов, пешеходов и т.д.) в определенном физическом пространстве, заданном с помощью чертежа САПР. Как правило, такие чертежи содержат план помещения (больницы, завода, стадиона, музея) или расположение улиц в городе.

  1. Перетащите элемент Чертеж САПР из палитры Презентация в то место диаграммы, куда вы хотите поместить чертеж.
  2. Перейдите в панель Свойства и выберите файл чертежа, который вы хотите отображать на презентации с помощью данной фигуры. Выбрать файл можно с помощью расположенной здесь кнопки Выбрать. По щелчку на ней откроется диалоговое окно Открыть. Выберите файл чертежа и щелкните по кнопке Открыть. Вы увидите имя выбранного файла (и путь к нему) в поле Файл.
  3. После того, как вы выберете файл, вы можете перейти в секцию свойств Журнал чтения файла, чтобы посмотреть информацию о том, как прошло чтение этого файла — какие слои были прочитаны успешно, а какие — нет, и т.д.
  4. Откройте секцию свойств Слои. В расположенной здесь таблице вы можете выбрать, какие слои чертежа вы хотите видеть во время выполнения модели, установив флажки в соответствующих строках таблицы.
  5. Здесь же вы можете выбрать Цвет заливки, а также при необходимости Инвертировать цвета по умолчанию, выбрав одноименный флажок.

Файл чертежа копируется в каталог модели и при перемещении модели он будет копироваться вместе с ней. Также этот файл автоматически появится в модельной папке Ресурсы, расположенной в панели Проекты. Таким образом вы сможете отслеживать текущее состояние этого файла, менять тип пути к файлу и т.д.

Чтобы преобразовать чертеж САПР в фигуры разметки AnyLogic

После добавления чертежа САПР на диаграмму вы можете преобразовать его в элементы типа Стена. Расположение этих стен будет соответствовать рисунку чертежа, но могут потребоваться некоторые дополнительные корректировки.

Чтобы эта функциональность работала корректно, убедитесь, что указали файл чертежа в поле Файл свойств элемента Чертеж САПР.

  1. Щелкните правой кнопкой мыши по элементу Чертеж САПР в графическом редакторе. Выберите пункт контекстного меню Преобразовать чертеж САПР в фигуры разметки.
  2. Откроется окно мастера Конвертер САПР.
    Поставьте галочки в списке Выберите слои для преобразования рядом с теми слоями чертежа САПР, которые хотите преобразовать.
  3. В выпадающем списке Преобразовать в укажите тип элементов разметки, которые хотите получить после преобразования. В настоящий момент единственным возможным вариантом являются Стены — другие фигуры будут добавлены позднее.
  4. Отметьте опцию Скрыть слои после преобразования, если вы хотите скрыть преобразованные слои чертежа САПР с диаграммы. Они останутся в модели: вы можете регулировать их видимость в свойствах элемента Чертеж САПР.
  5. Щелкните по кнопке Готово.

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

Созданные в результате операции элементы разметки появятся в графическом редакторе. Элемент Чертеж САПР, выбранный для преобразования, останется на диаграмме: вы можете использовать его в качестве образца при редактировании разметки.

Свойства

Основные

Имя — Имя фигуры САПР. Имя используется для идентификации и обращения к фигуре из кода.

Исключить — Если опция выбрана, то чертеж САПР будет исключен из модели.

Отображается на верхнем агенте — Если опция выбрана, то фигура будет видна на презентации типа агента, в который будет вложен данный агент.

Блокировать — Если опция выбрана, то фигура будет считаться заблокированной и не будет реагировать на щелчки мыши. Таким образом, вы не сможете выбрать заблокированную фигуру в графическом редакторе до тех пор, пока вы не снимете с нее блокировку. Обычно это требуется, когда у вас есть какой-то фоновый рисунок, используемый как подложка для анимации, и вы хотите исключить возможность случайного редактирования этого фонового рисунка при рисовании фигур поверх него.

Видимость — Если опция выбрана, то фигура будет отображаться на презентации во время выполнения модели.

Файл — Путь к файлу чертежа САПР. Вы можете выбрать файл с помощью расположенной справа кнопки Выбрать. После того, как вы выберете файл, вы можете перейти в секцию свойств Журнал чтения файла, чтобы посмотреть информацию о том, как прошло чтение этого файла — какие слои были прочитаны успешно, а какие — нет, и т.д.

Выбрать — Кнопка позволяет пользователю выбрать файл чертежа САПР, который он хочет отображать на презентации с помощью данной фигуры.

Цвет заливки — Здесь вы можете выбрать цвет заливки для чертежа.

Инвертировать цвета по умолчанию — Установив этот флажок, вы инвертируете заданные по умолчанию цвета чертежа.

Слои

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

Местоположение и размер

Уровень — Уровень, на котором находится этот элемент.

X — x-координата верхнего левого угла фигуры.

Y — y-координата верхнего левого угла фигуры.

Ширина — Ширина фигуры (в пикселях).

Высота — Высота фигуры (в пикселях).

Специфические

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

Локальные переменные: self — сам элемент
clickx — x-координата щелчка относительно координат фигуры
clicky — y-координата щелчка относительно координат фигуры

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

Отображать имя — Если опция выбрана, то имя фигуры будет отображаться в графическом редакторе.

Журнал чтения файла

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

Функции

Местоположение фигуры
Функция Описание
double getX() Возвращает X-координату фигуры (X-координату ее левого верхнего угла).
double getY() Возвращает Y-координату фигуры (Y-координату ее левого верхнего угла).
void setX(double x) Задает X-координату фигуры.

x — новое значение Х-координаты
void setY(double y) Задает Y-координату фигуры.

y — новое значение Y-координаты
void setPos(double x, double y) Задает новые координаты фигуры.

x — новое значение Х-координаты
y — новое значение Y-координаты
Размер фигуры
Функция Описание
double getWidth() Возвращает ширину фигуры.
double getHeight() Возвращает высоту фигуры.
void setWidth(double width) Задает новую ширину фигуры.

width — новая ширина фигуры
void setHeight(double height) Задает новую высоту фигуры.

height — новая высота фигуры
Работа со слоями
Функция Описание
String[] getLayerNames() Возвращает массив, который содержит имена слоев в этом чертеже САПР.
Пользователь не может изменять этот массив.
void setVisibleLayers(String ... layerNames ) Делает видимыми все слои с заданными именами и прячет остальные слои. Если один из заданных слоев не находится, возникает сообщение об ошибке. Чтобы показать все слои чертежа, вызовите функцию setVisibleLayers(getLayerNames()).

layerNames — имена слоев, которые должны быть видимыми
void setLayerVisible(String layerName, boolean visible) Делает видимым или невидимым слой с заданным именем.
Если слой с таким именем не находится, возникает сообщение об ошибке.

layerName — имя слоя
visible — видимость слоя. Если здесь передать значение true, слой будет видимым, а если false — невидимым.
boolean isLayerVisible(String layerName) Возвращает true, если слой с заданным именем видимый. В противном случае возвращает false. Если слой с заданным именем не находится, тоже возвращает false.

layerName — имя слоя
Color getCustomLayerColor(String layerName) Возвращает цвет фигур, расположенных на слое, если он был задан пользователем. Если пользователь не задавал цвет, возвращает null. Также возвращает null, если слой с указанным именем не нашелся.

layerName — имя слоя
void setCustomLayerColor(String layerName, color) Задает новый цвет всех фигур, расположенных на заданном слое. Если в качестве аргумента передать null, слой будет отрисован в цвете, заданном по умолчанию. Если слой с заданным именем не находится, появится сообщение об ошибке.

layerName — имя слоя
color — пользовательское значение цвета или null
Цвет фона
Функция Описание
Color getBackgroundColor() Возвращает цвет фона.
void setBackgroundColor(Color backgroundColor) Задает цвет фона.

backgroundColor — новый цвет фона
Имя файла
Функция Описание
String getImageFileName() Возвращает имя файла с чертежом САПР.
Видимость фигуры
Функция Описание
boolean isVisible() Проверка видимости фигуры. Если фигура видима, возвращает true, в противном случае возвращает false.
void setVisible(boolean v) Задает видимость фигуры.

v — видимость: если true — фигура будет видима, а если false — невидима.
Режим отображения (2D / 3D)
Функция Описание
ShapeDrawMode getDrawMode() Возвращает режим отображения фигуры (где ее рисовать: в 2D, 3D или 2D+3D анимации). Поскольку чертеж может отображаться только в 2D анимации, возвращает SHAPE_DRAW_2D.
Группа
Функция Описание
ShapeGroup getGroup() Возвращает группу, содержащую эту фигуру.
Уровень
Функция Описание
Level getLevel() Возвращает уровень, на котором находится эта фигура.
Точки внутри фигуры
Функция Описание
boolean contains(double px, double py) Проверяет, содержит ли фигура точку с указанными координатами (относительно контейнера фигуры, т.е. в той же системе координат, где находится фигура). Возвращает true, если такая точка в фигуре есть.

px — х-координата относительно контейнера фигуры
py — y-координата относительно контейнера фигуры
Point randomPointInside() Возвращает случайно выбранную точку внутри фигуры.
Эта функция использует генератор случайных чисел объекта Presentable, который содержит данную фигуру. Если фигура была создана кодом и не добавлена в группу, после вызова этой функции появится сообщение об ошибке. Для таких случаев используйте функцию randomPointInside(Random rng)).
Point randomPointInside(java.util.Random rng) Возвращает случайно выбранную точку внутри фигуры. Эта функция использует заданный пользователем генератор случайных чисел.

rng — генератор случайных чисел
Как мы можем улучшить эту статью?