Разработчикам

MainLogoRu

ModPlus сделает Вашу работу в AutoCAD и Revit более комфортной и приятной

ModPlus станет отличным помощником инженеру любой специальности

ModPlus максимально удовлетворит пожелания всех своих пользователей

Легкость в установке

Легкость в установке

Легкость в установке плагина - скачай, распакуй, запусти и пользуйся!

Узнай подробнее в видео

Оформление в стиле Metro

Оформление в стиле Metro

Все великолепие четкого и чистого внешнего вида стиля Metro без украшений и ненужных элементов!

Для того, чтобы Ваша функция взаимодействовала с плагином ModPlus, нужно в функцию добавить интерфейс взаимодействия. Для этого нужно:

1) Добавить к вашему проекту ссылку на библиотеку mpPInterface.dll из корневой директории плагина ModPlus. Не забывайте для ссылки установить свойство Копировать локально (Copy Local) в значение False,

2) Создать отдельный класс, описывающий нашу функцию. Пример будет дальше

В статьях Создание демо-функции под AutoCAD. Часть 1 и Создание демо-функции для Revit описаны примеры создания интерфейса, однако, ввиду внесения новых возможностей, был создан новый интерфейс (общий и для функций под AutoCAD и для функций под Revit), который будет описан в данной статье. Плагин ModPlus поддерживает все три интерфейса, однако новые функции рекомендуется создавать с новым интерфейсом.

Интерфейс взаимодействия выглядит так:

View source
  1. public interface IModPlusFunctionInterface
  2. {
  3. SupportedProduct SupportedProduct { get; }
  4. string Name { get; }
  5. string AvailProductExternalVersion { get; }
  6. string ClassName { get; }
  7. string LName { get; }
  8. string Description { get; }
  9. string Author { get; }
  10. string Price { get; }
  11. bool CanAddToRibbon { get; }
  12. string FullDescription { get; }
  13. string ToolTipHelpImage { get; }
  14. List<string> SubFunctionsNames { get; }
  15. List<string> SubFunctionsLames { get; }
  16. List<string> SubDescriptions { get; }
  17. List<string> SubFullDescriptions { get; }
  18. List<string> SubHelpImages { get; }
  19. List<string> SubClassNames { get; }
  20. }

Теперь подробнее о каждом пункте:

1) SupportedProduct – перечисление, указывающее для какого продукта данная функция. Для функций под AutoCAD значение всегда SupportedProduct.AutoCAD, для функций под Revit значение всегда SupportedProduct.Revit

2) Name – Имя функции. Значение всегда должно быть уникальным, поэтому рекомендую использовать префикс разработчика. Например, для функций, написанных мной (разработчик ModPlus) всегда используется префикс mp (mpLayerAuto, mpTxtNumCopy и т.д.). Если функция пишется под AutoCAD, то имя функции должно совпадать с командным методом для запуска основной функции. Т.е., если я в командной строке AutoCAD напишу имя функции и нажму Enter, то у меня начнет работать эта самая функция

3) AvailProductExternalVersion – «внешняя» версия поддерживаемого продукта. Всегда является значением в виде простого числа и указывается как строчное значение. Для функций под AutoCAD это «2010», «2011», 2012» и т.д. Для функций под Revit это «2017», «2018» и т.д.

4) ClassName – только для функций под Revit. Класс, содержащий метод Execute. Значение должно состоять из двух составляющих, разделенных точкой: namespace.class. Для функций под AutoCAD – пустое значение

5) LName – локализованное имя функции. То название функции, которое пишется на кнопках в меню и ленте и т.п.

6) Description – краткое описание функции

7) Author – автор функции

8) Price – стоимость функции без учета НДС указываемое как строчное значение. Для бесплатных функций значение должно быть «0»

9) CanAddToRibbon – указатель на то, что функция может встраиваться в меню. Если установить значение false, то в конфигураторе на вкладке «Адаптация» в списке активных функций данная функция отображаться не будет. В этом случае добавление на ленту должно быть предусмотрено в самой функции. Добавляться в плавающее меню и меню в палитре в AutoCAD функция не будет!

10) FullDescription – полное описание функции. Добавляется к ToolTip’ам ленты и меню. Необязательное значение

11) ToolTipHelpImage – имя файла в ресурсах, которое используется как картинка в ToolTip’ах. Размер изображение не важен, т.к. изображение всегда будет вписываться. Рекомендуемое значение размеров изображения примерно 350x200(h) px. Изображения, как и значки, должны быть с расширением .png и иметь свойство Действие при сборкеResource. Все файлы картинок для подсказок должны располагаться в директории Resources/Help/ Вашего проекта!

