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

ADN Club => AutoCAD .NET API => Тема начата: mackchemar от 02-10-2018, 16:01:51

Название: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: mackchemar от 02-10-2018, 16:01:51
Не имею достаточного опыта работы с AutoCAD, чтобы оценить возможность реализации такой схемы.

1. Имеем приложение .Net
2. Имеем некий графический редактор (в данном случае AutoCAD)
3. Работая в стороннем приложении запускаем CAD (если не запущен)
4. Создаем в CAD'е некий примитив в виде замкнутой полилинии.
5. Присваиваем примитиву имя, сгенерированное в стороннем .Net приложении
6. Получаем следующие данные о примитиве:
 а) периметр
 б) площадь
7. передаём полученные данные в стороннее приложение.
8. При повторном обращении к данным, полученным из AutoCAD в .Net приложении проверяем не изменялся ли чертеж (а лучше примитив). Если да - генерируем сообщение.

Буду благодарен за любые ответы.


Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: Александр Пекшев aka Modis от 02-10-2018, 16:06:45
Теоретически можно:
- Interfacing an external COM application with a .NET module in-process to AutoCAD (redux) (http://through-the-interface.typepad.com/through_the_interface/2009/05/interfacing-an-external-com-application-with-a-net-module-in-process-to-autocad-redux.html)
- Connecting an AutoCAD plug-in to an external application using WCF (http://adndevblog.typepad.com/autocad/2013/12/connecting-an-autocad-plug-in-to-an-external-application-using-wcf.html)
и так далее по гуглу))

А вот практически - описанная задача не стоит таких усилий. ИМХО
Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: Александр Ривилис от 02-10-2018, 16:19:04
4. Создаем в CAD'е некий примитив в виде замкнутой полилинии.
Программно или пользователь сам это делает? Если программно, то возникает вопрос, а зачем в этой схеме AutoCAD?
Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: mackchemar от 02-10-2018, 16:27:55
4. Создаем в CAD'е некий примитив в виде замкнутой полилинии.
Программно или пользователь сам это делает? Если программно, то возникает вопрос, а зачем в этой схеме AutoCAD?
На этом шаге пользователь должен сам создать необходимый примитив.
Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: mackchemar от 02-10-2018, 16:32:14
Теоретически можно:
- Interfacing an external COM application with a .NET module in-process to AutoCAD (redux) (http://through-the-interface.typepad.com/through_the_interface/2009/05/interfacing-an-external-com-application-with-a-net-module-in-process-to-autocad-redux.html)
- Connecting an AutoCAD plug-in to an external application using WCF (http://adndevblog.typepad.com/autocad/2013/12/connecting-an-autocad-plug-in-to-an-external-application-using-wcf.html)
и так далее по гуглу))

А вот практически - описанная задача не стоит таких усилий. ИМХО
Спасибо за ссылки.

А почему не стоит?
Если пользователь использует площади и периметры примитивов в последующих расчётах стоимости изделий, кроме того, по этим примитивам собственно изделия и изготавливаются. А за день пользователь может обработать до нескольких десятков таких примитивов.

