参照モデルブロックの​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'))

Categories

Find more on 一般分野への適用 in Help Center and File Exchange

Products


Release

R2015a

Community Treasure Hunt

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

Start Hunting!