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

Труба

Элемент разметки пространства Труба является фигурой анимации для труб в моделях перемещения жидкостей или газов, построенных с помощью Библиотеки моделирования потоков. В свойствах трубы вы можете задавать ее цвет, диаметр, и, если необходимо, менять Z-координаты. Логика (вместимость трубы, скорость потока жидкости, проходящей через трубу, начальный объем жидкости, находящейся в трубе, цвет партий жидкости, проходящих через трубу и т.д.) задается блоком Pipeline из Библиотеки моделирования потоков.

Труба отображается как в 2D, так и в 3D анимации (чтобы увидеть трубу в 3D, добавьте 3D окно в вашу модель). Труба может иметь точки изгиба (см. рисунок ниже).

Труба, идущая из резервуара, в 2D и в 3D анимации

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

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

Демо-модель: Pipeline Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.

Чтобы нарисовать трубу

  1. Сделайте двойной щелчок мышью по элементу Труба из секции Разметка пространства палитры Библиотека моделирования потоков. Значок элемента должен поменяться на этот: . Это означает, что активирован режим рисования элемента, и теперь вы можете рисовать трубу в графическом редакторе точка за точкой.
  2. Нарисуйте трубу в графическом редакторе:

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

  6. Закончив рисовать трубу, перейдите в панель Свойства и задайте Цвет трубы и ее Диаметр (в пикселях).

  7. Если у вашей модели есть 3D анимация, и труба идет в/из некоего резервуара, вам, возможно, понадобится точно отредактировать Z-координаты трубы и резервуара. Например, если Z-координата резервуара равна 0, и вы хотите, чтобы труба выходила из дна резервуара, откройте секцию свойств трубы Местоположение и размер и задайте значение радиуса трубы в поле Z-координаты (к примеру, если свойство трубы Диаметр равно 8, укажите в поле Z 4)
  8. Если труба не лежит на одной плоскости, то вы можете изменить Z-координаты точек трубы в секции свойств трубы Точки.
  9. Установите трубу в качестве фигуры анимации для блока диаграммы процесса Pipeline. Откройте секцию свойств Анимация у блока Pipeline и выберите имя данной трубы в поле Труба.

Свойства

Общие

Имя — Имя трубы. Данное свойство используется для того, чтобы обращаться к трубе из свойств блока Pipeline.

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

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

Видимость — Здесь вы можете указать, будет ли фигура видна во время выполнении модели или нет. С помощью расположенного здесь элемента управления, выберите да или нет.

Цвет — Здесь вы можете задать цвет трубы.

Диаметр — Здесь вы можете задать диаметр трубы (в пикселях).

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

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

X — X-координата начальной точки трубы.

Y — Y-координата начальной точки трубы.

Z — [Доступно, если фигура видна в 3D (специфическое свойство Отображать в установлено в Только 3D или В 2D и в 3D)] Z-координата начальной точки трубы.

Точки

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

Здесь вы определяете относительные координаты, а не абсолютные. Первая точка всегда имеет координаты (0,0,0), и они не редактируются. В остальных строках таблицы задаются относительные координаты последующих точек. Координаты каждой точки представляют собой смещения этой точки от начальной точки по оси X, Y (и, опционально, по оси Z) соответственно.

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

Отображать в — Здесь вы можете выбрать, хотите ли вы, чтобы труба отображалась В 2D и в 3D анимации или Только 2D или Только 3D.

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

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

Направление трубы

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

Чтобы узнать направление трубы

  1. Выделите трубу в графическом редакторе щелчком мыши.
  2. Начальная точка будет выделена синим цветом, а направление трубы будет указано стрелками.

Чтобы изменить направление трубы

  1. Щелкните по трубе в графическом редакторе правой кнопкой мыши и выберите Изменить направление из контекстного меню. Вы увидите, что стрелки изменили свое направление.

Изменение нарисованной трубы

Чтобы продолжить рисовать существующую трубу путем добавления новых сегментов

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

Чтобы добавить новую точку изгиба

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

Чтобы удалить точку изгиба

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

Вы можете разделить трубу на несколько труб (например, чтобы вставить клапан).

Чтобы разделить одну трубу на две

  1. В графическом редакторе, щелкните по фигуре трубы правой кнопкой мыши и выберите опцию Разделить на две фигуры из контекстного меню.
  2. При этом вы увидите точки изгиба трубы. Щелкните по той точке, где вы хотите разъединить трубу. Фигура будет разделена на две отдельных трубы.

Функции

Размер
Функция Описание
double getDiameter() Возвращает диаметр трубы (в пикселях).
double length() Возвращает длину трубы (в пикселях).
double length(LengthUnits units) Возвращает длину трубы в заданных единицах измерения длины.

units —  константа, задающая единицу измерения длины
void setDiameter(double diameter) Задает диаметр трубы (в пикселях).

diameter — новый диаметр трубы
Точки
Функция Описание
Point getStartPoint() Возвращает объект Point с координатами начальной точки трубы.
Point getStartPoint(Point out) Возвращает объект Point с координатами начальной точки трубы.

