Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: i00lii от 19-03-2015, 17:27:47

Название: Не выбирается блок
Отправлено: i00lii от 19-03-2015, 17:27:47
Добрый день! К сожалению, в данный момент нет возможности выложить исходные файлы для полного описания проблемы, поэтому постараюсь как можно более подробно здесь ее описать.
 
Я делаю свою маленькую программку для AutoCAD, используя AutoCAD .NET Api из C#. Столкнулся с совершенно непонятной мне штукой.

Есть динамический блок по имени "i00lii_point", состоящий из точки, атрибута и точечного параметра за который этот атрибут можно перемещать. Все это прекрасно работает.

Возникла необходимость из кода запрашивать у пользователя вхождения таких блоков.

Я делаю это так:
Код - C# [Выбрать]
  1. TypedValue[] filter = new TypedValue[] { new TypedValue((int)DxfCode.BlockName, "i00lii_point") };
  2.             PromptSelectionResult result = _aDocumentEditor.GetSelection(new SelectionFilter(filter));

Тут все тоже прекрасно работает до того момента, как только я пытаюсь выбрать блок с перемещенным параметром.
Данный код, хоть убей, не дает мне выделить нужный мне блок. А самое ужасное, что я понятия не имею, почему.


(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fs7.postimg.org%2Faxx1zlnpz%2Fimage.jpg&hash=397a9399c108e23fe30f28c58843258a) (http://postimg.org/image/axx1zlnpz/)

На картинке у P2 не смещен параметр, у P1 параметр смещен.

Спасибо за внимание.
Название: Re: Не выбирается блок
Отправлено: Александр Ривилис от 19-03-2015, 18:40:08
i00lii
Приветствую на форуме! Сразу несколько поучений.
1. В большинстве случаев нужен сам dwg-файл (в данном случае обойдемся)
2. Код следует форматировать. Читай мою подпись.
Теперь по существу. У тебя динамический блок. Поэтому при изменении вхождения (BlockReference) этого блока меняется его имя - он становится анонимным.
При помощи фильтра ты не можешь получить все вхождения этого блока. Почитай: http://adn-cis.org/kak-najti-vse-vstavki-dinamicheskogo-bloka.html
Название: Re: Не выбирается блок
Отправлено: i00lii от 19-03-2015, 22:55:22
Спасибо за ответ.

Если вдруг у кого-то возникнет похожая проблема, то вот статья (http://through-the-interface.typepad.com/through_the_interface/2012/09/creating-a-selection-filter-that-finds-dynamic-blocks-in-autocad-using-net.html)  с вариантом ее решения.