プログラムによる注釈の作成と編集
注釈は、モデルにメモやコールアウトを追加するために使用できる視覚的要素です。テキストのみの注釈に加えて、以下を行う注釈を作成できます。
Web サイトを開く
MATLAB® コマンドを実行する
イメージを表示する
ブロック線図の領域を視覚的に区別する
プログラムによって注釈を作成、編集、削除する方法の例を以下に示します。
プログラムによる注釈の作成
プログラムによって注釈を作成、変更、表示します。
新しいモデルを開きます。
open_system(new_system)
関数Simulink.Annotation
を使用して、既定のプロパティで注釈を作成します。
a = Simulink.Annotation(gcs,'This is an annotation.');
注釈の作成後、ドット表記を使用してプロパティの値を設定します。たとえば、18 ポイントのフォントと薄い青色の背景を注釈に適用します。
a.FontSize = 18;
a.BackgroundColor = 'lightBlue';
新しい注釈を表示して、一時的に強調表示するには、関数 view
を使用します。
view(a)
既存の注釈をプログラムによって検出および変更
プログラムによって注釈のプロパティを検出および変更します。
vdp
モデルを開きます。
vdp
モデル内の注釈を見つけるには、関数find_system
を使用します。
h = find_system(gcs,'FindAll','on','Type','annotation');
注釈を特定するには、関数get_param
を使用して注釈内のテキストをクエリします。
get_param(h,'PlainText')
ans = 2x1 cell
{'Copyright 2004-2020 The MathWorks, Inc.'}
{'van der Pol Equation' }
薄い青色の背景色を 'van der Pol Equation'
注釈に適用するとします。
配列の対応するインデックスを指定することで、Simulink.Annotation
オブジェクトを取得します。
a = get_param(h(2),'Object');
ドット表記を使用して、BackgroundColor
プロパティの値を設定します。
a.BackgroundColor = 'lightBlue';
注釈の削除
プログラムによって注釈を削除します。
vdp
モデルを開きます。
vdp
モデル内の注釈のハンドルを取得するには、関数find_system
を使用します。
h = find_system(gcs,'FindAll','on','Type','annotation');
注釈を特定するには、注釈内のテキストをクエリします。
get_param(h,'PlainText')
ans = 2x1 cell
{'Copyright 2004-2020 The MathWorks, Inc.'}
{'van der Pol Equation' }
モデル ('van der Pol Equation'
) のタイトルを削除するには、2 番目のハンドルに対応するSimulink.Annotation
オブジェクトを取得します。
a = get_param(h(2),'Object');
モデルから注釈を削除します。
delete(a)
ハイパーリンクを含む注釈の作成
リッチテキストの注釈については、HTML 形式を使用して注釈内のテキストにハイパーリンクを追加できます。
新しいモデルを開きます。
open_system(new_system)
2 つの注釈を作成します。いずれかの注釈を移動させて、もう 1 つの注釈にオーバーラップしないようにします。
a1 = Simulink.Annotation(gcs,'This is an annotation.'); a2 = Simulink.Annotation(gcs,'This is another annotation.'); a2.Position = [0 20 28 34];
注釈内でハイパーリンクを作成するには、Interpreter
を 'rich'
に設定し、Text
プロパティでハイパーリンクを定義します。
a1.Interpreter = 'rich'; a1.Text = 'Go to <a href="www.mathworks.com">www.mathworks.com</a>.';
MATLAB 関数をハイパーリンクに組み込むこともできます。
a2.Interpreter = 'rich'; a2.Text = '<a href="matlab:magic(4)">Generate magic square</a>.';
詳細については、関数を実行するハイパーリンクの作成を参照してください。
モデルへのイメージの追加
イメージのみの注釈を作成することで、モデルにロゴなどのイメージを追加します。
新しいモデルを開いて、それに注釈を作成します。
open_system(new_system)
a = Simulink.Annotation(gcs,'This is an annotation.');
指定されたイメージのみを表示するように注釈を変更します。
img = fullfile(matlabroot,'toolbox','matlab','imagesci','peppers.png'); setImage(a,img)
プログラムによる領域の作成
モデル内に領域の注釈を作成します。
vdp
モデルを開きます。
open_system('vdp')
モデル内の一部のブロックが含まれる領域を作成します。
add_block('built-in/Area','vdp/This is an area','Position',[120,100,230,200])
マークアップ注釈の作成と非表示
簡単に非表示にできる注釈を作成するには、マークアップ注釈を作成します。
新しいモデルを開きます。
open_system(new_system)
2 つの注釈を作成します。最初の注釈にオーバーラップしないように 2 番目の注釈を移動させます。
a1 = Simulink.Annotation(gcs,'This is a model annotation.'); a2 = Simulink.Annotation(gcs,'This is a markup annotation.'); a2.Position = [0 20 28 34];
既定では、モデル内に表示されるモデル注釈を作成します。
2 番目の注釈をマークアップ注釈に変更します。
a2.MarkupType = 'markup';
マークアップ注釈を非表示にするように現在のモデルを設定します。
set_param(gcs,'ShowMarkup','off');
非表示にされているマークアップ注釈に関係なく、両方の注釈が維持されます。
ah = find_system(gcs,'FindAll','on','Type','annotation'); at = get_param(ah,'Text')
at = 2x1 cell
{'This is a markup annotation.'}
{'This is a model annotation.' }
コールバック関数を実行する注釈の検出
現在実行中のコールバック関数が注釈によって実行された場合、getCallbackAnnotation
を使用して関数を呼び出した注釈を特定します。関数によって対応する Annotation
オブジェクトが返されます。この関数は、複数のコールバックを含んだ別個の MATLAB ファイルにコールバック関数を書き込む場合にも役立ちます。
参考
add_block
| delete
(Annotation)
| setImage
(Annotation)
| view
(Annotation)
| Simulink.Annotation