Редактор SVG
Компонент "Векторное изображение" включает набор инструментов для редактирования загруженного SVG-файла или создания нового изображения с нуля.
Панель инструментов
Панель инструментов отображается при открытии редактора свойств компонента Векторное изображение. Она содержит инструменты для создания, редактирования, трансформации и выравнивания элементов SVG.
Значок | Название | Подробности |
|---|---|---|
Выбор | Выбирает элемент изображения. Если элемент входит в группу, будет выбрана группа. Удерживайте Shift при щелчке, чтобы добавить элементы или группы к выделению. | |
Направленный выбор | Выбирает отдельный элемент, даже если он принадлежит группе. Отображает опорные и управляющие точки для редактирования. Редактируйте элемент, изменяя его опорные и управляющие точки. Направленный выбор всегда применяется только к выбранному элементу, гарантируя, что привязки и изменения свойств влияют на этот элемент, а не на группу. Примечание — Добавление/удаление якорей: Удерживайте клавишу Alt, пока активен прямой селектор:
| |
Карандаш | Рисует произвольные линии с автоматически создаваемыми точками привязки | |
Прямоугольник | Рисует прямоугольники | |
Эллипс | Рисует эллипсы | |
Ручка | Рисует ломаные (многоугольные) пути. Каждый щелчок добавляет опорную точку.
| |
Текст | Добавляет текстовое поле | |
Линия | Рисует прямые линии с двумя точками привязки | |
Отразить по вертикали | Отражает выбранный элемент или элементы по вертикали | |
Отразить по горизонтали | Отражает выбранный элемент или элементы по горизонтали | |
Удалить | Удаляет выбранный элемент или группу | |
Выравнивание по левой кромке | Выравнивает левые границы всех выбранных элементов и групп | |
Выравнивание по правой кромке | Выравнивает правые границы всех выбранных элементов и групп | |
Выравнивать вдоль вертикальной оси | Совмещает вертикальные оси всех выбранных элементов и групп | |
Выравнивание по верней кромке | Выравнивает верхние границы всех выбранных элементов и групп | |
Выравнивание по нижней кромке | Выравнивает нижние границы всех выбранных элементов и групп | |
Выравнивать вдоль горизонтальной оси | Совмещает горизонтальные оси всех выбранных элементов и групп |
Контекстное меню
Контекстное меню предлагает дополнительные действия, зависящие от выбранного элемента или группы элементов.
Название опции меню | Описание |
|---|---|
Добавить изображение | Предоставляет возможность загрузить изображение в поле Данные изображения свойства SVG Файл компонента |
Очистить все | Удаляет все элементы SVG-файла |
Выбрать все | Выбирает все элементы SVG-файла |
Редактировать свойства | Открывает редактор свойств для выбранного элемента |
Копировать | Нагрузка выбранного элемента в буфер обмена |
Вырезать | Нагрузка выбранного элемента в буфер обмена и удаление элемента из SVG-файла |
Вставить | Создает элемент на холсте из данных буфера обмена |
Удалить | Удаляет указанный элемент |
Группа | Создает одну группу из выбранных элементов |
Разгруппировать | Если выбрана группа, элементы, входящие в нее, будут удалены из группы |
Сделать верхним | Делает этот элемент самым верхним в иерархии |
Сделать нижним | Делает этот элемент самым нижним в иерархии |
Переместить вперед | Перемещение указанного элемента на один уровень выше в списке элементов |
Переместить назад | Перемещает указанный элемент на один уровень ниже в списке элементов |
Преобразовать в путь | Если выбранный элемент еще не является путем, он преобразуется в элемент SVG типа путь |
SVG элементы | Отображает список элементов, находящихся непосредственно под курсором, позволяя выбрать скрытые элементы |
Ссылки на свойства элементов
Ссылки на свойства элементов определяются именем элемента и именем свойства, разделенными символом подчеркивания (_).
![]() | Например, предположим, что компонент векторной графики с именем form/vectorDrawing0:rect0_fillПовторим, что эта ссылка состоит из следующих частей:
|
Горячие клавиши редактора
Следующие горячие клавиши можно использовать при выборе одного или нескольких элементов.
![]() | В настоящее время эти горячие клавиши применяются только к собственным элементам SVG. Они не влияют на компоненты инструментальной панели, вложенные в контейнер векторного рисунка. |
Комбинация клавиш | Действие |
|---|---|
| Группировать выделенные элементов |
| Разгруппировать выделенные элементы |
| Копировать выделенные элементы |
| Вырезать выделенные элементы |
| Вставить элементы из буфера обмена |
| Дублировать выбранные элементы |
| Переместить выбранные элементы назад |
| Переместить выделенные элементы вперед |
| Удалить выбранные элементы |
Alt + щелчок по сегменту | Вставить опорную точку в ближайшем месте |
Alt + щелчок по существующей точке | Удалить эту опорную точку |
Alt + наведение курсора на конец открытой ломаной, щелчок | Продолжить рисование от конца пути (ID элемента сохраняется) |
Alt + наведение курсора на начальную точку, щелчок | Замкнуть путь |
Горячие клавиши — Расширенные взаимодействия
Инструмент / Действие | Комбинация клавиш | Результат |
|---|---|---|
Выделение — перетаскивание | Shift | Перемещение только по осям X/Y и диагоналям 45° |
| Alt | Копирование перемещаемого элемента |
| Alt + Shift | Копирование элемента с ограничением по осям X/Y и диагоналям 45° |
Выделение — изменение размера | Shift | Сохранение пропорций при изменении размера |
| Alt | Симметричное изменение в обоих направлениях |
| Alt + Shift | Симметричное изменение с сохранением пропорций |
Выделение — вращение | Shift | Поворот с шагом 15° |
| Alt | Копирование повернутого элемента |
| Alt + Shift | Копирование повернутого элемента с шагом 15° |
Прямое выделение — фигура | — | Поведение аналогично обычному выделению |
Прямое выделение — путь | Shift | Перемещение узла только по осям X/Y и диагоналям 45° |
| Alt | Временный переход к инструменту Перо (Добавить/Удалить узел) |
Карандаш | Shift | Рисование прямой линии по осям X/Y и диагоналям 45° |
Ручка — редактирование пути | Alt | Добавление/удаление узла на существующем пути |
Ручка — рисование | Shift | Рисование прямой линии по осям X/Y и диагоналям 45° |
| Alt | Создание сегмента кривой Безье |
Линия | Shift | Рисование линии по осям X/Y и диагоналям 45° |
| Alt | Рисование линии в обе стороны от точки клика |
| Alt + Shift | То же самое, но с ограничением по осям X/Y и диагоналям 45° |
Прямоугольник | Shift | Создание квадрата |
| Alt | Создание прямоугольника из центра |
| Alt + Shift | Создание квадрата из центра |
Эллипс | Shift | Создание круга |
| Alt | Создание эллипса из центра |
| Alt + Shift | Создание круга из центра |
Текст | — | Модификаторы не поддерживаются |
Любой инструмент | Ctrl (удерживать) | Временный переход в режим Прямого выделения |
Переключение между инструментами рисования и выделения
Редактор SVG поддерживает временное переключение между инструментами с помощью клавиши Ctrl. Эта функция позволяет пользователям редактировать существующие элементы без необходимости вручную менять активный инструмент.
Поведение по умолчанию
Когда активен инструмент рисования (например, прямоугольник, перо, эллипс):
Щелчок по холсту создает новые фигуры.
Существующие фигуры нельзя выделить или переместить.
Это предотвращает случайное изменение фигур в режиме рисования.
Использование клавиши Ctrl для временного переключения инструментов
Активный инструмент | Удерживая клавишу | Назначение |
|---|---|---|
Прямоугольник, Перо, Эллипс | Селектор | Выделить и переместить существующие элементы |
Селектор | Прямой селектор | Редактировать контрольные точки формы |
Прямой селектор | Селектор | Вернуться в стандартный режим выбора |
Отпускание клавиши Ctrl восстанавливает ранее активный инструмент.
Пример последовательности действий
Активируйте инструмент Прямоугольник.
Удерживайте клавишу Ctrl, чтобы временно переключиться в режим Селектор.
Выделите и переместите существующую фигуру.
Отпустите клавишу Ctrl, чтобы продолжить рисование.
![]() |
|
Использование редактора SVG в качестве контейнера
Компонент Векторное изображение представляет собой контейнер, подобно простой панели. Это позволяет вкладывать компоненты непосредственно в холст компонента Векторное изображение и использовать его в качестве контейнера на инструментальных панелях.
Основные особенности:
Векторное изображение ведёт себя как компонент-контейнер: все вложенные элементы (метки, диаграммы, поля ввода и т. д.) располагаются в его пределах.
Вложенные компоненты следуют той же логике позиционирования и компоновки, что и Абсолютное позиционирование.
Вы можете размещать другие компоненты Векторное изображение внутри родительского Векторного изображения — они будут вести себя как часть родительского контейнера.
Привязки шаблонов и пользовательские свойства в редакторе SVG
Компонент Редактор SVG поддерживает привязки на уровне шаблонов и пользовательские свойства, что позволяет использовать многократно применяемые динамические SVG-шаблоны на инструментальных панелях.
Привязки шаблонов SVG
Вы можете определять привязки непосредственно в таблице Свойства SVG. Они ведут себя как стандартные привязки инструментальной панели, но встраиваются в шаблон SVG и автоматически компилируются во время выполнения.
Каждая запись в таблице свойств SVG теперь может включать следующие поля:
Поле | Описание |
|---|---|
Привязка | Включает привязку для свойства |
Выражение | Выражение в стиле JavaScript, вычисляемое для получения значения свойства |
Активатор | Ссылка на событие, запускающее выражение (например, |
При запуске | Если этот параметр включен, выражение вычисляется при загрузке компонента |
При событии | Если этот параметр включен, выражение вычисляется при срабатывании активатора |
Условие | Необязательное условие, которое должно быть выполнено для вычисления выражения |
Периодически | Позволяет периодически перевычислять выражение |
Период | Интервал (в мс) для периодического вычисления |
Когда инструментальная панель загружает компонент Векторное изображение с привязками шаблона, система генерирует стандартные привязки на основе определений шаблона.
![]() | Цель: form/vectorDrawing1:ellipse2_strokeПри нажатии на компонент цвет обводки эллипса динамически изменяется в зависимости от соответствующей привязки данных. |
Привязки инструментальной панели
Привязки инструментальной панели — это стандартные привязки компонентов на уровне инструментальной панели (т.е. обычные привязки, которые связывают свойства компонентов с другими объектами/событиями инструментальной панели).
Для обеспечения предсказуемости редактирования редактор привязок различает эти две группы. В пользовательском интерфейсе привязок используется специальный селектор типа привязки для Векторного изображения, где это применимо (Шаблон или Инструментальная панель).
Редактирование привязок в редакторе свойств
Когда вы открываете привязки для свойства векторного изображения в конструкторе пользовательского интерфейса / редакторе свойств, всплывающее окно привязок предоставляет отдельные представления для привязок шаблона и инструментальной панели. Пользовательский интерфейс отображает их в виде двух вкладок:
Привязка шаблонов
Привязки инструментальной панели
Такое разделение является преднамеренным: оно помогает избежать смешивания привязок на уровне SVG-шаблонов (для каждого свойства SVG) с обычными привязками инструментальной панели.
Важное ограничение для векторных изображений, ссылающихся на шаблон
Если Векторное изображение настроен на ссылку на шаблон (т.е., он не является «владельцем» редактируемого шаблона, а лишь указывает на него), пользовательский интерфейс не позволяет добавлять или редактировать привязки для свойств SVG этого векторного изображения. В этом режиме значок привязки и действия привязки отключены, чтобы предотвратить создание пользователями привязок, которые были бы несовместимы с моделью владения шаблоном, на который ссылается изображение.
Это ограничение гарантирует, что:
привязки шаблонов SVG остаются прикрепленными к компоненту, владеющему шаблоном (или к правильному источнику шаблона),
клонированные или ссылающиеся на шаблон компоненты не отклоняются незаметно от поведения общего шаблона.
Использование выражений шаблонов SVG
Помимо ссылок на статические SVG-шаблоны, свойство SVG Template > Type поддерживает тип источника Expression.
Это позволяет определить динамическое выражение, которое возвращает либо строку (имя шаблона), либо блок данных с SVG-содержимым.
![]() | getVariable("templatesContext", "valveSvgTemplate")Такой подход позволяет динамически повторно использовать логику шаблона в нескольких компонентах Векторное изображение. |
Ссылка на SVG-компонент
Свойство SVG Template > Type также поддерживает новую опцию: Ссылка на SVG-компонент.
При выборе этой опции становится доступен селектор сущностей. Он позволяет выбрать существующий SVG-компонент из дерева контекстов.
Компонент Векторное изображение становится экземпляром выбранного SVG. Он наследует все agg:params, привязки шаблонов и структурные определения от оригинала.
Это обеспечивает удобный и масштабируемый способ повторного использования сложных SVG-шаблонов на инструментальной панели — без ручного дублирования привязок или свойств.
Разрешение ссылок и поведение клонирования
При клонировании компонента Векторное изображение, использующего шаблон, система автоматически обновляет все внутренние ссылки в привязках — такие как Выражение, Условие и Активатор.
![]() | Клонирование компонента обновляет ссылки, например: Original reference: form/vectorDrawing1:barrel1:colorЭто исключает ручное переименование и обеспечивает правильное поведение привязки для каждого экземпляра. |
![]() | Устаревшие привязки, созданные до появления этой функции, по-прежнему работают, но они не отображаются на панели свойств SVG. Только привязки на основе шаблонов поддерживают встроенное редактирование и связывание. |
Поведение клонирования для шаблонов блоков данных
При клонировании векторного изображения, для которого в поле Шаблон SVG → Тип установлено значение Блок данных (любым методом), система изменяет источник шаблона клона, чтобы избежать дублирования встроенных данных SVG.
В частности:
тип шаблона SVG клонированного компонента автоматически изменяется на Выражение,
выражение шаблона автоматически устанавливается на выражение, ссылающееся на шаблон исходного компонента в той же инструментальной панели (например, выражение, указывающее на исходную переменную изображения/шаблона, такую как
{originalSvg:svgFile$imageData}или эквивалентную ссылку, поддерживаемую в вашей среде).
Такое поведение предотвращает появление нескольких идентичных встроенных шаблонов на инструментальной панели после клонирования и делает повторное использование шаблонов явным и удобным для сопровождения.
Was this page helpful?

