Main Content

プログラムによる注釈の作成と編集

注釈は、モデルにメモやコールアウトを追加するために使用できる視覚的要素です。テキストのみの注釈に加えて、以下を行う注釈を作成できます。

  • 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 ファイルにコールバック関数を書き込む場合にも役立ちます。

参考

| | | |

関連するトピック