Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Akkella от 20-12-2018, 22:11:11

Название: Подключение к плагину .net api из внешнего приложения
Отправлено: Akkella от 20-12-2018, 22:11:11
Здравствуйте, подскажите пожалуйста, можно ли подключить к плагину .net api из внешнего приложения, либо как добавить ввод данных в плагин из консоли автокада
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: Александр Ривилис от 20-12-2018, 22:16:53
можно ли подключить к плагину .net api из внешнего приложения
Если имеется в виду "Использовать AutoCAD .NET API из внешнего приложения" - то ответ НЕТ!!!

либо как добавить ввод данных в плагин из консоли автокада
Ничего не понял. Объясни что тебе нужно в деталях.
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: Akkella от 20-12-2018, 22:47:15
Ничего не понял. Объясни что тебе нужно в деталях.
Есть внешняя программа (ехе) которая взаимодействует с автокадом посредством СОМ, но мне нужно взаимодействовать с подшивками (acsmcomponents), доступ к которым можно получить только из автокада, поэтому я хочу написать плагин на .net api (dll загружаемый через netload) который бы взаимодействовал с основной программой и был бы типа ретранслятора для доступа к подшивкам.
Собственно нужно как то вводить данные в этот плагин, либо через консоль автокада (sendcommand от основной программы), либо напрямую.
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: Александр Ривилис от 20-12-2018, 22:50:46
Понятно. Вариантов несколько. Один из них описан здесь: https://adndevblog.typepad.com/autocad/2013/12/connecting-an-autocad-plug-in-to-an-external-application-using-wcf.html
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: Александр Ривилис от 20-12-2018, 23:02:26
Это второй вариант: https://adndevblog.typepad.com/autocad/2012/09/reach-functions-of-a-net-plug-in-from-another-application-out-of-process.html
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: trir от 21-12-2018, 07:13:44
Цитировать
но мне нужно взаимодействовать с подшивками (acsmcomponents), доступ к которым можно получить только из автокада
абсолютно не верно (https://github.com/triroakenshield/SheetSetManager)
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: Привалов Дмитрий от 21-12-2018, 10:37:33
абсолютно не верно
Скорее всего Trir прав, поизучай:
http://adn-cis.org/forum/index.php?topic=7971.0
а также почитай информацию по "sheet set" в ActiveX:
http://help.autodesk.com/view/ACD/2015/ENU/?guid=GUID-5D302758-ED3F-4062-A254-FB57BAB01C44

вполне возможно, что плагин внутри AutoCAD тебе не нужен, Если конечно тебе не нужно получить доступ к чему-то, что есть в .NET API, но отсутствует в ActiveX.
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: trir от 21-12-2018, 10:41:55
Цитировать
Скорее всего Trir прав, поизучай:
и вовсе не поэтому, подшивка это закодированный xml-документ и в болоте (http://www.theswamp.org/index.php?topic=46497.0) давно разобрались как его декодировать
вот этот клас (https://github.com/triroakenshield/SheetSetManager/blob/master/AcSmXml.cs) это делает - после этого с dst-файлом можно работать как с простым xml и без AutoCAD'а, правда надо помнить про механизм блокировки файла подшивки! (он почти такой же как у dwg)
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: Привалов Дмитрий от 21-12-2018, 11:00:20
и вовсе не поэтому
тут я немного другое имел ввиду. Получить свойства из XML скорее всего можно. А если человеку нужен доступ к функциям - публикация, переименование листов и т.д.? тогда ему нужно иметь доступ к API подшивки.
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: Александр Ривилис от 21-12-2018, 13:27:12
Цитировать
но мне нужно взаимодействовать с подшивками (acsmcomponents), доступ к которым можно получить только из автокада
абсолютно не верно (https://github.com/triroakenshield/SheetSetManager)
Ты уже ему это предлагал. Судя по тому, что задан этот вопрос твой вариант его не устроил.
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: Akkella от 23-12-2018, 16:34:06
Это второй вариант: https://adndevblog.typepad.com/autocad/2012/09/reach-functions-of-a-net-plug-in-from-another-application-out-of-process.html
Спасибо, то что надо
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: trir от 24-12-2018, 06:52:31
Цитировать
Спасибо, то что надо
только с подшивками это не поможет (http://adn-cis.org/forum/index.php?topic=7971.0)
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: Александр Ривилис от 24-12-2018, 13:16:59
Цитировать
Спасибо, то что надо
только с подшивками это не поможет (http://adn-cis.org/forum/index.php?topic=7971.0)
Не понял взаимосвязи.
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: trir от 24-12-2018, 13:18:16
Цитировать
Я вроде получил какой-то COM-объект, но у него нет метода CreateDatabase. Буду дальше думать
Цитировать
Вот это как раз из-за того, что в этой библиотеке не всё есть для позднего связывания. И это причина того, что её нельзя использовать в VisualLisp. Думаю, что лучше не тратить на это время.
Название: Re: Подключение к плагину .net api из внешнего приложения
Отправлено: Александр Ривилис от 24-12-2018, 13:19:40
trir,
А причем здесь позднее связывание? В .NET-плагине можно использовать раннее связывание.