MATLAB Answers

参照モデルブロックの​Inport/Out​portの座標を求め​たい

3 views (last 30 days)
ちょいさぶろ
ちょいさぶろ on 17 Jul 2020
Answered: Yoko on 23 Jul 2020
モデル参照しているブロックの入出力ポートの座標を求めたく、コマンドをご教授いただけませんか。
<知りたいこと>
モデル参照ブロックのInportの端子位置を求めたい。
<やりたいこと>
モデル参照ブロックのInport端子と、Inportブロックを、add_linkコマンドで結線したい。
そのとき、Inportブロックの座標位置を、モデル参照ブロックのInport端子位置に合わせ平行に並ばせたい。
モデル参照ブロック・Inportブロックの端子位置は、横限定で考えています。
Before → After

Answers (1)

Yoko
Yoko on 23 Jul 2020
ブロックの端子の座標を取得するには、ブロックの 'PortConnectivity' プロパティを取得します。ブロックを選択した状態で、下記コマンドを実行してみてください。
>> pc = get_param(gcb,'PortConnectivity')
pc =
フィールドをもつ 6×1 struct 配列:
Type
Position
SrcBlock
SrcPort
DstBlock
DstPort
pc の中の Position フィールドに、ポートの座標が格納されています。実行すると、下記のように出力されます。Inport と Outport の両方の座標が出力されます。
>> pc.Position
ans =
300 125
ans =
300 170
ans =
300 215
ans =
420 125
ans =
420 170
ans =
420 215
Inport は最初の3つなので、この座標を使って調整してみてください。
他のブロックプロパティを組み合わせることで、Inport との接続も自動化できると思います。
ブロックに関するプロパティのリストと、取得できる情報に関して、ドキュメントページを参照しつつ、試してみてください。ブロックプロパティの情報は、下記コマンドを実行することでページが開きます。
>> web(fullfile(docroot, 'simulink/slref/common-block-parameters.html'))

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!