| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > .NET Как создать фильтр выбора для блоков?

.NET Как создать фильтр выбора для блоков?

Ответ
Поиск в этой теме
Непрочитано 09.06.2012, 11:41 #1
.NET Как создать фильтр выбора для блоков?
Petrov-Vodkin
 
Регистрация: 30.10.2010
Сообщений: 123

Хочется, чтобы пользователь смог выбрать на чертеже только блоки (любые).

Если делать так, то динамический блок, будучи покрученным за ручки, перестает выбираться:
Код:
[Выделить все]
Document dwg = Application.DocumentManager.MdiActiveDocument;
            Editor ed = dwg.Editor;
            Database db = dwg.Database;

            // Создаем фильтр для выбора объектов
            TypedValue[] acTypValAr = new TypedValue[1];
            acTypValAr.SetValue(new TypedValue((int)DxfCode.BlockName, "*"), 0);    //только блоки с любым именем
            SelectionFilter filter = new SelectionFilter(acTypValAr);

            //Запрашиваем у пользователя набор объектов
            PromptSelectionResult result = ed.GetSelection(filter);
            if (result.Status == PromptStatus.OK)
            {
               ...
            }
Как его этот фильтр победить правильно?

Последний раз редактировалось Petrov-Vodkin, 09.06.2012 в 12:16.
Просмотров: 2276
 
Непрочитано 09.06.2012, 11:57
#2
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


// Создаем фильтр для выбора объектов
TypedValue[] acTypValAr = new TypedValue[2];
acTypValAr.SetValue(new TypedValue((int)Dxf.Start, "INSERT"), 0); //только блоки
acTypValAr.SetValue(new TypedValue((int)DxfCode.BlockName, "*"), 1); //только блоки с любым именем
SelectionFilter filter = new SelectionFilter(acTypValAr);
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 09.06.2012, 12:10
#3
Petrov-Vodkin


 
Регистрация: 30.10.2010
Сообщений: 123


Не помогло, та же самая петрушка:
С простыми блоками всё ОК.
А вставляем динамический блок с параметром поворота - сначала его можно выбрать, а покрутив за ручку - уже нет.
Petrov-Vodkin вне форума  
 
Непрочитано 09.06.2012, 12:29
#4
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


убери ...DxfCode.BlockName, "*" - достаточно только ...DxfCode.Start, "INSERT" - и все будет пучком.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 09.06.2012, 12:40
#5
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813



Код:
[Выделить все]
  TypedValue[] acTypValAr = new TypedValue[]
            {new TypedValue(0, "insert"),
                new TypedValue(2, "*,`*U*")
            };
                SelectionFilter filter = new SelectionFilter(acTypValAr);
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 09.06.2012, 12:56
#6
Petrov-Vodkin


 
Регистрация: 30.10.2010
Сообщений: 123


Цитата:
Сообщение от Дима_ Посмотреть сообщение
убери ...DxfCode.BlockName, "*" - достаточно только ...DxfCode.Start, "INSERT" - и все будет пучком.
Точно, DxfCode.Start, "INSERT" оказалось достаточно.

Спасибо всем огромное!
Petrov-Vodkin вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > .NET Как создать фильтр выбора для блоков?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Очистка рисунка от "пустых" блоков Makswell Готовые программы 15 26.10.2022 15:24
Почему при двойном нажатии на блоке в окне выбора блоков не указывается название выбранного блока? МишаИнженер AutoCAD 15 16.09.2013 19:00
Подсчет и сортировка блоков на текущем слое. Помогите отредактировать. Kortes Программирование 17 26.03.2010 18:46
FILTER / фильтр BM60 Справочник команд 0 08.07.2008 15:35
как создать список блоков, содержащихся в файле Александер Программирование 10 31.10.2007 15:50