Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: mackchemar от 02-10-2018, 16:01:51
-
Не имею достаточного опыта работы с AutoCAD, чтобы оценить возможность реализации такой схемы.
1. Имеем приложение .Net
2. Имеем некий графический редактор (в данном случае AutoCAD)
3. Работая в стороннем приложении запускаем CAD (если не запущен)
4. Создаем в CAD'е некий примитив в виде замкнутой полилинии.
5. Присваиваем примитиву имя, сгенерированное в стороннем .Net приложении
6. Получаем следующие данные о примитиве:
а) периметр
б) площадь
7. передаём полученные данные в стороннее приложение.
8. При повторном обращении к данным, полученным из AutoCAD в .Net приложении проверяем не изменялся ли чертеж (а лучше примитив). Если да - генерируем сообщение.
Буду благодарен за любые ответы.
-
Теоретически можно:
- 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)
и так далее по гуглу))
А вот практически - описанная задача не стоит таких усилий. ИМХО
-
4. Создаем в CAD'е некий примитив в виде замкнутой полилинии.
Программно или пользователь сам это делает? Если программно, то возникает вопрос, а зачем в этой схеме AutoCAD?
-
4. Создаем в CAD'е некий примитив в виде замкнутой полилинии.
Программно или пользователь сам это делает? Если программно, то возникает вопрос, а зачем в этой схеме AutoCAD?
На этом шаге пользователь должен сам создать необходимый примитив.
-
Теоретически можно:
- 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. максимально снизить рутинную работу пользователя
-
mackchemar
Самая большая сложность в этом деле - управлять через COM AutoCAD из внешнего .NET-приложения, т.к. любое действие пользователя может привести к проблемам взаимодействия .NET-приложение -> AutoCAD. Правильнее (IMHO) это делать изнутри AutoCAD, т.е. написав .NET-приложение, которое работает внутри AutoCAD и использует AutoCAD .NET API.
-
mackchemar
Самая большая сложность в этом деле - управлять через COM AutoCAD из внешнего .NET-приложения, т.к. любое действие пользователя может привести к проблемам взаимодействия .NET-приложение -> AutoCAD. Правильнее (IMHO) это делать изнутри AutoCAD, т.е. написав .NET-приложение, которое работает внутри AutoCAD и использует AutoCAD .NET API.
В том то и дело что .Net приложение в этой связке является ведущим (если можно так выразиться).От CAD'а нужны две простые вещи - данные для расчета изделий (площадь и периметр) и собственно геометрия для станков с ЧПУ.
-
mackchemar
Самая большая сложность в этом деле - управлять через COM AutoCAD из внешнего .NET-приложения, т.к. любое действие пользователя может привести к проблемам взаимодействия .NET-приложение -> AutoCAD. Правильнее (IMHO) это делать изнутри AutoCAD, т.е. написав .NET-приложение, которое работает внутри AutoCAD и использует AutoCAD .NET API.
В том то и дело что .Net приложение в этой связке является ведущим (если можно так выразиться).От CAD'а нужны две простые вещи - данные для расчета изделий (площадь и периметр) и собственно геометрия для станков с ЧПУ.
Пробуй. Если не получится - придётся вернутся к моему варианту.
-
Пробуй. Если не получится - придётся вернутся к моему варианту.
Вряд ли. "Затолкать" ERP систему в CAD - это сильно постараться надо.
Пробовать конечно буду.
В крайнем разе (если сложности разработки перевесят предполагаемые выгоды) можно Exel использовать как "передаточное звено". Но очень не хочется.
-
Пробуй. Если не получится - придётся вернутся к моему варианту.
Вряд ли. "Затолкать" ERP систему в CAD - это сильно постараться надо.
Пробовать конечно буду.
В крайнем разе (если сложности разработки перевесят предполагаемые выгоды) можно Exel использовать как "передаточное звено". Но очень не хочется.
Я имел в виду пробовать твой вариант (т.е. работа твоего .NET-приложения с AutoCAD через COM). А если не получится, то вернёшься к моему. Заталкивать в моём случае ничего не нужно. Скорее всего просто понадобится сделать еще один .NET-плагин для AutoCAD, с которым будет общаться твоё приложение, вместо того, чтобы непосредственно общаться с AutoCAD.
-
Скорее всего просто понадобится сделать еще один .NET-плагин для AutoCAD, с которым будет общаться твоё приложение, вместо того, чтобы непосредственно общаться с AutoCAD.
Понял.
Спасибо за совет.
Где можно подробности посмотреть по объектной модели AutoCAD?
-
Где можно подробности посмотреть по объектной модели AutoCAD?
Речь идёт о COM-модели? Объектных моделей в AutoCAD несколько. Есть модель ObjectARX, есть модель AutoCAD .NET API и есть COM-модель.
Для COM-модели посмотри здесь: http://help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-A809CD71-4655-44E2-B674-1FE200B9FE30
-
- Connecting an AutoCAD plug-in to an external application using WCF
Ого!
Это здорово и это то что нужно похоже. Не думал что Autodesk так далеко зашёл.
Всем спасибо за ответы и советы.
-
есть модель AutoCAD .NET API
.Net API
-
есть модель AutoCAD .NET API
.Net API
Её нельзя использовать во внешнем .NET-приложении. Только в .NET-плагине, который загружается внутрь AutoCAD.