Команда etransmit фаталит в AutoCAD C3D 2012

Автор Тема: Команда etransmit фаталит в AutoCAD C3D 2012  (Прочитано 14920 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Есть файл на котором происходит фатальная ошибка при попытке сформировать комплект в 2012 на некоторых компьютерах.
На других файлах не фаталит на этих компьютерах, а именно на этом фаталит, при чем вне зависимости от установленного SP.
В других версиях С3D сформировать комплект работает нормально.
Полное удаление 2012, включая удаление из реестра и всех  папок 2012, установка - не помогают.

Подскажите пожалуйста что в этом файле не так и чем посмотреть какие объекты в нём (помнится была какая то программка)?
« Последнее редактирование: 23-05-2016, 11:55:58 от Doublefish »

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Команда etransmit фаталит в AutoCAD C3D 2012
« Ответ #1 : 23-05-2016, 17:21:51 »
1. У меня фатальная ошибка не воспроизводится. Впрочем я проверял в чистом AutoCAD 2012, т.к. AutoCAD C3D 2012 у меня нет.
2. AutoCAD C3D 2012 уже давно не поддерживается, так что техподдержка с ним не поможет.
Файл вроде бы совершенно нормальный. Разве что возможно хвосты от C3D как-то мешают, но в виде прокси-объектов они ведут себя нормально. Так что увы....
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Re: Команда etransmit фаталит в AutoCAD C3D 2012
« Ответ #2 : 24-05-2016, 08:24:52 »
Большая жаль.

А можно ли как нибудь сравнить два файла dwg программно если в нём нет графических объектов?
В данном случае все графические объекты удалены, но есть FATAL ERROR. Как сравнить этот файл с пустым чертежём на основе acadiso.dwt без графических объектов чтобы понять чем он отличается?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Команда etransmit фаталит в AutoCAD C3D 2012
« Ответ #3 : 24-05-2016, 08:37:48 »
как сравнить этот файл с пустым чертежём на основе acadiso.dwt без графических объектов чтобы понять чем он отличается?
Можешь воспользоваться ARXDBG (для версии 2012: http://www.maestrogroup.com.ua/support/ArxDbg2010.zip для остальных там же: http://www.maestrogroup.com.ua/support/)
Загружаешь arx-файл и в контекстном меню выбираешь ArxDbg->Database Info... (или команда SNOOPDB):



Ну а дальше смотришь и анализируешь. То, что относится непосредственно к C3D скорее всего здесь:



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

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Re: Команда etransmit фаталит в AutoCAD C3D 2012
« Ответ #4 : 25-05-2016, 15:40:29 »
Фаталить etransmit перестал в 2012 после удаления словоря ACAD_MATERIAL.
Код - Auto/Visual Lisp [Выбрать]
  1. (DICTREMOVE (namedobjdict) "ACAD_MATERIAL")

Можно ли как нибудь посмотреть средствами AutoCAD что находится в этом словаре?
« Последнее редактирование: 26-05-2016, 08:25:33 от Doublefish »

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Команда etransmit фаталит в AutoCAD C3D 2012
« Ответ #5 : 25-05-2016, 17:05:17 »
Можно ли как нибудь посмотреть средствами AutoCAD что находится в этом словаре?
Средствами AutoCAD нельзя, а при помощи ARXDBG можно:

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

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Re: Команда etransmit фаталит в AutoCAD C3D 2012
« Ответ #6 : 26-05-2016, 08:31:00 »
Теоретически не подскажите за что отвечает этот словарь (понятно что что-то с материалами наверное) и на что может повлиять если его удалить?
Насколько я понял он при последующем открытии чертежа после удаления этого словоря - создаётся занова поумолчанию.
Можно ли как то программно определить используется ли этот словарь в графических объектах и если он не используется, то удалить его?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Команда etransmit фаталит в AutoCAD C3D 2012
« Ответ #7 : 26-05-2016, 08:37:36 »
Вообще то, что у тебя произошло - случай исключительный. Так что просто смело его убивай. Он действительно пересоздастся. Врядли в C3D вы используете какие-то материалы, которые нужны для лишь для визуализации. Проверить используется этот словарь (а точнее один из его элементов) можно при помощи метода Database.Purge, которому передашь коллекцию ObjectId элементов этого словаря. Те элементы, которые останутся в этой коллекции после вызова Database.Purge, можно теоретически удалить.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Doublefish 26-05-2016, 09:45:11

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Re: Команда etransmit фаталит в AutoCAD C3D 2012
« Ответ #8 : 26-05-2016, 09:42:49 »
Необходимо отметить, что проблема возникла как минимум на 3-х разных компьютерах (Windows XP, Windows 7 x64) с совершенно разными чертежами и именно только в одной версии AutoCAD Civil 3D 2012 и в не зависимости от установленых SP - фатальная ошибка при вызове команды "Сформировать коплект".

Проверил на разных компьютерах, команда etransmit начинает работать (если нет материалов для визуализации):
Код - Auto/Visual Lisp [Выбрать]
  1. (DICTREMOVE (namedobjdict) "ACAD_MATERIAL")

Предположительно эти чертежи редактировались в более высокой версии.

Спасибо за помощь.
« Последнее редактирование: 26-05-2016, 10:25:22 от Doublefish »

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Команда etransmit фаталит в AutoCAD C3D 2012
« Ответ #9 : 26-05-2016, 10:15:21 »
Предположительно эти чертежи редактировались в более высокой верии.
Очень может быть. У меня было аналогичное предположение.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение