Получение свойств из определения дин блока.

Автор Тема: Получение свойств из определения дин блока.  (Прочитано 7194 раз)

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

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

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Добрый день)

Есть dwg файл, в котором есть определение дин блока (defenition), но сам блок в чертеж не должен быть вставлен.

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

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

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

Отмечено как Решение Rasmussen 29-09-2020, 14:50:10

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Впрочем возможно тебе достаточно вот этого: https://adn-cis.org/poluchenie-spiska-vidimyix-primitivov-v-dinamicheskom-bloke.html
В статье используются недокументированные вещи, так что использовать можно на свой страх и риск. Плюс так как используется P/Invoke, то нужно будет еще и пересмотреть определение ряда используемых функций.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Большое спасибо, Александр! Ссылку изучу и по результатам отпишусь.

Данный чертеж используется для импорта блока в другой чертеж. Если исходный чертеж будет содержать вставленный блок, то при импорте будет получаться блок в блоке, что не очень удобно так как не будет возможности перемещать текст блока и нужно будет дополнительный _explode после вставки. Возможно последнее и стоит сделать:)

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
по имени блока прочитать список его "представлений"
Возможно ты имел ввиду не "представлений", а список "состояний видимости" или что-то подобное?

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

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

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

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Верно, я имел ввиду состояния видимости.

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Если исходный чертеж будет содержать вставленный блок, то при импорте будет получаться блок в блоке
Нет не будет. Если нормально скопировать BTR из одного dwg в другой (через WblockCloneObjects), то ничего, кроме этого BTR не появится. Если нужно не копирование, а вставка внешней ссылки, то нужен BlockReference. И взорвать ненужный блок тоже ничто не мешает. Так что проблема надуманная. нет никакого смысла лезть в недокументированные API.