Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
developers:tutorial:plan_export_rules [2023/04/05 16:34] proxor [Введение] |
developers:tutorial:plan_export_rules [2023/04/06 07:50] (текущий) proxor [Разработка правила оформления плана] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | <note important>Раздел в разработке</note> | + | |
+ | ---- | ||
===== Разработка правила оформления плана ===== | ===== Разработка правила оформления плана ===== | ||
==== Введение ==== | ==== Введение ==== | ||
- | Программный комплекс Топоматик Робур предоставляет пользователю возможность генерировать плоские чертежи топографических планов в популярных обменных форматах. Генерация примитивов на чертеже плана происходит по принципу **What You See Is What You Get** («что видишь, то и получишь»). Другими словами, экспортированный чертёж будет максимально похож на визуальное представление плана в окне Робура. | + | Программный комплекс [[http://topomatic.ru|Топоматик Робур]] предоставляет пользователю возможность генерировать плоские чертежи топографических планов в популярных обменных форматах. Генерация примитивов на чертеже плана происходит по принципу **[[https://ru.wikipedia.org/wiki/WYSIWYG|What You See Is What You Get]]** («что видишь, то и получишь»). Другими словами, экспортированный чертёж будет максимально похож на визуальное представление плана в окне Робура. |
Часто исполнителю необходимо дорабатывать чертёж в соответствии с требованиями к оформлению плана предъявленными заказчиком. Например, требуется заменить типы линий, разбить вставки блоков, изменить цвет определённых примитивов и т.д. Для того, чтобы чертёж экспортировался в соответствии с уникальным требованиями, в программном комплексе Топоматик Робур предусмотрена возможность использования **правил оформления плана**. **Правила оформления плана** применяются при **создании чертежа**. | Часто исполнителю необходимо дорабатывать чертёж в соответствии с требованиями к оформлению плана предъявленными заказчиком. Например, требуется заменить типы линий, разбить вставки блоков, изменить цвет определённых примитивов и т.д. Для того, чтобы чертёж экспортировался в соответствии с уникальным требованиями, в программном комплексе Топоматик Робур предусмотрена возможность использования **правил оформления плана**. **Правила оформления плана** применяются при **создании чертежа**. | ||
- | **Правило оформления плана** - это текстовый файл с расширением **".py"**, который содержит инструкции на диалекте **IronPython** языка программирования **Python**. | + | **Правило оформления плана** - это текстовый файл с расширением **".py"**, который содержит инструкции на диалекте **[[https://ironpython.net/|IronPython]]** языка программирования **[[https://www.python.org/|Python]]**. |
- | Особенностью диалекта **IronPython** является возможность взаимодействия с **библиотеками классов** платформы **.Net** используемыми в программном комплексе **Топоматик Робур**. Более подробную документацию **IronPython** можно изучить здесь https://ironpython.net/documentation/. В текущей статье мы рассмотрим только те инструкции **IronPython**, которые необходимые для написания **правила оформления плана**. | + | Особенностью диалекта **IronPython** является возможность взаимодействия с **библиотеками классов** платформы **.Net** используемыми в программном комплексе **Топоматик Робур**. Более подробную документацию **IronPython** можно изучить пройдя по **[[https://ironpython.net/documentation/|ссылке]]**. В текущей статье мы рассмотрим только те инструкции **IronPython**, которые необходимые для написания **правила оформления плана**. |
==== Создание и редактирование правила оформления плана ==== | ==== Создание и редактирование правила оформления плана ==== | ||
- | Для создания и редактирования **правила оформления плана** можно воспользоваться любым удобным для вас текстовым редактором, но лучше всего использовать редакторы способные подсвечивать синтаксис кода на языке **Python**, например **VS Code** или **Sublime**. | + | Для создания и редактирования **правила оформления плана** можно воспользоваться любым удобным для вас текстовым редактором, но лучше всего использовать редакторы способные подсвечивать синтаксис кода на языке **Python**, например **[[https://code.visualstudio.com/|VS Code]]** или **[[https://www.sublimetext.com/|Sublime]]**. |
==== Применение правила оформления плана ==== | ==== Применение правила оформления плана ==== | ||
Строка 19: | Строка 21: | ||
Вставьте рамку листа на план с помощью пункта меню "Рисовать" -> "Планшет" -> "Добавить лист". | Вставьте рамку листа на план с помощью пункта меню "Рисовать" -> "Планшет" -> "Добавить лист". | ||
- | FIXME Скрин FIXME | + | {{ :developers:tutorial:plan_export_rules:tut_plan_decoration_rule_1.png?nolink |}} {{ :developers:tutorial:plan_export_rules:tut_plan_decoration_rule_2.png?nolink |}} |
Выберите пункт меню "Проект" -> "Создать чертёж" -> "План..." | Выберите пункт меню "Проект" -> "Создать чертёж" -> "План..." | ||
- | FIXME Скрин FIXME | + | {{ :developers:tutorial:plan_export_rules:tut_plan_decoration_rule_3.png?nolink |}} |
Программа предложит вам выбрать на плане лист для формирования чертежа. Выберите лист и подтвердите выбор нажатием клавиши **Enter**. После выбора листа, на экране отобразится мастер **"Создания чертежа планшета"**. | Программа предложит вам выбрать на плане лист для формирования чертежа. Выберите лист и подтвердите выбор нажатием клавиши **Enter**. После выбора листа, на экране отобразится мастер **"Создания чертежа планшета"**. | ||
- | FIXME Скрин FIXME | + | {{ :developers:tutorial:plan_export_rules:tut_plan_decoration_rule_4.png?nolink |}} |
- | В нижней части окна мастера вы увидите флажок **"Применить правило оформления"**. Установив этот флаг, станут активными список используемых **правил оформления плана** и кнопки **Добавить** и **Удалить**. По умолчанию, в списке правил уже присутствует **правило оформления плана** **gugk.py**, изменяющее чертёж плана в соответствии с требованиями кодификатора условных знаков **ГУГК** (Государственное Управление Геодезии и Картографии). Правило **gugk.py** разработано сотрудниками Топоматик и входит в стандартный пакет установки программных продуктов Робур. | + | В нижней части окна мастера вы увидите флажок **"Применить правило оформления"**. Установив этот флаг, станут активными список используемых **правил оформления плана** и кнопки **Добавить** и **Удалить**. |
- | FIXME Скрин FIXME | + | <note>По умолчанию, в списке правил уже присутствует **правило оформления плана** **"gugk.py"**, изменяющее чертёж плана в соответствии с требованиями кодификатора условных знаков **ГУГК** (Главное Управление Геодезии и Картографии). Правило "**gugk.py**" разработано сотрудниками Топоматик и входит в стандартный пакет установки программных продуктов Робур.</note> |
+ | |||
+ | {{ :developers:tutorial:plan_export_rules:tut_plan_decoration_rule_5.png?nolink |}} | ||
С помощью кнопки **Добавить** вы можете добавить одно или несколько правил оформления плана. После нажатия кнопки **ОК** правила оформления будут применены к экспортируемому чертежу. | С помощью кнопки **Добавить** вы можете добавить одно или несколько правил оформления плана. После нажатия кнопки **ОК** правила оформления будут применены к экспортируемому чертежу. | ||
- | FIXME Note. Правила оформления будут выполняться по очереди, в том порядке, в котором они расположены в списке сверху вниз. | + | <note>Правила оформления будут выполняться по очереди, в том порядке, в котором они расположены в списке сверху вниз.</note> |
==== Разработка правила оформления плана ==== | ==== Разработка правила оформления плана ==== | ||
Строка 42: | Строка 46: | ||
Создайте текстовый файл с расширением **".py"**. По умолчанию, **правила оформления плана** располагаются в директории ''c:\ProgramData\Topomatic\Robur <TYPE>\16.0\Support\''. Пользовательские правила рекомендуется располагать там, но вы можете расположить их в любом другом доступном месте. | Создайте текстовый файл с расширением **".py"**. По умолчанию, **правила оформления плана** располагаются в директории ''c:\ProgramData\Topomatic\Robur <TYPE>\16.0\Support\''. Пользовательские правила рекомендуется располагать там, но вы можете расположить их в любом другом доступном месте. | ||
- | https://learn.microsoft.com/ru-ru/dotnet/standard/class-libraries | + | |
- | **Библиотеки классов .Net (DLL сборки)** - бинарные файлы с расширением **".dll"**, содержащие описание классов объектов, их состояния и методов взаимодействия с ними. | + | **[[https://learn.microsoft.com/ru-ru/dotnet/standard/class-libraries|Библиотеки классов .Net (DLL сборки)]]** - бинарные файлы с расширением **".dll"**, содержащие описание классов объектов, их состояния и методов взаимодействия с ними. |
Для подгрузки **DLL сборок** в **IronPython** служит модуль **clr** | Для подгрузки **DLL сборок** в **IronPython** служит модуль **clr** | ||
Строка 51: | Строка 55: | ||
</code> | </code> | ||
- | После того как модуль загружен, можно приступить к подгрузке **DLL сборок**. Для этого воспользуемся методом ''clr.AddReference(assembly_name)'' и передадим в него имя сборки без расширения. Предположим, в процессе работы правила вам потребуется прочитать **XML-файл**. Для этого подгрузим сборку **"System.Xml.dll"**. Так же подгрузим сборку **"Topomatic.Dwg.dll"** для работы с примитивами чертежа. Добавьте следующие строки в правило. | + | После того как модуль загружен, можно приступить к подгрузке **DLL сборок**. Для этого воспользуемся методом ''clr.AddReference(assembly_name)'' и передадим в него имя сборки без расширения. Предположим, в процессе работы правила вам потребуется прочитать **XML-файл**. Для этого подгрузим сборку **"System.Xml.dll"**. Так же подгрузим сборку **"Topomatic.Dwg.dll"** для работы с примитивами чертежа. Добавьте следующие строки в файл правила. |
<code python> | <code python> | ||
clr.AddReference("System.Xml") | clr.AddReference("System.Xml") | ||
Строка 90: | Строка 94: | ||
blocks = drawing.Blocks | blocks = drawing.Blocks | ||
- | # Коллекция размерных стилей (DimensionStyles) | + | # Коллекция размерных стилей (DwgDimensionStyles) |
dimension_styles = drawing.DimensionStyles | dimension_styles = drawing.DimensionStyles | ||
Строка 103: | Строка 107: | ||
</code> | </code> | ||
- | Подробнее о работе с чертежом можно узнать в разделе руководства **Работа с примитивами чертежа** FIXME(ссылка). | + | Подробнее о работе с чертежом можно узнать в разделе руководства **[[developers:tutorial:drawing|Работа с примитивами чертежа]]**. |
=== Пример правила оформления === | === Пример правила оформления === |