Получение всех зависимостей в dwg файле

Автор Тема: Получение всех зависимостей в dwg файле  (Прочитано 13509 раз)

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

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

  • ADN Club
  • Сообщений: 44
  • Карма: 3
Добрый день.
Есть ли возможность получения всех зависимостей в файле dwg с помощью API?
Что-то вроде работы команды _etransmit , но нужен только список команд.
Что за eTransmit Interfaces ? Подойдет ли он для этой задачи? Может кто решал подобную задачу?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Что-то вроде работы команды _etransmit , но нужен только список команд.
Список каких команд?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • Сообщений: 44
  • Карма: 3
Список каких команд?
Пардон, файлов

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

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

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

  • ADN Club
  • Сообщений: 44
  • Карма: 3
Начни с этого: http://adn-cis.org/vklyuchenie-shriftov-i-drugix-fajlov-pri-ispolzovanii-etransmit-api.html
Да, похоже то, что нужно, достает все зависимости, жаль что .net и работает не с текущим файлом, но это, я думаю, решаемо.
Как-то не нашел поиск ни эту статью ни оригинал...
Спасибо.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
жаль что .net
Это не .NET, а COM. Так что можешь и из ObjectARX свободно использовать. Да и из внешнего exe думаю тоже будет работать. Необходим:
Код - C++ [Выбрать]
  1. #import "AcETransmit19.tlb"
AcETransmit19.tlb находится в ObjectARX SDK\inc-x64 или ObjectARX SDK\inc-win32

достает все зависимости
Сивиловские тоже? Я не проверял и упоминания среди параметров TransmittalInfo про Civil 3D не увидел, хотя про Inventor есть.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • Сообщений: 44
  • Карма: 3
tlb я вижу, я из неё dll делал, чтобы в References добавить. Понятно, что работает через COM, пример на .net, я это имел ввиду, это не страшно :)

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

  • ADN Club
  • Сообщений: 44
  • Карма: 3
Сивиловские тоже?
Да, достает, проверял на Civil 2016. Сейчас хочу проверить на машине, где голый акад.

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

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

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

  • ADN Club
  • Сообщений: 44
  • Карма: 3
Чуда не произошло, чистый акад не увидел зависимости Civil.
А не может быть такого, что я могу реализовать какой-то интерфейс, который акад опросит, а я ему подброшу свои зависимости? (это я про то, что может не в словарях, а Civil подкидывает акаду зависимости?)

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

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

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Кстати, а если установить Civil 3D Object Enabler - это не помогает?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • Сообщений: 44
  • Карма: 3
Кстати, а если установить Civil 3D Object Enabler - это не помогает?
Не пробовал, попозже попробую и отпишусь.

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

  • ADN Club
  • Сообщений: 44
  • Карма: 3
C Enabler работает и код, и сама команда etransmit показывает зависимости, без него ни то, ни другое не показывают зависимостей на файлы объектов Civil.
Civil создает словарь ASE_INDEX_DICTIONARY, в нем запись ASEBlockHierarchyIndexRecord, возможно там ссылка на объект Civil, в котором и хранится информация о ссылках (предположение)

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
C Enabler работает и код, и сама команда etransmit показывает зависимости, без него ни то, ни другое не показывают зависимостей на файлы объектов Civil.
Это решение тебя устроит или будешь копать дальше?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение