Main Content

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');

最上位システムの 2 つのラインがライン同士およびブロックとオーバーラップしています。これらのラインをルーティングするには、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® スクリプトを実行し、モデル内のブロックを移動し、モデルのイメージを保存します。

贷款d_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 スクリプトを実行し、モデル内のブロックを移動し、影響されたライン ルーティングを更新し、モデルのイメージを保存します。

贷款d_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 で導入