xlTBUtils コマンドは、レイアウト、再配線機能、選択したブロックやラインを戻す機能など、いくつかの機能を提供します。
構文
xlTBUtils(function, args)
e.g.
xlTBUtils('Layout',struct('verbose',1,'autoroute',0))
xlTBUtils('Layout',optionStruct)
xlTBUtils('Redrawlines',struct('autoroute',0))
xlTBUtils('RedrawLines',optionStruct)
[lines,blks]=xlTBUtils('GetSelected',handle,'all')
説明
xlTBUtils(function [,args])
引数には、実行する関数の名前を指定します。必要に応じて、関数呼び出しにほかの引数も指定できます。関数引数では、大文字と小文字は区別されません。指定可能な値は次のとおりです。
関数 | 説明 |
---|---|
'Layout' | モデル上でレイアウト アルゴリズムを実行し、モデル上のラインの配置および再配線を実行します。レイアウトは、次のオプションの構造を使用してカスタマイズできます。 |
'RedrawLines' | モデル上で配線アルゴリズムを実行し、モデル上のラインの再配線を実行します。RedrawLines は、下に説明するオプションの構造を使用してカスタマイズできます。 |
'GetSelected' | システム上で選択されているブロックおよびラインの MATLAB Simulink ハンドルを返します。 |
'xlTBUtils('Layout',optionStruct)
Simulink モデルの配置と配線を自動的に実行します。optionStruct は MATLAB 構造体のデータ型で、レイアウトのパラメーターを含みます。引数 optionStruct は省略できます。
レイアウトでは、回路が左から右へ配置されると想定されます。配置後に、レイアウトで Simulink が使用され、ワイヤ接続が自動配線されます。Simulink により、ブロック ラベルを含め、画面に表示されているものを避けて配線されます。ignore_labels を設定すると、Simulink はラベルを無視して配線を実行できるようになり、その後ラベルをより適切な位置に手動で移動できます。フィールド名の大文字と小文字は区別されないので注意してください。
フィールド名 | 説明 [デフォルト値] |
---|---|
x_pitch、y_pitch | ブロック間のギャップ (ピッチ) を指定します (ピクセル数)。x_pitch はブロック間の水平方向の間隔を、y_pitch は垂直方向の間隔を指定します。[30] |
x_start、y_start | 左 (x_start) と上 (y_start) のマージン余白 (ピクセル数) を指定します。モデルの左と上の余白を指定します。[10] |
autoroute | Simulink ラインの自動配線を有効にします。(1 | 0) [1] |
ignore_labels | ラインを自動配線する際に、Simulink でテキスト ラベルを避けて自動配線します。ignore_labels を 1 に設定すると、配線中のテキスト ラベルのサイズを最小限に抑えることができます。 |
sys | レイアウトするシステムの名前を指定します。[gcs] |
verbose |
1 に設定すると、レイアウト中に待機バーが表示されます。
|
xlTBUtils('RedrawLines',optionStruct)
RedrawLines コマンドを実行すると、Simulink モデルのすべてのラインが再描画されます。選択されたラインがある場合は、選択されたラインのみが再描画され、そうでない場合はすべてのラインが再描画されます。分岐が選択されている場合は、主幹とその他の分岐も含め、ライン全体が再描画されます。
フィールド名 | 説明 [デフォルト値] |
---|---|
autoroute | Simulink ラインの自動配線を有効にします。(1 | 0) [1] |
sys | レイアウトするシステムの名前を指定します。[gcs] |
xlTBUtils('GetSelected',handle,arg)
GetSelected コマンドは、システムで選択されているブロックおよびラインのハンドルを返します。引数のハンドルは、ブロックやラインが選択されている Simulink モデルを返します。また、引数のハンドルの代わりにモデル名を指定することもできます。引数 arg
には、次の表で説明されている文字列のいずれかを指定します。
GetSelected | 説明 [デフォルト値] |
---|---|
'all' | 選択されたラインとブロックの両方を取得します。 |
'lines' | 選択されたラインのみを取得します。 |
'blocks' | 選択されたブロックのみを取得します。 |
GetSelected コマンドは、行情報を含む構造体の配列 (lines) とブロック ハンドルの配列 (blks) の 2 つの項目を持つ配列を返します。'lines' 引数を使用した場合は blks は空の配列となり、'blocks' 引数を使用した場合は lines は空の配列となります。
例
例 1a: レイアウトの実行
a.verbose = 1;
a.autoroute= 0;
xlTBUtils('Layout',a);
この例は、verbose をオンにし、autoroute をオフにしてレイアウト ツールを起動します。
例 1b: レイアウトの実行
xlTBUtils('Layout',struct('verbose',1,'autoroute',0));
この例も、verbose をオンにし、autoroute をオフにしてレイアウト ツールを起動します。
例 2: 線の再描画
xlTBUtils('Redrawlines',struct('autoroute',0));
この例は、autoroute をオフにして、現在のシステムのラインを再描画します。
例 3: 選択されているラインとブロックの取得
xlTBUtils('GetSelected',handle,'all')
lines =
1x3 struct array with fields:
Handle
Name
Parent
SrcBlock
SrcPort
DstBlock
DstPort
Points
Branch
blks =
1.0e+003 *
3.0320
3.0480
この例は、現在のシステムで選択されているすべてのラインとブロックを取得します。3 つのラインと 2 つのブロックが選択されています。最初のライン ハンドルには、次のコマンドでアクセスできます。
lines(1).Handle
ans =
3.0740e+003
最初のブロック ハンドルには、次のコマンドでアクセスできます。
blks(1)
ans =
3.0320e+003
注記
Layout および RedrawLines で実行された操作は、やり直しスタックには入りません。元のモデルに戻すことができるようにするには、操作を実行する前にモデルのコピーを保存しておく必要があります。