Создание и редактирование аннотаций программно

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

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

  • Выполните 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)

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

Для аннотаций с форматированным текстом можно использовать 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, который содержит несколько обратных вызовов.

См. также

| | | |

Похожие темы