add_blockで追加をするとブロックが重なる

MATLABにて、simulinkにadd_blockで同じブロックを追加すると、同じ場所に配置されてしまい、重なってしまいます。ポジションを指定する方法は見つけたのですが、MakeNameUniqueオプションのように自動で位置を調整してくれる方法はありませんでしょうか。

 Respuesta aceptada

交感神経優位なあかべぇ
交感神経優位なあかべぇ el 24 de Jun. de 2022

1 voto

自動で位置調整してくれる方法はないはずです。
地道にブロックのPositionを計算するしか手段はないと思います。
例として、下記のIn1ブロックを選択して、下記コードを実行すると、In2ブロックが、In1ブロック直下にコピーされます。
pos = get_param(gcbh, 'Position');
pos([2,4]) = pos([2,4]) + 30;
add_block(gcb, gcb, 'MakeNameUnique', 'on', 'Position', pos);

3 comentarios

YN
YN el 24 de Jun. de 2022
ご回答いただきありがとうございます。 やはりpositionの計算をしていくしかないのですね。 ご教示いただいたコード中のpos([2,4])は何を指してどういった機能をしているのかご教示いただけないでしょうか。
交感神経優位なあかべぇ
交感神経優位なあかべぇ el 24 de Jun. de 2022
ブロックを選択して、get_param(gcbh, 'Position')を実行すると、そのブロックのPosition値である4要素を持った配列が返ってきます。
この4つの値は、キャンパスの左上の縦横 0 位置を基準にそれぞれ、左、上、右、下の位置を示しています。
つまり、先ほどの例は、ブロックの上と下の位置を示す、配列の要素2と4の値を、それぞれ+30を加算させることで、In1ブロックから、下方向に30移動させた位置のPosition値を作成したということになります。
交感神経優位なあかべぇ
交感神経優位なあかべぇ el 24 de Jun. de 2022
Positionなどのブロックのプロパティは下記ページに色々書いていますので、参考になると思います。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre プログラムによるモデル編集 en Centro de ayuda y File Exchange.

Productos

Versión

R2022a

Etiquetas

Community Treasure Hunt

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

Start Hunting!