То появляется необходимость:
1. исключить двойной ввод (в CAD'e  создали, увидели  данные, ручками перенесли в .Net приложение, а по пути ошиблись)
2.  максимально  снизить рутинную работу пользователя
Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: Александр Ривилис от 02-10-2018, 16:38:48
mackchemar
Самая большая сложность в этом деле - управлять через COM AutoCAD из внешнего .NET-приложения, т.к. любое действие пользователя может привести к проблемам взаимодействия  .NET-приложение -> AutoCAD. Правильнее (IMHO) это делать изнутри AutoCAD, т.е. написав .NET-приложение, которое работает внутри AutoCAD и использует AutoCAD .NET API.
Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: mackchemar от 02-10-2018, 16:44:05
mackchemar
Самая большая сложность в этом деле - управлять через COM AutoCAD из внешнего .NET-приложения, т.к. любое действие пользователя может привести к проблемам взаимодействия  .NET-приложение -> AutoCAD. Правильнее (IMHO) это делать изнутри AutoCAD, т.е. написав .NET-приложение, которое работает внутри AutoCAD и использует AutoCAD .NET API.

В том то и дело что .Net приложение в этой связке является ведущим (если можно так выразиться).От CAD'а нужны две простые вещи - данные для расчета изделий (площадь и периметр) и собственно геометрия для станков с ЧПУ.
Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: Александр Ривилис от 02-10-2018, 16:48:32
mackchemar
Самая большая сложность в этом деле - управлять через COM AutoCAD из внешнего .NET-приложения, т.к. любое действие пользователя может привести к проблемам взаимодействия  .NET-приложение -> AutoCAD. Правильнее (IMHO) это делать изнутри AutoCAD, т.е. написав .NET-приложение, которое работает внутри AutoCAD и использует AutoCAD .NET API.

В том то и дело что .Net приложение в этой связке является ведущим (если можно так выразиться).От CAD'а нужны две простые вещи - данные для расчета изделий (площадь и периметр) и собственно геометрия для станков с ЧПУ.
Пробуй. Если не получится - придётся вернутся к моему варианту.
Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: mackchemar от 02-10-2018, 17:17:06
Пробуй. Если не получится - придётся вернутся к моему варианту.

Вряд ли. "Затолкать" ERP систему в CAD - это сильно постараться надо.
Пробовать конечно буду.

В крайнем разе (если сложности разработки перевесят предполагаемые выгоды) можно Exel использовать как "передаточное звено". Но очень не хочется.
Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: Александр Ривилис от 02-10-2018, 17:20:43
Пробуй. Если не получится - придётся вернутся к моему варианту.

Вряд ли. "Затолкать" ERP систему в CAD - это сильно постараться надо.
Пробовать конечно буду.

В крайнем разе (если сложности разработки перевесят предполагаемые выгоды) можно Exel использовать как "передаточное звено". Но очень не хочется.
Я имел в виду пробовать твой вариант (т.е. работа твоего .NET-приложения с AutoCAD через COM). А если не получится, то вернёшься к моему. Заталкивать в моём случае ничего не нужно. Скорее всего просто понадобится сделать еще один .NET-плагин для AutoCAD, с которым будет общаться твоё приложение, вместо того, чтобы непосредственно общаться с AutoCAD.
Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: mackchemar от 02-10-2018, 17:27:08
Скорее всего просто понадобится сделать еще один .NET-плагин для AutoCAD, с которым будет общаться твоё приложение, вместо того, чтобы непосредственно общаться с AutoCAD.

Понял.
Спасибо за совет.

Где можно подробности посмотреть по объектной модели AutoCAD?
Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: Александр Ривилис от 02-10-2018, 17:29:41
Где можно подробности посмотреть по объектной модели AutoCAD?
Речь идёт о COM-модели? Объектных моделей в AutoCAD несколько. Есть модель ObjectARX, есть модель AutoCAD .NET API и есть COM-модель.
Для COM-модели посмотри здесь: http://help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-A809CD71-4655-44E2-B674-1FE200B9FE30
Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: mackchemar от 02-10-2018, 17:42:00
- Connecting an AutoCAD plug-in to an external application using WCF

Ого!
Это здорово и это то что нужно похоже. Не думал что Autodesk так далеко зашёл.


Всем спасибо за ответы и советы.
Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: mackchemar от 02-10-2018, 17:42:35
есть модель AutoCAD .NET API

.Net API
Название: Re: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением
Отправлено: Александр Ривилис от 02-10-2018, 20:00:53
есть модель AutoCAD .NET API

.Net API

Её нельзя использовать во внешнем .NET-приложении. Только в .NET-плагине, который загружается внутрь AutoCAD.