Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением

Автор Тема: Теоретический вопрос. Интеграция AutoCAD с сторонним .Net приложением  (Прочитано 10083 раз)

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

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

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
Не имею достаточного опыта работы с AutoCAD, чтобы оценить возможность реализации такой схемы.

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

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



Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Теоретически можно:
- Interfacing an external COM application with a .NET module in-process to AutoCAD (redux)
- Connecting an AutoCAD plug-in to an external application using WCF
и так далее по гуглу))

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

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
4. Создаем в CAD'е некий примитив в виде замкнутой полилинии.
Программно или пользователь сам это делает? Если программно, то возникает вопрос, а зачем в этой схеме AutoCAD?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
4. Создаем в CAD'е некий примитив в виде замкнутой полилинии.
Программно или пользователь сам это делает? Если программно, то возникает вопрос, а зачем в этой схеме AutoCAD?
На этом шаге пользователь должен сам создать необходимый примитив.

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

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
Теоретически можно:
- Interfacing an external COM application with a .NET module in-process to AutoCAD (redux)
- Connecting an AutoCAD plug-in to an external application using WCF
и так далее по гуглу))

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

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

То появляется необходимость:
1. исключить двойной ввод (в CAD'e  создали, увидели  данные, ручками перенесли в .Net приложение, а по пути ошиблись)
2.  максимально  снизить рутинную работу пользователя

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
mackchemar
Самая большая сложность в этом деле - управлять через COM AutoCAD из внешнего .NET-приложения, т.к. любое действие пользователя может привести к проблемам взаимодействия  .NET-приложение -> AutoCAD. Правильнее (IMHO) это делать изнутри AutoCAD, т.е. написав .NET-приложение, которое работает внутри AutoCAD и использует AutoCAD .NET API.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
mackchemar
Самая большая сложность в этом деле - управлять через COM AutoCAD из внешнего .NET-приложения, т.к. любое действие пользователя может привести к проблемам взаимодействия  .NET-приложение -> AutoCAD. Правильнее (IMHO) это делать изнутри AutoCAD, т.е. написав .NET-приложение, которое работает внутри AutoCAD и использует AutoCAD .NET API.

В том то и дело что .Net приложение в этой связке является ведущим (если можно так выразиться).От CAD'а нужны две простые вещи - данные для расчета изделий (площадь и периметр) и собственно геометрия для станков с ЧПУ.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
mackchemar
Самая большая сложность в этом деле - управлять через COM AutoCAD из внешнего .NET-приложения, т.к. любое действие пользователя может привести к проблемам взаимодействия  .NET-приложение -> AutoCAD. Правильнее (IMHO) это делать изнутри AutoCAD, т.е. написав .NET-приложение, которое работает внутри AutoCAD и использует AutoCAD .NET API.

В том то и дело что .Net приложение в этой связке является ведущим (если можно так выразиться).От CAD'а нужны две простые вещи - данные для расчета изделий (площадь и периметр) и собственно геометрия для станков с ЧПУ.
Пробуй. Если не получится - придётся вернутся к моему варианту.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
Пробуй. Если не получится - придётся вернутся к моему варианту.

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

В крайнем разе (если сложности разработки перевесят предполагаемые выгоды) можно Exel использовать как "передаточное звено". Но очень не хочется.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Пробуй. Если не получится - придётся вернутся к моему варианту.

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

В крайнем разе (если сложности разработки перевесят предполагаемые выгоды) можно Exel использовать как "передаточное звено". Но очень не хочется.
Я имел в виду пробовать твой вариант (т.е. работа твоего .NET-приложения с AutoCAD через COM). А если не получится, то вернёшься к моему. Заталкивать в моём случае ничего не нужно. Скорее всего просто понадобится сделать еще один .NET-плагин для AutoCAD, с которым будет общаться твоё приложение, вместо того, чтобы непосредственно общаться с AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
Скорее всего просто понадобится сделать еще один .NET-плагин для AutoCAD, с которым будет общаться твоё приложение, вместо того, чтобы непосредственно общаться с AutoCAD.

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

Где можно подробности посмотреть по объектной модели AutoCAD?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Где можно подробности посмотреть по объектной модели AutoCAD?
Речь идёт о COM-модели? Объектных моделей в AutoCAD несколько. Есть модель ObjectARX, есть модель AutoCAD .NET API и есть COM-модель.
Для COM-модели посмотри здесь: http://help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-A809CD71-4655-44E2-B674-1FE200B9FE30
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
- Connecting an AutoCAD plug-in to an external application using WCF

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


Всем спасибо за ответы и советы.

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

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
есть модель AutoCAD .NET API

.Net API

Её нельзя использовать во внешнем .NET-приложении. Только в .NET-плагине, который загружается внутрь AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение