exponenta event banner

Программное создание и редактирование аннотаций

Аннотации - это визуальные элементы, которые можно использовать для добавления описательных примечаний и выносок в модель. В дополнение к аннотациям, предназначенным только для текста, можно создавать аннотации, которые:

  • Открыть веб-сайты

  • Выполнение команд 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'), получить Simulink.Annotation объект, соответствующий второму дескриптору.

a = get_param(h(2),'Object');

Удалите аннотацию из модели.

delete(a)

Создание аннотаций, содержащих гиперссылки

Для аннотаций в формате RTF можно использовать форматирование HTML для добавления гиперссылки к тексту в аннотации.

Откройте новую модель.

open_system(new_system)

Создайте две аннотации, перемещая одну из них так, чтобы она не перекрывала другую.

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)

Создайте две аннотации и переместите вторую аннотацию так, чтобы она не перекрывала первую аннотацию.

a1 = Simulink.Annotation(gcs,'This is a model annotation.');
a2 = Simulink.Annotation(gcs,'This is a markup annotation.');
a2.Position = [0 20 28 34];

По умолчанию создаются аннотации модели, которые появляются в модели.

Измените вторую аннотацию на аннотацию разметки.

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, содержащий несколько вызовов обратного вызова.

См. также

| | | |

Связанные темы