Следующие значения указывают на то, что функция имеет подфункции. Например, если ваша функция запускается с различными параметрами или имеется несколько функций, работающих похоже, но имеющих небольшое отличие. В этом случае на ленте функция будет добавляться как SplitButton (т.е. кнопка с выпадающим списком). Все списки обязательно должны иметь одинаковое количество элементов!

Для всех подфункций в директории Resources/ вашего проекта должны иметься иконки двух размеров – 16x16 и 32x32. Названия файлов должны соответствовать правилам, как и для иконок основной функции – имя_функции_16x16.png и имя_функции_32x32.png

12) SubFunctionsNames – список имен функций. Аналогично значению Name

13) SubFunctionsLames – список локальных имен функций. Аналогично значению LName

14) SubDescriptions – список кратких описаний для подфункций. Аналогично значению Description

15) SubFullDescriptions – список полных описаний для подфункций. Аналогично значению FullDescription

16) SubHelpImages – список картинок в ToolTip для подфункций. Аналогично значению ToolTipHelpImage

17 SubClassNames – список классов, содержащих метод Execute. Аналогично значению ClassName

Пример интерфейса взаимодействия для демо функции под Revit:

View source
  1. using System.Collections.Generic;
  2. using mpPInterface;
  3.  
  4. namespace mprDemoFunction
  5. {
  6. public class Interface : IModPlusFunctionInterface
  7. {
  8. public SupportedProduct SupportedProduct => SupportedProduct.Revit;
  9. public string ClassName => "mprDemoFunction.MainFunction";
  10. public string Name => "mprDemoFunction";
  11. public string AvailProductExternalVersion => "2017";
  12. public string LName => "Демо функция";
  13. public string Description => "Демо функция от ModPlus для Revit";
  14. public string Author => "Пекшев Александр aka Modis";
  15. public string Price => "0";
  16. public bool CanAddToRibbon => true;
  17. public string FullDescription => "Полное описание демо-функции";
  18. public string ToolTipHelpImage => "Linear.png";
  19. public List<string> SubFunctionsNames => new List<string>{"mprDemo2"};
  20. public List<string> SubFunctionsLames => new List<string> {"Подфункция"};
  21. public List<string> SubDescriptions => new List<string>{"Второе краткое описание"};
  22. public List<string> SubFullDescriptions => new List<string>{"Второе длинное описание"};
  23. public List<string> SubHelpImages =>new List<string>{"Curvilinear.png"};
  24. public List<string> SubClassNames => new List<string>{ "mprDemoFunction.mprDemo2" };
  25. }
  26. }

При инициализации в Revit данной функции лента будет выглядеть следующим образом:

2 3 2

Комментировать (0 Комментариев)
Методы, входящие в сам плагин ModPlus, вынесены в отдельную статью ввиду их объемного количества и вхождения в разные классы. Для использования методов нужно подключить (добавить ссылку) к вашему проекту библиотеку плагина, соответствующую версии AutoCAD (файлы ModPlus_xxxx.dll, где хххх – версия AutoCAD) или версии Revit (файлы ModPlus_Revit_xxxx.dll, где хххх – версия Revit). Не забывайте для подключаемой библиотеки установить свойство Копировать локально в значение False.

Все методы библиотеки сгруппированы по содержащим их классам. Для методов (или классов), имеющихся в библиотеке для Revit, в скобах будет указано +Revit.

Для использования методов из данной библиотеки добавьте вначале кода ссылку на пространство имен (пространство имен не зависит от версии продукта):
View source
using ModPlus;
После вам будут доступны следующие методы:

Класс MpWindowHelpers (+Revit)

Используется для присвоения вашему окну настроек темы оформления, установленной пользователем в настройках плагина. Для всех ваших окон присвоение настроек оформления должно осуществляться одинаково (не забудьте подключить библиотеку mpSettings.dll):
View source
public MyWindow()
 {
 InitializeComponent();
 MpWindowHelpers.OnWindowStartUp(
 this,
 MpSettings.GetValue("Settings", "MainSet", "Theme"),
 MpSettings.GetValue("Settings", "MainSet", "AccentColor"),
 MpSettings.GetValue("Settings", "MainSet", "BordersType")
 );
 }
Комментировать (0 Комментариев)

Итак, ваша функция готова. Для AutoCAD это 9 проектов и 9 готовых библиотек, для Revit это 2 проекта и 2 готовые библиотеки (на момент написания статьи). Вы ее протестировали у себя и готовы «пустить в свободное плавание». Теперь нужно отправить функцию мне. Но не просто «голую» функцию, а со всеми соответствующими сопроводительными файлами, а именно:

  1. Файл библиотек функций. Проекты мне Ваши не нужны конечно же =)
  2. Отдельно иконки функции. Если это функция для AutoCAD, то и в формате psd (т.к. все иконки плагина доступны для скачивания на странице рабочих библиотек для динозавров, работающих в классическом меню)
  3. Справку

