51
AutoCAD .NET API / Не обновляется ассоциативная штриховка в 2023 автокаде при програмном изменении
« Последний ответ от Александр_М 15-06-2025, 18:09:58 »Добрый день.
Столкнулся с проблемой.
Опишу как можно подробнее.
Имеется динамический блок
контур полилиния, заполнение ассоциативная штриховка.
Есть таблица выбора с размерами.
Если вставить в чертеж блок и вручную менять свойство то всё работает прекрасно, размеры полилинии изменяются, и штриховка под них подстраивается.
Но если тоже самое сделать программно, то полилинии изменяются, а вот штриховка не перерисовывается, остаётся такого размера как была в редакторе блока.
Поведение в разных версиях автокад разное.
В 2024 такой проблемы нет
в 2016 решается таким образом:
причём именно дважды RecordGraphicsModified.
В 2023 не получается никак. Хотя если выполнить _ATTSYNC то всё перерисовывается корректно. Но не вызывать же его после каждой вставки блока.
Свойство меняю так:
Подскажите куда копать.
Спасибо!
Столкнулся с проблемой.
Опишу как можно подробнее.
Имеется динамический блок
контур полилиния, заполнение ассоциативная штриховка.
Есть таблица выбора с размерами.
Если вставить в чертеж блок и вручную менять свойство то всё работает прекрасно, размеры полилинии изменяются, и штриховка под них подстраивается.
Но если тоже самое сделать программно, то полилинии изменяются, а вот штриховка не перерисовывается, остаётся такого размера как была в редакторе блока.
Поведение в разных версиях автокад разное.
В 2024 такой проблемы нет
в 2016 решается таким образом:
Код - C# [Выбрать]
- blockRefStart.RecordGraphicsModified(true);
- blockRefStart.RecordGraphicsModified(true);
причём именно дважды RecordGraphicsModified.
В 2023 не получается никак. Хотя если выполнить _ATTSYNC то всё перерисовывается корректно. Но не вызывать же его после каждой вставки блока.
Свойство меняю так:
Код - C# [Выбрать]
- foreach (DynamicBlockReferenceProperty prop in blockRefStart.DynamicBlockReferencePropertyCollection)
- {
- if (prop.PropertyName == "Выбор1")
- {
- prop.Value = "Первый вариант";
- break;
- }
- }
Подскажите куда копать.
Спасибо!