Вставка динамического блока

Автор Тема: Вставка динамического блока  (Прочитано 3856 раз)

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

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

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

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Всех приветствую.
Столкнулся с необычной проблемой, но я её обошёл.
Я до сегодняшнего вечера думал, что динамические блоки вставляются как и простые, но оказалось, что не совсем. Вставляю я программно динамический блок, он себя ведёт как надо (в моём случается выделяется через GetSelection с фильтром (2, "*TCM*")) и дин параметры работают. Но стоит мне открыть блок в редакторе блоков, внести изменения и сохранить, так блок перестаёт выделяться по маске. Я конечно сделал вот такую маску (2, "`*U*, *TCM*"), но мне это решение не нравится так как по ходу я неправильно добавляю блок в базу чертежа.
Кто-нибудь знает как добавлять дин блоки правильно?

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Вставка динамического блока
« Ответ #1 : 15-05-2020, 08:48:29 »
Lemieux,
Динамические блоки ты вставляешь правильно. А вот выбираешь неправильно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • *****
  • Сообщений: 534
  • Карма: 117
Re: Вставка динамического блока
« Ответ #2 : 15-05-2020, 08:56:38 »
Но стоит мне открыть блок в редакторе блоков, внести изменения и сохранить, так блок перестаёт выделяться по маске

Тут скорее всего и кроется твоя проблема.
 Есть блок BlockTableRecord, есть вставка блока BlockReference. Выделяешь ты BlockReference, а в редакторе редактируешь BlockTableRecord.
Если BlockReference совпадает по параметрам с BlockTableRecord то BlockReference  ссылается на "основной" BlockTableRecord. Если отличается, то ссылается на другой, анонимный блок BlockTableRecord.

После правки BlockTableRecord, через редактор блока твой BlockReference стал отличаться от BlockTableRecord и стал ссылаться на другой, анонимный блок BlockTableRecord. Возможно так происходит всегда, при редактировании динамических блоков, возможно только при изменении динамических свойств, имен свойств, я лично не проверял, не знаю.

На будущее, лучше описывай, какие изменения ты вносил в редакторе блока, и код вставки блока. Быстрее можно сообразить, что может быть не так.

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

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Re: Вставка динамического блока
« Ответ #3 : 15-05-2020, 21:51:51 »
Lemieux,
Динамические блоки ты вставляешь правильно. А вот выбираешь неправильно.
А как правильно выбирать?

Отмечено как Решение Lemieux 16-05-2020, 09:40:16

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Вставка динамического блока
« Ответ #4 : 15-05-2020, 22:48:52 »
Lemieux,
Динамические блоки ты вставляешь правильно. А вот выбираешь неправильно.
А как правильно выбирать?
https://adn-cis.org/kak-najti-vse-vstavki-dinamicheskogo-bloka.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 384
  • Карма: 21
Re: Вставка динамического блока
« Ответ #5 : 16-05-2020, 09:45:02 »
Lemieux,
Динамические блоки ты вставляешь правильно. А вот выбираешь неправильно.
А как правильно выбирать?
https://adn-cis.org/kak-najti-vse-vstavki-dinamicheskogo-bloka.html
Александр, спасибо за ссылку, прочитал и понял реакцию динамических блоков на мои действия - то, что описывал Дмитрий. Но вообще мне надо выбирать не все вставки динамического блока, а я выбирал через рамку вставки, поэтому и задавал маску. Но теперь всё сложилось в общую картину.

Хочу ещё добавить, что вот по ссылкам ниже есть ещё пища для размышления, для тех кто столкнётся с моей проблемой.
https://through-the-interface.typepad.com/through_the_interface/2012/09/creating-a-selection-filter-that-finds-dynamic-blocks-in-autocad-using-net.html
https://forums.autodesk.com/t5/net/filtering-dynamic-blocks/td-p/1652166
« Последнее редактирование: 16-05-2020, 11:07:04 от Lemieux »