Немного подробнее.

Библиотеки функций должны быть для всех поддерживаемых версий. Я их обязательно буду проверять.

Внимание! Я могу отказать в добавлении функции, если решу, что она неактуальная или бесполезная! Но Вы всегда можете меня переубедить!

Иконки функций должны соответствовать всем правилам, описанным в статье Создание демо-функции под AutoCAD. Часть 1. Все правила актуальны и для значков под Revit.

Справку нужно написать в обычном документе Word. В места в тексте, куда нужно добавить изображение, нужно просто написать метку, типа Изображение №1. Все изображения из справки должны быть приложены отдельно, т.к. при вставке в word-овский документ качество будет потеряно. При создании изображений нужно учитывать, что на сайте есть светлые и темные темы, поэтому прежде чем делать скрин окна функции, нужно установить в настройках плагина для окон границу по цвету и обрезать окно четко по его границе.

После того, как выполните все описанные требования, собираете все файлы в обычный архив (zip или rar). Архив желательно назвать также, как и называется функция. Данный архив отправляете мне на почту Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.. В письме желательно указать в какую группу (на ленте) вы хотите разместить вашу функцию. Или может предложите создать новую группу. Это нужно для редактирования «адаптации по умолчанию».

После того как я проверю функцию на работоспособность и полезность, я займусь ее добавлением в плагин. Думаю, что это не займет больше одно-двух дней

Комментировать (0 Комментариев)

Как и многие приложения, плагин ModPlus хранит некоторые свои данные в реестре. В основном, это настройки Конфигуратора или Модуля автообновления, но некоторые значения могут быть полезными и при работе с функциями (например, директория расположения плагина). Большинство параметров создается (при отсутствии) при запуске Конфигуратора.

Ниже представлены параметры, хранимые в реестре

Расположение - HKEY_CURRENT_USER\ModPlus

ИмяТипОписание
AutocadVersionSelectedREG_SZ (Строковый)Строковое представление целого числа int, указывающее какая версия AutoCAD была выбрана в списке сортировки («0» - Все)
AutodeskProductSelectedREG_SZ (Строковый)Строковое представление целого числа int, указывающее какой продукт AutoDesk был выбран в списке сортировки
ConfigFileREG_SZ (Строковый)Расположение файла конфигурации. Полный путь, включая имя файла
CUIproductForREG_SZ (Строковый)Строковое представление целого числа int, указывающее какой продукт AutoDesk был выбран в списке сортировки на вкладке Адаптация
DllREG_SZ (Строковый)Список вспомогательных библиотек, разделенный знаком «/». Только имена файлов. Библиотеки из этого списка загружаются при инициализации плагина в AutoCAD или Revit до загрузки функций
emailREG_SZ (Строковый)Адрес почты, указанный для работы с сервером
LoggingSendDateREG_SZ (Строковый)Дата последней отправки лог-файла модуля автообновления
RevitVersionSelectedREG_SZ (Строковый)Строковое представление целого числа int, указывающее какая версия Revit была выбрана в списке сортировки («0» - Все)
SendErrorsREG_SZ (Строковый)Строковое представление булевого значение, указывающее настройку отправки файлов ошибок. «True» - отправлять. «False» - не отправлять
SendStatisticREG_SZ (Строковый)Строковое представление булевого значение, указывающее настройку отправки файлов статистики. «True» - отправлять. «False» - не отправлять
showAdminMsgREG_SZ (Строковый)На данный момент не используется
ShowAllCadsMsgREG_SZ (Строковый)Строковое представление булевого значение, указывающее отображение сообщения «Выбор варианта «Все» увеличивает время загрузки списка функций» в Конфигураторе. «True» - показывать. «False» - не показывать
ShowCreatingREG_SZ (Строковый)Строковое представление булевого значение, указывающее установку галочки в Конфигураторе на варианте сортировки «В разработке». «True» - установлена. «False» - не установлена
StartUpWindowREG_SZ (Строковый)Строковое представление булевого значение, указывающее отображение окна приветствия при загрузке Конфигуратора. «True» - отображать. «False» - не отображать
StatisticSendDateREG_SZ (Строковый)Дата последней отправки файла статистики
TopDirREG_SZ (Строковый)Каталог расположения плагина ModPlus. Путь оканчивается каталогом ModPlus – т.е. это корневая папка плагина
UserLoginREG_SZ (Строковый)Логин пользователя, указанный в соответствующем поле в Конфигураторе на вкладке Конфигурация
WindowHeightREG_SZ (Строковый)Строковое представление целого числа int, указывающее высоту главного окна Конфигуратора перед его закрытием
WindowStateREG_SZ (Строковый)Строковое представление значения WindowState для окна конфигуратора. Возможные значения: «Maximized» - развернуто, «Minimized» - свернуто, «Normal» - нормальное (стандартное)
WindowWidthREG_SZ (Строковый)Строковое представление целого числа int, указывающее ширину главного окна Конфигуратора перед его закрытием

