Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Lemieux от 14-05-2020, 23:01:14
-
Всех приветствую.
Столкнулся с необычной проблемой, но я её обошёл.
Я до сегодняшнего вечера думал, что динамические блоки вставляются как и простые, но оказалось, что не совсем. Вставляю я программно динамический блок, он себя ведёт как надо (в моём случается выделяется через GetSelection с фильтром (2, "*TCM*")) и дин параметры работают. Но стоит мне открыть блок в редакторе блоков, внести изменения и сохранить, так блок перестаёт выделяться по маске. Я конечно сделал вот такую маску (2, "`*U*, *TCM*"), но мне это решение не нравится так как по ходу я неправильно добавляю блок в базу чертежа.
Кто-нибудь знает как добавлять дин блоки правильно?
-
Lemieux,
Динамические блоки ты вставляешь правильно. А вот выбираешь неправильно.
-
Но стоит мне открыть блок в редакторе блоков, внести изменения и сохранить, так блок перестаёт выделяться по маске
Тут скорее всего и кроется твоя проблема.
Есть блок BlockTableRecord, есть вставка блока BlockReference. Выделяешь ты BlockReference, а в редакторе редактируешь BlockTableRecord.
Если BlockReference совпадает по параметрам с BlockTableRecord то BlockReference ссылается на "основной" BlockTableRecord. Если отличается, то ссылается на другой, анонимный блок BlockTableRecord.
После правки BlockTableRecord, через редактор блока твой BlockReference стал отличаться от BlockTableRecord и стал ссылаться на другой, анонимный блок BlockTableRecord. Возможно так происходит всегда, при редактировании динамических блоков, возможно только при изменении динамических свойств, имен свойств, я лично не проверял, не знаю.
На будущее, лучше описывай, какие изменения ты вносил в редакторе блока, и код вставки блока. Быстрее можно сообразить, что может быть не так.
-
Lemieux,
Динамические блоки ты вставляешь правильно. А вот выбираешь неправильно.
А как правильно выбирать?
-
Lemieux,
Динамические блоки ты вставляешь правильно. А вот выбираешь неправильно.
А как правильно выбирать?
https://adn-cis.org/kak-najti-vse-vstavki-dinamicheskogo-bloka.html
-
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