out — объект out типа Point, в который будут записаны полученные координаты. Объект может быть равен null.
Point getEndPoint() Возвращает объект Point с координатами конечной точки трубы.
Point getEndPoint(Point out) Возвращает объект Point с координатами конечной точки трубы.

out — объект out типа Point, в который будут записаны полученные координаты. Объект может быть равен null.
Position getStartPosition() Возвращает объект Position с координатами и ориентацией начальной точки трубы.
Position getStartPosition(Position out) Возвращает объект Position с координатами и ориентацией начальной точки трубы.

out — объект out типа Position, в который будут записаны полученные координаты. Объект может быть равен null.
Position getEndPosition() Возвращает объект Position с координатами и ориентацией конечной точки трубы.
Position getEndPosition(Position out) Возвращает объект Positionс координатами и ориентацией конечной точки трубы.

out — объект out типа Position, в который будут записаны полученные координаты. Объект может быть равен null.
Point getPointAtOffset(double offset, Point out) Возвращает объект Point с координатами и ориентацией точки, находящейся на заданном отступе (в пикселях) от начальной точки трубы.

offset — отступ, неотрицательное значение, которое равно или меньше длины трубы.
out — объект out типа Point, в который будут записаны полученные координаты. Объект может быть равен null.
Point getPointAtOffset(double offset, LengthUnits units, Point out) Возвращает объект Pointс координатами и ориентацией точки, находящейся на заданном отступе от начальной точки трубы.

offset — отступ, неотрицательное значение, которое равно или меньше длины трубы.
units — одна из констант, задающая единицу измерения длины.
out — объект out типа Point, в который будут записаны полученные координаты. Объект может быть равен null.
Position getPositionAtOffset(double offset, Position out) Возвращает объект Position с координатами и ориентацией точки, находящейся на заданном отступе (в пикселях) от начальной точки трубы.

offset — отступ, неотрицательное значение, которое равно или меньше длины трубы.
out — объект out типа Position, в который будут записаны полученные координаты. Объект может быть равен null.
Position getPositionAtOffset(double offset, LengthUnits units, Position out) Возвращает объект Position с координатами и ориентацией точки, находящейся на заданном отступе от начальной точки трубы.

offset — отступ, неотрицательное значение, которое равно или меньше длины трубы.
units — одна из констант, задающая единицу измерения длины.
out — объект out типа Position, в который будут записаны полученные координаты. Объект может быть равен null.
boolean contains(double px, double py) Возвращает значение true, если точка с заданными координатами находится внутри элемента трубы.

px — X-координата точки.
py — Y-координата точки.
boolean contains(double px, double py, double distance) Возвращает значение true, если труба содержит точку с заданными координатами с учетом заданной погрешности distance; в противном случае возвращает значение false.

px — X-координата точки.
py — Y-координата точки.
distance — погрешность расстояния, позволяющая определить, находится ли заданная точка в непосредственной близости от линии данного элемента разметки.
boolean containsSq(double px, double py, double squareDistance) Возвращает значение true, если труба содержит точку с заданными координатами с учетом заданной погрешности square distance; в противном случае возвращает значение false.

px — X-координата точки.
py — Y-координата точки.
squareDistance — квадратичная погрешность расстояния, позволяющая определить, находится ли заданная точка в непосредственной близости от линии данного элемента разметки.
Сегменты
Функция Описание
int getSegmentCount() Возвращает количество сегментов трубы.
MarkupSegment getSegment(int index) Возвращает сегмент по его индексу.

index — индекс сегмента (отсчет начинается с нуля).
Цвет / текстура
Функция Описание
Color getColor() Возвращает цвет color элемента разметки или null, если у элемента нет цвета или элемент отображает текстуру (в последнем случае используйте функцию getTexture()).
void setColor(Color color) Задает новый цвет трубы.

color — новый цвет трубы. Если передается параметр null, труба не будет нарисована.
void setColor(Paint color) Задает новый цвет (или текстуру) трубы.

color — новый цвет трубы. Если передается параметр null, труба не будет нарисована.
Texture getTexture() Возвращает текстуру трубы, если у трубы есть текстура.
Видимость
Функция Описание
boolean isVisible() Проверяет, отображается ли труба на анимации во время выполнения модели. Если функция возвращает true — значит, труба отображается, если false — нет.
void setVisible(boolean v) Задает видимость трубы.

v — видимость. Если значение vравно true, труба будет отображаться; если значение v равно false — то нет.
Уровень
Функция Описание
Level getLevel() Возвращает уровень, на котором расположена данная труба.
Удаление
Функция Описание
void remove() Удаляет трубу из презентации. Если труба не является частью презентации, функция не выполняет ничего. Обратите внимание, что удаление из презентации не обязательно подразумевает удаление из логики модели, поскольку логические сети и маршруты могли быть заданы еще до удаления элемента и не исчезают.
Как мы можем улучшить эту статью?