FAQ (Часто задаваемые вопросы)

<< Click to Display Table of Contents >>

Navigation:  Создание окон для клиента визуализации > Рекомендации по созданию окон > Динамизация SVG элементов >

FAQ (Часто задаваемые вопросы)

1.В каких редакторах можно создать SVG?

Ответ: Платные: Adobe Illustrator. Бесплатные: Inkscape, Figma.

 

2.Поддерживается ли тег defs при импорте?

Ответ: Да, тег <defs> поддерживается.

 

3.Можно ли открыть SVG обратно в графическом редакторе, после создания стилей CSS в теге <style>?

Ответ: Нет, не рекомендуется. Это связано с тем, что некоторые графические программы стирают весь style внутри SVG.

Рекомендуется для начала проверить, как Ваш графический редактор обрабатывает style.

Иначе весь style придется заполнять заново.

 

4.Какие графические эффекты поддерживаются?

Ответ:

Поддерживаются:

Внутренняя тень (Inner shadow);

Внешняя тень (Drop shadow);

Размытие слоя (Layer blur).

Не поддерживаются:

Размытие фона (Background blur).

 

5.Почему режимы наложения (blend-mode/blending mode) в графических редакторах работают, а после импорта SVG наложения либо не работают, либо отображаются

неверно?

Ответ: Графические редакторы и браузеры по-разному интерпретируют режимы наложения (mix-blend-mode), из-за этого наблюдается искажение SVG.

К сожалению, из-за данной особенности не рекомендуется использовать режимы наложения (blend-mode/blending mode).

 

6.Можно ли динамизировать SVG с помощью ST?

Ответ: К сожалению, после импорта SVG не работает. Но если создать элементы с помощью встроенных инструментов MasterSCADA 4D, то динамизация с помощью ST будет работать.

 

7.Можно ли динамизировать параметр, который бы отвечал за скорость вращения SVG?

Ответ: К сожалению, это сделать невозможно.

 

8.Можно ли сделать для SVG плавный старт и остановку для вращения?

Ответ: К сожалению, это сделать невозможно.

 

9.В примере с вращением SVG использовался в панели свойств выпадающий список с выбором Off и On. А можно вместо выпадающего списка сделать флаг (чекбокс)?

Ответ: К сожалению, импорт SVG не поддерживает тип BOOL и как следствие флаг (чекбокс).

Поддерживается только:

Поле ввода: Type="STRING";

Выбор цвета: Type="HMI.SolidColorType";

Выпадающий список: Type="STRING" + элемент выпадающего списка Value в теге ParameterDef.

 

10. Поддерживается ли тег <script>, который отвечает за логику JavaScript в SVG?

Ответ: К сожалению, JavaScript (тег <script>) в SVG не поддерживается MasterSCADA 4D.

 

11. Можно после импорта привязать параметры к SVG?

Ответ: К сожалению, после импорта SVG нельзя напрямую привязать параметры. Для этого нужно создать отдельное окно (мнемосхему), в нем разместить только SVG, после чего привязки параметров заработают.

 

12. После импорта SVG я добавил в окно примитивы, но они не отображаются при исполнении проекта, что делать?

Ответ: К сожалению, после импорта в окно SVG нельзя добавлять другие визуальные элементы. Для этого нужно создать отдельное окно (мнемосхему), в нем разместить SVG и уже в данное окно разместить нужные элементы из палитры.

 

13. В SVG есть CSS-анимации/CSS-события, но они не работают, что делать?

Ответ: Одна из причин может быть связана со свойством Динамический SVG, которое нужно активировать.

 

14. Где подробнее можно прочитать про SVG и CSS?

Ответ:

SVG:

SVG Tutorial от W3 schools https://www.w3schools.com/graphics/svg_intro.asp

SVG — учебное руководство от MDN https://developer.mozilla.org/ru/docs/Web/SVG/Tutorial

CSS:

CSS Tutorial от W3 schools https://www.w3schools.com/css/default.asp

CSS: каскадные таблицы стилей https://developer.mozilla.org/ru/docs/Web/CSS

CSS от Дока (практичные примеры и на русском) https://doka.guide/css/

 

15. Можно ли масштабировать SVG после импорта и создания динамизации?

Ответ: Да, можно. SVG-элемент после масштабирования не потеряет свою функциональность:

FAQ_1

 

16. Ошибка импорта: There is an error in XML document (7, 5).

Ответ: Данная ошибка указывает номер строки (7) и номер символа (5), из-за которого произошла ошибка.

Вот что необходимо проверить:

1.Есть ли закрывающие теги:

Пример. Ниже в XML представлен список из двух элементов Value. Value находится в составе ParameterDef, но у него нет закрывающего тега </ParameterDef>:

<?xml version="1.0" encoding="utf-8"?>

<SvgDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" CreateCommonAvary="false">

  <ParameterDefs>

    <ParameterDef DisplayName="state" Type="STRING" ParamType="Attribute" ItemId="lever" Path="class">

      <Value DisplayName="Off">Off</Value>

      <Value DisplayName="On">On</Value>

  </ParameterDefs>

</SvgDef>

Если добавить закрывающий тег, то ошибка пропадет:

<?xml version="1.0" encoding="utf-8"?>

<SvgDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" CreateCommonAvary="false">

  <ParameterDefs>

    <ParameterDef DisplayName="state" Type="STRING" ParamType="Attribute" ItemId="lever" Path="class">

      <Value DisplayName="Off">Off</Value>

      <Value DisplayName="On">On</Value>

    </ParameterDef>

  </ParameterDefs>

</SvgDef>

2.Нет ли лишних закрывающих тегов:

Пример. Ниже в XML представлен список из двух элементов Value, но ParameterDef закрывается два раза. Первый раз после Path="class" стоит символ слэш "/". Это означает, что ParameterDef завершен, но на самом деле это не так и ParameterDef продолжается в виде Value и потом закрывается </ParameterDef>. Чтобы избавиться от ошибки, нужно убрать символ слэш "/", который находится после Path="class":

<?xml version="1.0" encoding="utf-8"?>

<SvgDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" CreateCommonAvary="false">

  <ParameterDefs>

    <ParameterDef DisplayName="state" Type="STRING" ParamType="Attribute" ItemId="lever" Path="class"/>

      <Value DisplayName="Off">Off</Value>

      <Value DisplayName="On">On</Value>

    </ParameterDef>

  </ParameterDefs>

</SvgDef>

Теперь ошибка не проявляется:

<?xml version="1.0" encoding="utf-8"?>

<SvgDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" CreateCommonAvary="false">

  <ParameterDefs>

    <ParameterDef DisplayName="state" Type="STRING" ParamType="Attribute" ItemId="lever" Path="class">

      <Value DisplayName="Off">Off</Value>

      <Value DisplayName="On">On</Value>

    </ParameterDef>

  </ParameterDefs>

</SvgDef>