HKEY_CURRENT_USER\ModPlus\AutoUpdater (Параметры модуля автообновления)

ИмяТипОписание
GetStandartCuiREG_SZ (Строковый)Строковое представление булевого значение, указывающее нужно ли перестраивать меню адаптации при установке новых функций. «True» - перестраивать. «False» - не перестраивать
LoadWithWindowsREG_SZ (Строковый)Строковое представление булевого значение, указывающее загружать ли модуль автообновления вместе с Windows. «True» - загружать. «False» - не загружать
LoggingREG_SZ (Строковый)Строковое представление булевого значение, указывающее включено ли логирование работы модуля автообновления. «True» - включено. «False» - не включено
UpdateCheckTimeREG_DWORDПериод проверки обновлений. 0 – 30 минут, 1 – 1 час, 2 – 2 часа, 3 – 4 часа, 4 – 8 часов
UpdatesAutoInstallREG_SZ (Строковый)Строковое представление булевого значение, указывающее что делать при наличии обновлений. «True» - устанавливать автоматически. «False» - спрашивать у пользователя

В следующем примере показано получение каталога расположения плагина ModPlus:

View source
var topDir = string.Empty;
var registryKey = Registry.CurrentUser.OpenSubKey("ModPlus");
if (registryKey != null)
 using (registryKey)
 topDir = registryKey.GetValue("TopDir");
if (!string.IsNullOrEmpty(topDir) & System.IO.Directory.Exists(topDir))
{
 // then work
}

Комментировать (0 Комментариев)
Автообновление

Автообновление

Уникальная система автообновления, которая присутствует только в плагине ModPlus! Вам остается только следить за историей изменений, чтобы быть в курсе

Почему именно ModPlus?!

Функции ModPlus устанавливаются как дополнение и не создают зависимость ваших чертежей от этих функций. Плагин ModPlus для AutoCAD не использует Custom Entity (прокси объекты)

Весь интерфейс ModPlus выполнен с учетом комфортной работы. Вам не придется теряться в десятках элементов окна. Все выполнено так, чтобы было интуитивно понятным и простым

ModPlus развивается учитывая пожелания его пользователей

Уникальная система автообновлений позволяет выпускать обновления различных компонентов моментально. Вам не придется месяцами ждать выхода новой версии всего плагина! Как только ошибка или предложение будет добавлено в компонент плагина, то вы сразу его получите

Плагин ModPlus не имеет определенной направленности по какой-либо специальности (архитектура, строительство и т.п.). Все функции плагина служат для решения совершенно разных задач - от редактирования однострочного текста до оформления чертежей согласно СПДС

 

Максимум доступности

На сайте вы найдете всю полезную информацию

Новости

Следите за важными событиями в жизни плагина

Справка

Доступная и подробная справка ответит на все ваши вопросы

Форум

Оставляйте свои вопросы, идеи и предложения на форуме сайта

История изменений

Всегда будьте в курсе изменений компонентов плагина

ModPlus поддерживает:

AutoCAD 2010

AutoCAD 2010

AutoCAD 2011

AutoCAD 2011

AutoCAD 2012

AutoCAD 2012

AutoCAD 2013

AutoCAD 2013

AutoCAD 2014

AutoCAD 2014

AutoCAD 2015

AutoCAD 2015

AutoCAD 2016

AutoCAD 2016

AutoCAD 2017

AutoCAD 2017

AutoCAD 2018

AutoCAD 2018

Revit 2015

Revit 2015

Revit 2016

Revit 2016

Revit 2017

Revit 2017

Revit 2018

Revit 2018

А также вертикальные решения на базе AutoCAD: AutoCAD Architecture, AutoCAD Civil, AutoCAD MEP, AutoCAD Map, AutoCAD Electrical, AutoCAD Mechanical

Присоединяйся

Чтобы начать пользоваться плагином ModPlus уже сейчас просто скачай архив, распакуй и запусти Конфигуратор! Все просто!

Перейти к скачиванию