Как заставить работать надстройку AutoCAD на многих версиях AutoCAD - PullRequest
3 голосов
/ 17 февраля 2012

я делаю добавление autocad с помощью dot net 3.50, и я ссылаюсь на acdbmgd.dll, acmgd.dll из autocad 2012, что я могу сделать, чтобы он работал как на autocad 2010, так и на autocad 2011, если я должен ссылаться на acdbmgd.dll, acmgd.dll из AutoCAD 2010, где я могу получить эту DLL, пока у меня только AutoCAD 2012

Ответы [ 4 ]

5 голосов
/ 18 февраля 2012

У меня был некоторый успех при использовании библиотек 2008 в AutoCAD 2010, поэтому использование библиотек из AutoCAD 2010, вероятно, будет лучшим выбором, хотя и не гарантированно будет работать.Это будет зависеть от того, что именно вы делаете.

Вы можете загрузить библиотеки как часть пакета ObjectARX 2010 из Autodesk Developer Center (внизу страницы).При необходимости вы также можете получить ObjectARX 2011 оттуда.

4 голосов
/ 23 марта 2012

Моя удача с долговечностью надстроек AutoCAD была с AutoLISP.У меня есть инструменты, которые я написал в 1995 году, и которые до сих пор готовятся без изменений.

1 голос
/ 16 октября 2012

.Net API более совместим, чем ActiveX, но есть некоторые различия.

Вы всегда можете использовать Reflection для вызова функций (вызывать их по имени), но будет много проверок, и ваше приложение будет очень трудоемким. одинаково реагируют на все версии.

Лучше всего (по крайней мере, я бы сделал) создать класс-оболочку для каждой функциональности, которую вы хотите. Например, я бы создал класс «MyCircle» для манипулирования кругами, а затем внутри этого класса создал бы универсальную функцию (например: «ChangeThickness (int newThickness)») и сделал там свой код отражения, чтобы вы контролировать выполнение вызова в зависимости от версии установленного AutoCAD (например, чтобы не вызывать определенную функцию в определенной версии AutoCAD, поскольку она содержит ошибку). Это создаст расширяемый слой, который вы сможете повторно использовать во всех версиях AutoCAD и сможете поддерживать любые изменения в API.

0 голосов
/ 16 января 2013

Я делаю это на 2012 и 2013 годы. Между ними есть некоторая разница.

Обычно я запускаю два проекта, один из которых предназначен для мастера Acad.NET 2012 года, а другой - для мастера Acad .NET 2013 года.

Обновлять оба одновременно

В большинстве случаев это просто копирование-вставка, в некоторых случаях будет иначе, когда в 2013 году API развивались, например, в Civil3d 2012 нет ни одной точки API Co-Go, где, как в 2013 году, они добавили, что в таком случае мне нужно изменить код немного поработал в 2013 году.

...