Работа с AutoCAD через COM из внешних приложений

Автор Тема: Работа с AutoCAD через COM из внешних приложений  (Прочитано 22108 раз)

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

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
ЗмейCAD2010.exe - получаю окошко с сообщением "Ошибка инициализации"
dwg не нужен, exe'шник надо запустить при работающем acad2010. На момент написания interop сборки хранились в gac'е. Сейчас какой он там "схватит" и попытается запустить - не знаю. Прикладываю скомпилированную сборку под 2016 и сам проект (меняешь ссылки на "интеропы" любого акада - и будет работать под ним). В новых автокадах соответственно документ должен быть открыт.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Дима... Оно конечно, может просто совпадение, но... После неудачных попыток запуска твоей змейки у меня слетели лицензии с AutoCAD 2010-2017. Осталась только на 2009-м...

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Дима... Оно конечно, может просто совпадение, но...
ЭЭЭЭ?? Сочувствую. В свое оправдание я могу сказать, что если бы мне поручили написать программу сносящие лицензии старше 2009-го, я бы сказал что не очень представляю как это сделать.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Восстановил лицензии (удалось только для AutoCAD 2013-2017).
Прикладываю скомпилированную сборку под 2016
При первом запуске так же получил ошибку, обозначенную мною выше. После повторной попытке запуска открылось окошко "ЗмейCAD". После запуска "разворот по правому щелчку" змейка начала бесконечно вращаться. Окошко "ЗмейCAD" висит, не отвечает. В заголовке окна надпись: "Смотрим и ничего не трогае...". Прервал бесконечное вращение двойным кликом мышки по пространству модели. Теперь вроде работает как нужно: удаётся перемещаться по звеньям и вращать их.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
При первом запуске так же получил ошибку, обозначенную мною выше.
Подозреваю, что это одна из ошибок, связанных с RPC_E_XXXX - исключениями.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Небольшие исправления для тебя:
Спасибо, внёс их в свой код. На форуме пока не обновляю, т.к. желающие без проблем смогут внести указанные изменения самостоятельно.

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Там логическая ошибка с "разворотом" которую я поленился обновлять - он не докручивал первый сегмент и если покрутили последний (это по сути вся змея) - то уходил в "вечную раскрутку" - лечиться в коде смещением на 1 "ось". Что было при первом запуске не знаю - допускаю и ошибку COM (не успело загрузиться что-то или Андрей забыл документ открыть - не видя нельзя сказать), но если ошибка (обращение к COM) встречалась бы так часто, что надо-бы было каждый вызов заворачивать - то змея бы точно не работала бы совсем (всегда была-бы ломанная - т.к. там на каждом повороте под сотню вызовов - сделано это специально - для плавности). В общем ИХМО к COM'у вполне можно обращаться с "обычным" уровнем проверок.
з.ы. У excel'я подтверждаю так-же при обращении бывают сбои, но мне пока всегда пока хватало опять-таки более скромных проверок (не на каждый вызов, а скажем так "блоками").
з.ы. Лицензии "вернулись". Я рад.

Оффлайн art_rrc

  • ADN Club
  • **
  • Сообщений: 70
  • Карма: 1
  • Skype: art_sapranovich
Приветствую всех. Возникла необходимость поработать с Аcadом через COM, но возник вопрос, который мне кажется подходит по заголовку темы и вместе с этим недостоен сознания новой (разве что в ветке про VBA). Поэтому попытаюсь спросить тут, надеюсь модераторы не заругают  :)
Не получается воспользоваться фильтрами выбора:
Недопустимый аргумент FilterType в Select
Пытался уже практически перебором решить, не помогло  :o , прошу помощи:
Код:
Извините, вам запрещён просмотр содержимого спойлеров.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Недопустимый аргумент FilterType в Select
Объяви его не как object, а как short [].
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн art_rrc

  • ADN Club
  • **
  • Сообщений: 70
  • Карма: 1
  • Skype: art_sapranovich
Огромное спасибо! Александр Наумович как всегда выше всяких похвал и по качеству совета и по оперативности.
Сделал так:
Код - C# [Выбрать]
  1. short[] FilterType = new short[1];
  2. FilterType[0]= 0;
  3. object[] FilterData = new object[1];
  4. FilterData[0] = "LINE";