Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
developers:tutorial:cadcursors [2019/02/09 18:42] vasya |
developers:tutorial:cadcursors [2022/03/15 19:12] (текущий) proxor |
||
---|---|---|---|
Строка 27: | Строка 27: | ||
Создайте и настройте новый [[developers:tutorial:module|модуль]] для подключения к программному комплексу [[http://www.topomatic.ru|Топоматик Робур]]. | Создайте и настройте новый [[developers:tutorial:module|модуль]] для подключения к программному комплексу [[http://www.topomatic.ru|Топоматик Робур]]. | ||
+ | |||
+ | С помощью диалогового окна Менеджер ссылок добавьте ссылки на следующие библиотеки: | ||
+ | |||
+ | * [[developers:references:topomatic.cad.foundation|Topomatic.Cad.Foundation.dll]] - базовые математические типы и операции | ||
+ | * [[developers:references:topomatic.cad.view|Topomatic.Cad.View.dll]] - элемент управления для отображения слоёв моделей | ||
+ | |||
+ | <note>Не забудьте поставить флаг «Копировать локально» в «False». Кроме того, необходимо добавить нужные пространства имен в секцию using. Visual Studio позволяет легко сделать это, нажав правой клавишей на имени класса и выбрав добавление директивы using.</note> | ||
В теле программного модуля объявите две команды, и декорируйте их атрибутом "cmd". | В теле программного модуля объявите две команды, и декорируйте их атрибутом "cmd". | ||
Строка 114: | Строка 121: | ||
</code> | </code> | ||
- | Задача команды «test_select_objects» позволить пользователю выбирать объекты на экране, и для каждого выбранного объекта вызывать [[developers:references:topomatic.controls.dialogs.messagedlg|MessageDlg]] в котором будет написан тип объекта. Команда "test_select_points" | + | Задача команды «test_select_objects» позволить пользователю выбирать объекты на экране, и для каждого выбранного объекта вызывать [[developers:references:topomatic.controls.dialogs.messagedlg|MessageDlg]] в котором будет написан тип объекта. Команда "test_select_points" просит пользователя ввести координаты точки, показывает их с помощью [[developers:references:topomatic.controls.dialogs.messagedlg|MessageDlg]] и предлагает ему измерить длину до следующей точки. |
+ | <note>Для вывода значений в примере используются статические методы класса [[developers:references:topomatic.cad.foundation.valueconverter|ValueConverter]]. Он позволяет производить вывод числовых значений с заданной точностью, в том числе с точностью - указанной в настройках проекта. А также выполнять сравнение значений с необходимой погрешностью.</note> | ||
+ | |||
+ | Теперь необходимо сформировать наш файл .plugin. Заполните его следующим образом. | ||
+ | <code javascript> | ||
+ | { | ||
+ | "assemblies": { | ||
+ | "tutorial3": { | ||
+ | "assembly": "tutorial3.dll, tutorial3.ModulePluginHost" | ||
+ | } | ||
+ | }, | ||
+ | "actions": { | ||
+ | "id_test_select_objects": { | ||
+ | "cmd": "test_select_objects", | ||
+ | "title": "Выбор объектов" | ||
+ | }, | ||
+ | "id_test_select_points": { | ||
+ | "cmd": "test_select_points", | ||
+ | "title": "Выбор точек" | ||
+ | } | ||
+ | }, | ||
+ | "menubars": { | ||
+ | "rbproj": { | ||
+ | "items": [ | ||
+ | { | ||
+ | "id": "test_menu", | ||
+ | "title": "Примеры" | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | "rbproj.test_menu": { | ||
+ | "items": [ | ||
+ | "id_test_select_objects", | ||
+ | "id_test_select_points" | ||
+ | ] | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Здесь мы описываем[[developers:references:core.plugin:actions|actions]] для наших команд, и добавляем пункты в меню. | ||
+ | Результатом запуска проекта будет появления в главном меню пункта «Примеры», с подпунктами, которые будут показаны и работать в соответствии с описанным выше алгоритмом. Например, если выделить с помощью команды "Выбор объектов" отрезок - то мы увидим следующий результат: | ||
- | «test_flags_cmd» определить, соответствует ли параметр слову «Выключить». | + | {{ :developers:tutorial:cadcursors:select_segment.png?direct&600 |}} |
+ | <note>[[developers:tutorial:tutorialcode|Исходный код]] примера расположен в проекте **"tutorial3"**.</note> |