Инструменты пользователя

Инструменты сайта


developers:tutorial:dwpfields

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
developers:tutorial:dwpfields [2022/08/12 11:27]
proxor [Пользовательский тег динамического чертежа поперечного профиля профиля]
developers:tutorial:dwpfields [2023/07/31 08:46] (текущий)
yulia
Строка 2: Строка 2:
  
  
-В программном комплексе [[http://​topomatic.ru/​|Топоматик Робур]] чертежи профилей генерируются на основе шаблонов. Шаблон чертежа профиля представляет из себя файл в формате [[https://​ru.wikipedia.org/​wiki/​DXF|DXF (Drawing eXchange Format)]]. При генерации чертежа используются специальные динамические объекты называемые [[road:​commons_tasks:​basic_codes_rail_subobject:​start|тегами]]. Теги это элементы [[road:​commons_tasks:​format_template_drawing_cross_profile:​start|шаблона чертежа]],​ которые представляют необходимую информацию о модели в требуемом графическом виде.+В программном комплексе [[http://​topomatic.ru/​|Топоматик Робур]] чертежи профилей генерируются на основе шаблонов. Шаблон чертежа профиля представляет из себя файл в формате [[https://​ru.wikipedia.org/​wiki/​DXF|DXF (Drawing eXchange Format)]]. При генерации чертежа используются специальные динамические объекты называемые [[road:​commons_tasks:​archive_sections:​format_template_drawing:​basic_codes_rail_subobject:​start|тегами]]. Теги это элементы [[road:​commons_tasks:​archive_sections:​format_template_drawing_cross_profile:​start|шаблона чертежа]],​ которые представляют необходимую информацию о модели в требуемом графическом виде.
  
-==== Алгоритм создания пользовательского тега ====+==== Создания пользовательского тега ====
  
 Для создания пользовательского тега необходимы следующие действия:​ Для создания пользовательского тега необходимы следующие действия:​
   - Создание класса тега, содержащего алгоритм отрисовки графической информации на чертеже   - Создание класса тега, содержащего алгоритм отрисовки графической информации на чертеже
   - Создание класса провайдера тега, отвечающего за регистрацию его в системе   - Создание класса провайдера тега, отвечающего за регистрацию его в системе
-  - Добавление команды регистрирующей тег ​в теле пользовательского модуля +  - Объявление команды регистрирующей тег ​и добавление таска для регистрации тега при инициализации пользовательского модуля 
-  - Добавление таска для регистрации тега при инициализации пользовательского модуля + 
-  - Создание в plugin файле action'​a ​добавления тега в шаблон чертежа+<​note>​При необходимости, ​в plugin файле ​можно объявить ​action добавления тега в шаблон чертежа</​note>​
  
 Программно,​ тег является классом наследником от [[developers:​references:​topomatic.plt.templates.prf.prffield|PrfField]] для продольного профиля и [[developers:​references:​topomatic.plt.templates.crs.crsfield|CrsField]] для поперечного профиля. Оба эти класса,​ в свою очередь,​ являются наследниками класса [[developers:​references:​topomatic.plt.templates.common.templatefield|TemplateField]]. Класс тега содержит его свойства и описание алгоритмов построения графических примитивов. Программно,​ тег является классом наследником от [[developers:​references:​topomatic.plt.templates.prf.prffield|PrfField]] для продольного профиля и [[developers:​references:​topomatic.plt.templates.crs.crsfield|CrsField]] для поперечного профиля. Оба эти класса,​ в свою очередь,​ являются наследниками класса [[developers:​references:​topomatic.plt.templates.common.templatefield|TemplateField]]. Класс тега содержит его свойства и описание алгоритмов построения графических примитивов.
Строка 437: Строка 437:
 </​code>​ </​code>​
  
-Остаётся зарегистрировать соответствующие таски. Для этого в классе наследнике от PluginHostInitializator нашего модуля следует перекрыть метод Initialize() и добавить в него соответствующие инструкции. Пример такого класса будет выглядеть так:+Остаётся зарегистрировать соответствующие таски. Для этого в классе наследнике от [[developers:​references:​topomatic.applicationplatform.plugins.pluginhostinitializator|PluginHostInitializator]] нашего модуля следует перекрыть метод ​[[developers:​references:​topomatic.applicationplatform.plugins.pluginhostinitializator.initialize|Initialize()]] и добавить в него соответствующие инструкции. Пример такого класса будет выглядеть так:
 <code csharp> <code csharp>
 ... ...
Строка 463: Строка 463:
 Редактировать шаблон чертежа можно изменяя содержимое текстовых примитивов посредством DXF-редактора,​ но более удобно воспользоваться редактором шаблонов программного комплекса Топоматик Робур. Редактировать шаблон чертежа можно изменяя содержимое текстовых примитивов посредством DXF-редактора,​ но более удобно воспользоваться редактором шаблонов программного комплекса Топоматик Робур.
  
-Для добавление тега в редакторе шаблонов нужно создать новый action в plugin файле. Action должен вызывать команду в формате+Для добавление тега в редакторе шаблонов нужно создать новый ​**action** в **plugin** файле. ​**Action** должен вызывать команду в формате
 <​code>"​insert_template_field \"<​Выравнивание>​ <​Индекс_подобъекта>​ <​Идентификатор_тега>​ <​Атрибуты_через_пробел>​\""</​code>​ <​code>"​insert_template_field \"<​Выравнивание>​ <​Индекс_подобъекта>​ <​Идентификатор_тега>​ <​Атрибуты_через_пробел>​\""</​code>​
  
-В шаблоне чертежа тег является текстовым примитивом,​ содержание которого представлено в формате "​$<​Имя_тега>"​. Так же после имени тега, в тексте могут содержаться атрибуты разделённые пробелами. Атрибуты определяют значения свойств тега по порядку. Порядок свойств тега соответствует порядку свойств добавленных при регистрации тега.+В шаблоне чертежа тег является текстовым примитивом,​ содержание которого представлено в формате "**$<​Имя_тега>​**". Так же после имени тега, в тексте могут содержаться атрибуты разделённые пробелами. Атрибуты определяют значения свойств тега по порядку. Порядок свойств тега соответствует порядку свойств добавленных при регистрации тега.
  
 Механизм построения чертежа определяет все текстовые примитивы с вышеописанным содержанием. Далее эти примитивы заменяются на наборы примитивов,​ построенные подпрограммами соответствующих тегов. Механизм построения чертежа определяет все текстовые примитивы с вышеописанным содержанием. Далее эти примитивы заменяются на наборы примитивов,​ построенные подпрограммами соответствующих тегов.
  
-Теперь необходимо сформировать наш файл .plugin. ​Добавим action'​ы ​Заполните его следующим образом.+Теперь необходимо сформировать наш файл .plugin. Заполните его следующим образом.
  
 <code javascript>​ <code javascript>​
developers/tutorial/dwpfields.1660303639.txt.gz · Последние изменения: 2022/08/12 11:27 — proxor