• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Написание плагинов Лоцмана на VB.NET

Автор Cattec, 04.09.09, 10:30:54

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Cattec

Необходимо сделать плагин для Лоцмана 8.5 именно на платформе VB.NET
Есть примеры для Дельфи, но есть ряд вопросов,
Интересует именно вопрос ктонибуть уже писал подобное?
Хотелось бы увидеть пример такого плагина, ежели таковой существует.

Cattec

Неужели ни кто не пробывал написать плагины в Net среде?
А то просмотров 49 а ответов 0.

AI

На .NET плагины писать можно. По адресу http://code.google.com/p/loodsmanthings/downloads/list можно скачать мастер для создания плагинов в VS2008. Мастер создает плагин по шаблону (он есть в том же архиве, что и мастер). Плагин состоит из двух проектов: CPP - библиотека pgi на c++, содержащая команды главного меню Лоцмана; COM - библиотека на C#, содержащая собственно логику плагина. К Лоцману подключаем файл pgi, из которого в свою очередь вызывается библиотека на C#.

AI

Кстати, код на C# получается довольно коротким, вот, например, функция для подсчета массы изделия

double CalcMass(LObject dse)
{
  double mass = 0;
  foreach (var link in dse.ChildLinks.Where(link=>link.Type == "Состоит из ..."))
      if (link.Child.Type == "Сборочная единица")
          mass += CalcMass(link.Child);
      else
      {
          var attrMass = link.Child.Attributes["Масса"];
          if (attrMass.IsExists)
              mass += link.Quantity * (double)attrMass.MeasureUnit.ConvertValueToBasicUnit(attrMass.Value);
      }
  return mass;
}