Simulink.BlockDiagram.routeLine

Направьте существующие линии модели

Описание

пример

Simulink.BlockDiagram.routeLine(lines) берет массив существующих указателей линии, как введено и направляет соответствующие линии. Маршрутизация существующих линий улучшает качество маршрута линии и избегает перекрытий с другими линиями и препятствиями в модели.

Найти линию обрабатывает в модели, которую вы хотите направить, использовать find_system или get_param функция.

пример

Simulink.BlockDiagram.routeLine('DeferredLines') выполняет все обновления линии что LineUpdate параметр модели задерживает, в то время как скрипт запускается. Для этой команды, чтобы направить линии, должны применяться все эти условия:

  • LineUpdate параметр модели устанавливается на 'deferred'.

  • Скрипт, который содержит эту команду, влияет на маршрутизацию линии перед использованием этой команды.

  • Если скрипт сохраняет модели, скрипт влияет на линию, направляющую после использования save_system функционируйте и перед использованием этой команды.

Примеры

свернуть все

Направьте существующие линии модели, которые перекрываются с другими линиями и блоками в модели.

Откройте модель ex_route_lines.

open_system('ex_route_lines');

Эти две линии в системе верхнего уровня перекрываются друг с другом и с блоком. Чтобы направить эти линии, создайте массив указателей линии при помощи find_system. Затем вызовите Simulink.BlockDiagram.routeLine с этим массивом, как введено.

lineHandles = find_system(gcs,'FindAll','On','SearchDepth',1,'Type','Line');
Simulink.BlockDiagram.routeLine(lineHandles);

Обновленная модель не имеет никаких перекрытий.

Когда LineUpdate параметр модели устанавливается на 'deferred', скрипты откладывают линию, направляющую, пока они не приостанавливают, завершают или запускают Simulink.BlockDiagram.routeLine('DeferredLines') команда.

ex_route_deferred_lines модели содержит виртуальные подсистемы с многочисленными сигнальными линиями, соединяющими их.

Чтобы видеть, как Simulink.BlockDiagram.routeline('DeferredLines') команда работает с LineUpdate параметр модели, установленный этот параметр на 'deferred'.

set_param(0,'LineUpdate','deferred');

Получите изображение прежде, чем направить задержанные линии

Запустите скрипт MATLAB®, который загружает модель, блоки перемещений в модели, и сохраняет образ модели.

load_system('ex_route_deferred_lines');
set_param([gcs '/Subsystem2'],'Position',[765 -370  855 -330]);
set_param([gcs '/Subsystem3'],'Position',[300  215  390  335]);
set_param([gcs '/Subsystem4'],'Position',[270 -135  360  -95]);
print('-s','deferred_lines_unrouted','-dpng');

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

Получите изображение после маршрутизации задержанных линий

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

load_system('ex_route_deferred_lines');
set_param([gcs '/Subsystem2'],'Position',[765 -370  855 -330]);
set_param([gcs '/Subsystem3'],'Position',[300  215  390  335]);
set_param([gcs '/Subsystem4'],'Position',[270 -135  360  -95]);
Simulink.BlockDiagram.routeLine('DeferredLines');
print('-s','deferred_lines_routed','-dpng');

Добавление команды Simulink.BlockDiagram.routeline('DeferredLines') перед print функция улучшает маршрутизацию линии в сохраненном образе.

Входные параметры

свернуть все

Указатели линий, чтобы направить в виде числового массива. Чтобы найти указатели линии в вашей модели, используйте find_system или get_param функция.

Типы данных: double

Ограничения

  • Маршрутизация линии может потребовать дополнительного пустого места на холсте Simulink®. Если холст не имеет необходимого пустого места, с помощью Simulink.BlockDiagram.routeLine не может улучшить качество маршрута линии.

  • Для больших моделей со многими линиями, чтобы направить, Simulink.BlockDiagram.routeLine может занять несколько минут, чтобы выполниться.

Введенный в R2019a