5

シグナルに名前を設定するとき、シグナル名についていくつか問題があります。

これで、信号名を設定および取得できます

set_param(signal_h, 'SignalNameFromLabel', signal_name);

get_param(signal_h, 'Name');

しかし、信号名の場所を設定または取得できません。

.mdl をテキスト (メモ帳 ++) として開いたところ、*.mdl が信号名の位置をLabelsパラメーター の行列として保持していることがわかりました

コマンド ラインで信号名の場所を設定または取得するにはどうすればよいですか。

私の英語力でごめんなさい。すべての回答に感謝します。

ここに画像の説明を入力

4

2 に答える 2

2

シグナルをinspect処理すると、シグナルの位置を変更しても、プロパティが変更されることはありません。したがって、あなたが望むことを行う簡単な方法はないと思います。基礎となる Java オブジェクトを操作できるかもしれませんが、複雑になります。(...そして、私はそれを助けることができません)

モデル全体をプログラムで作成していると思いますよね?したがって、ブロックの正確な位置を指定し、おそらくadd_lineコマンドを使用して接続を描画します。注釈を使用して信号にラベルを付けることを検討してみませんか? 前と同じように信号に名前を付けますが、ラベルを表示しません。この代わりに、上記のリンクのドキュメントの例のように、プログラムで生成された注釈を使用します。

new_system('test')
open_system('test')
add_block('built-in/Gain', 'test/Gain', 'Position', ...
[260, 125, 290, 155])
add_block('built-in/Note','test/programmatically created', ...
'Position', [550 0 0 180])

ここに画像の説明を入力

于 2013-11-08T09:13:31.113 に答える
1

thewaywewalkが述べたように、あなたが望むことをプログラムで行う方法はありません(少なくとも文書化されているものはありません)。信号を表すポートまたはラインの name パラメーターを設定することにより、プログラムで信号に名前を付けることができます。

p = get_param(gcb, 'PortHandles')
l = get_param(p.Outport, 'Line')
set_param(l, 'Name', 's9')

しかし、ドキュメンテーションによると、シグナル ラベルはマウスでインタラクティブにしか移動できません。

信号ラベルの移動

ラベルは、水平線または線分の上または下、および垂直線または線分の左または右に表示できます。ラベルは、両端、中央、またはこれらの場所の任意の組み合わせに表示できます。

信号ラベルを移動するには、ラベルをライン上の新しい位置にドラッグします。マウス ボタンを放すと、ラベルの位置が線の近くに固定されます。ラベルをその信号からドラッグすることはできませんが、信号に隣接する別の場所にのみドラッグできます。

于 2013-11-08T09:37:24.253 に答える