В каких файлах искать .NET библиотеки

Автор Тема: В каких файлах искать .NET библиотеки  (Прочитано 11694 раз)

0 Пользователей и 4 Гостей просматривают эту тему.

Оффлайн dmitrykitАвтор темы

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
Пишу на PERL. Возможностей OLE нехватает.
впервые вступаю на тропу .NET.
Помогите разобраться в каких .dll что искать.
впервую очередь интересует boundary API.

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Минимальный комплект:
accoremgd
acdbmgd
acdbmgdbrep - то что вы ищете
acmgd

Еще могут пригодится:
AcCui - настройки Автокада
AcMr
Autodesk.AutoCAD.Interop
Autodesk.AutoCAD.Interop.Common

Оффлайн dmitrykitАвтор темы

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
Благодарю за быстрый ответ. то что искал.

Былбы рад рад небольшому примеру. вроде подключиться к активному окну. и перебрать обьекты.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Былбы рад рад небольшому примеру. вроде подключиться к активному окну. и перебрать обьекты.
Что имеется в виду под подключением к активному окну? Используя эти библиотеки вы пишите dll-сборку внутри AutoCAD, а не внешний exe-файл. Во внешнем exe-файле нельзя использовать почти все из перечисленных сборок кроме interop.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Максим Маркевич

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Былбы рад рад небольшому примеру. вроде подключиться к активному окну. и перебрать обьекты.
Посмотри на хабре, у этого паренька есть 6 публикаций, мне кажется, что ты там найдешь небольшие примеры под свои нужды, затронуты почти все базовые темы.

Оффлайн dmitrykitАвтор темы

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
Александр спасибо что прояснили мне некоторые моменты.  interop как я понимаю ничем неотличается от com. И смысла подключать эти библиотеки нет.

Оффлайн dmitrykitАвтор темы

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
как я понимаю чтобы встроиться в пространство автокада мне необходимо получить dll с классом IExtensionApplication
и функциями Initialize и Terminate ? и загрузить через netload. или я чтото недопонимаю?

Оффлайн Максим Маркевич

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
interop как я понимаю ничем неотличается от com. И смысла подключать эти библиотеки нет.
На самом деле, это не так. Некоторые вещи не реализованы или плохо реализованы в .NET, поэтому COM иногда необходим.
как я понимаю чтобы встроиться в пространство автокада мне необходимо получить dll с классом IExtensionApplication
и функциями Initialize и Terminate ? и загрузить через netload. или я чтото недопонимаю?
Initialize и Terminate отвечают за то, что загружается вместе с автокадом, то есть прям в момент его загрузки.
Для того, чтобы "встроиться в пространство автокада" можно еще создать командный метод типа:
Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.ApplicationServices.Core;
  2. using Autodesk.AutoCAD.Runtime;
  3.  
  4. namespace namespaceTest
  5. {
  6.     public class classTest
  7.     {
  8.         [CommandMethod("Vstroika_V_Autocad")]
  9.         public void voidTest()
  10.         {
  11.             // База
  12.             var doc = Application.DocumentManager.MdiActiveDocument;
  13.             if (doc == null)
  14.                 return;
  15.             var db = doc.Database;
  16.             var ed = doc.Editor;
  17.  
  18.             // Получим сообщение о том, встроились ли мы
  19.             ed.WriteMessage("Мы встроились в пространство автокада!");
  20.         }
  21.     }
  22. }
Вот это потом загружаешь через NETLOAD и вызываешь в AutoCAD метод Vstroika_V_Autocad.
И еще парочка ссылок, раз уж ты первую игноришь:
1. Первое приложение для AutoCAD;
2. Здесь можно скачать лабы.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
мне необходимо получить dll с классом IExtensionApplication
и функциями Initialize и Terminate ?
Класс не должен называться IExtensionApplication - он должен реализовывать интерфейс IExtensionApplication, что как раз и означает, что в нём должны быть методы Initialize и Terminate, они должны быть public, не иметь аргументов и ничего не возвращать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
и загрузить через netload
Лучше забудь об этом. Пользователь не станет это каждый раз набирать. Пиши сразу нормальный загрузчик под AppAutoLoader - т.е. bundle-папку. Только в таком виде плагин примут в Autodesk AppStore. Теоретически есть еще автозагрузка плагинов через запись реестре.

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: В каких файлах искать .NET библиотеки
« Ответ #10 : 30-12-2016, 13:23:45 »
Теоретически есть еще автозагрузка плагинов через запись реестре.
Она не "теоретическая", а самая что ни на есть практическая. BUNDLE-пакеты загружаются в акад именно потому, что по факту, обнаружив их, загрузчик регистрирует их в реестре, а так же добавляет под них кучу путей в Support Files Search Path.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: В каких файлах искать .NET библиотеки
« Ответ #11 : 30-12-2016, 16:16:10 »
BUNDLE-пакеты загружаются в акад именно потому, что по факту, обнаружив их, загрузчик регистрирует их в реестре, а так же добавляет под них кучу путей в Support Files Search Path.
В реестре загрузчик их не регистрирует. Он их обрабатывает по аналогии с обработкой реестра, но реестр не трогает.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: В каких файлах искать .NET библиотеки
« Ответ #12 : 30-12-2016, 16:36:19 »
В реестре загрузчик их не регистрирует. Он их обрабатывает по аналогии с обработкой реестра, но реестр не трогает.
У меня после загрузки BUNDLE регистрационная информация появляется и в реестре... Полез в исходники и увидел, что это мой же код дополнительно и выполняет регистрацию в реестре. :)

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: В каких файлах искать .NET библиотеки
« Ответ #13 : 30-12-2016, 16:39:07 »
Полез в исходники и увидел, что это мой же код дополнительно и выполняет регистрацию в реестре. :)
Так ты что ему двойную загрузку устраиваешь? Он дважды конечно не загрузится, но какие-то проблемы возникнуть могут.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: В каких файлах искать .NET библиотеки
« Ответ #14 : 30-12-2016, 16:42:40 »
Так ты что ему двойную загрузку устраиваешь?
В коде забыл разблокировать проверку версии акада, чтобы в реестр записывалось только если акад старее чем 2012.

но какие-то проблемы возникнуть могут.
Я так не думаю.