Элемент Ж/д путь является
графическим элементом разметки пространства, непрерывный
железнодорожный путь (т.e. такой путь, который не содержит стрелок)
произвольной формы. Ж/д путь
может содержать множество прямых и дуговых сегментов. При создании ж/д
пути, AnyLogic автоматически размещает его в ж/д узле. В дальнейшем ж/д узел можно
расширить, добавляя другие ж/д пути.
Путь знает о стрелках, находящихся на его концах (если они есть). Если на каком-либо конце пути нет стрелки, и вагон покидает путь в этой точке, то считается, что вагон покидает железнодорожную модель.
Путь обладает информацией обо всех вагонах, которые (частично или полностью) находятся на нем. Вы можете получить список этих вагонов с помощью соответствующих функций этого элемента.
Находящиеся на пути вагоны
Функции ж/д пути позволяют динамически блокировать пути, т.е. делать их недоступными для всех поездов в ж/д сети, а также резервировать пути для определенных поездов. Поведение поезда зависит от настроек движения поезда и его состояния в момент, когда путь становится недоступным:
Путь остается заблокированным до вызова функции unblock().
Резервирование пути снимается после того, как все указанные при
резервировании поезда завершают движение по этому пути. Вы также можете
отменить резервирование с помощью вызова функции cancelReservation().
Демонстрационная модель: Railway Track Reservation
Демонстрационная модель: Blocking Railway Tracks
Чтобы нарисовать ж/д
путь
Вы можете сделать прямой сегмент пути - дуговым, и наоборот, на любом этапе рисования.
Ж/д пути могут соединяться друг с другом в своих угловых точках, а также с помощью стрелки. Вы также можете разъединить сеть путей или сегменты одного пути.
Чтобы соединить два пути в один
Чтобы соединить два и более путей с помощью
стрелки
Вы можете отсоединить ж/д путь от сети, отделить пути друг от друга, отделить сегмент от пути или разбить один путь на несколько.
Чтобы
разъединить пути или сегменты
Имя – Имя фигуры.
Исключить – Если опция выбрана, то фигура будет исключена из модели.
Отображается на верхнем агенте – Если опция выбрана, то фигура будет видна на презентации типа агента, в который будет вложен данный агент.
Блокировать – Если опция выбрана, то фигура будет считаться заблокированной и не будет реагировать на щелчки мыши. Таким образом, вы не сможете выбрать заблокированную фигуру в графическом редакторе до тех пор, пока вы не снимете с нее блокировку.
Видимость – Если опция выбрана, то фигура будет отображаться на презентации во время выполнения модели.
Двунаправленный – Здесь вы можете задать движение по пути в обоих направлениях.
Тип – Тип пути. По умолчанию выбран: Жел. дорога.
Цвет линии - Недоступен, когда Тип: Жел. дорога.
Ширина колеи - Расстояние между внутренними гранями головок рельсов.
X – x-координата начальной точки пути.
Y – y-координата начальной точки пути.
Z – [Доступно, только если установлен флажок Отображать в: В 2D и в 3D или Только в 3D] z-координата начальной точки пути.
В секции свойств Точки расположена таблица относительных координат точек пути.
Первая точка всегда имеет координаты (0,0,0), и они не редактируются.
В остальных строках таблицы задаются координаты последующих точек. Координаты каждой точки представляют собой смещения этой точки от начальной по оси X, Y и Z соответственно.
И если координаты точек в двумерном пространстве XY вы можете изменить и в графическом редакторе, то расположение точек пути относительно оси Z можно изменить только в этой таблице.
Отображать в – Если выбрано В 2D и в 3D илиТолько в 3D, то будет создан трехмерный аналог двумерной фигуры. Тогда в режиме запуска модели двумерная фигура будет отображаться там же, где она и была нарисована в графическом редакторе, а трехмерная будет видна в специальном элементе, предназначенном для просмотра трехмерной анимации - 3D окне.
Отображать имя – Если опция выбрана, то имя фигуры будет отображаться в графическом редакторе.
У ж/д пути есть начальная и конечная точка и поэтому у него есть направление движения. Направление движения не отображается графически на элементе пути, если путь двунаправленный.
Точная позиция на ж/д пути может быть задана элементом Точка ж/д пути.
Функция |
Описание |
int nCars() |
Возвращает количество вагонов на пути (включая частично находящиеся на этом пути вагоны). |
Agent getFirstCar() |
Возвращает вагон, ближайший к началу пути, или null, если путь пуст. |
Agent getLastCar() |
Возвращает вагон, ближайший к концу пути, или null, если путь пуст. |
Agent getCar(int index) |
Возвращает вагон, занимающий на пути позицию с заданным номером index. Подсчет вагонов ведется от начала пути, при этом считаются все вагоны: движущиеся, стоящие, сцепленные, а также вагоны, находящиеся на пути лишь частично. Параметр: |
List<Agent> getCars() |
Возвращает список вагонов, которые располагаются на этом пути, включая те вагоны, которые находятся на пути лишь частично. |
List<Agent> getTrains() |
Возвращает список поездов, которые располагаются на этом пути, включая те поезда, которые находятся на пути лишь частично. |
boolean isEmpty() |
Проверяет, свободен ли путь, т.е., не находятся ли на этом пути (хотя бы частично) вагоны. Возвращает true, если путь свободен, в противном случае возвращает false. |
double getFreeSpace(boolean fromstart) |
Проверяет наличие свободного места на пути. Если на пути нет вагонов, то возвращает Double.POSITIVE_INFINITY. Если вагоны есть, то возвращает расстояние до ближайшего вагона от начала или конца пути (в зависимости от значения параметра fromstart). Если какой-то вагон лишь частично въехал или съехал с начала/конца пути, то возвращает отрицательное значение. Параметр: |
Функция |
Описание |
RailwaySwitch getStartSwitch() |
Возвращает стрелку (объект Стрелка) в начале ж/д пути. |
RailwaySwitch getEndSwitch() |
Возвращает стрелку в конце ж/д пути. |
RailwaySwitch getSwitch(boolean atend) |
Возвращает стрелку, находящуюся в начале или конце пути. Параметр: |
RailwaySwitch getOtherSwitch(RailwaySwitch sw) |
Если данная стрелка является "стартовой" стрелкой этого пути, функция возвращает "конечную" стрелку текущего пути, в противном случае стартовую'. Обратите внимание на то, что эта функция не проверяет стартовая стрелка или конечная, так как это является обязанностью пользователя, который вызывает функцию. Параметр: |
Функция |
Описание |
void block() |
Блокирует ж/д путь. Поезда, которые находятся на пути в момент блокировки, могут покинуть путь, но не могут войти на него снова, пока он заблокирован. |
void unblock() |
Снимает блокировку ж/д пути. |
boolean isBlocked() |
Проверяет, заблокирован ли ж/д путь. Если функция
возвращает значение true, путь
заблокирован. Если false - путь не
заблокирован. |
void setBlocked(boolean blocked) |
Меняет "заблокированное" состояние ж/д пути. Параметр: |
void reserveFor(Agent... trains) |
Резервирует ж/д путь для заданных поездов. Только эти
поезда смогут перемещаться по пути. Параметр: |
List<Agent> reservations() |
Возвращает список поездов, для которых зарезервирован этот ж/д путь. |
void cancelReservation() |
Снимает резервирование с ж/д пути. Любой поезд сможет перемещаться по этому пути, если путь не заблокирован. |
boolean isAvailableFor(Agent train) |
Проверяет,
сможет ли заданный поезд перемещаться по этому ж/д пути. Функция
проверяет путь как на блокировку, так и на резервирование. Параметр: |
Функция |
Описание |
RailwayNetwork getRailYard() |
Возвращает ж/д узел (ж/д сеть), которому принадлежит этот путь, или null если путь не является частью ж/д узла. |
Функция |
Описание |
double length() |
Возвращает длину пути в пикселях |
double length(LengthUnits units) |
Возвращает длину пути в указанных единицах измерения длины. Параметр: |
double getWidth() |
Возвращает ширину пути в пикселях. |
double getWidth(LengthUnits units) |
Возвращает ширину пути в указанных единицах длины. Параметр: |
void setWidth(double width) |
Задает ширину пути в пикселях; 0 - самый узкий путь. Параметр: |
void setWidth(double width, LengthUnits units) |
Задает ширину пути в указанных единицах измерения длины; 0 - самый узкий путь. Параметры: |
Функция |
Описание |
Level getLevel() |
Возвращает уровень, на котором
расположен этот путь. |
Функция |
Описание |
Texture getTexture() |
Если у фигуры есть текстура, возвращает ее. |
Color getColor() |
Возвращает цвет фигуры, или null. если фигуре не задан цвет или задана текстура (в этом случае используйте getTexture()). |
void setColor(Color color) |
Задает цвет фигуры. Параметр: |
void setColor(Paint color) |
Задает текстуру фигуры. Параметр: |
Функция |
Описание |
boolean isVisible() |
Проверяет, виден ли путь. Если true, путь виден, если false - нет. |
void setVisible(boolean v) |
Задает видимость пути. Параметр: |
Функция |
Описание |
void remove() |
Удаляет путь из презентации. Если путь не является частью презентации, функция не выполняет ничего. Обратите внимание, что удаление из презентации не обязательно подразумевает удаление из логики модели, поскольку логические сети и маршруты могли быть заданы еще до удаления элемента и не исчезают. |