Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2016, 11:50   #1
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию [AutoCAD & Delphi] SelectionSet: выбрать элементы в блоках

Здравствуйте.
Хочется надеяться, что в отличие от предыдущего моего вопроса по SelectionSet, на этот я всё же смогу здесь найти ответ.
Задача: удалить все элементы, принадлежащие определённому слою.
Этот код работает:
Код:
objSelSet := objAllSets.Add('laydel'); //создание SelectionSet
strlayername:= ComboBox1.Text;  //получение имени слоя
intType:= VarArrayCreate([0, 3], varSmallint);
varData:= VarArrayCreate([0, 3], varVariant);
intType[0]:= -4;
varData[0]:= '<or';
intType[1]:= 8;
varData[1]:= strlayername;
intType[2]:= 8;
varData[2]:= strlayername;
intType[3]:= -4;
varData[3]:= 'or>';
objSelSet.Select(acSelectionSetAll, EmptyParam, EmptyParam, intType,varData);
objSelSet.Erase;
Но он не заходит в блоки, удаляет только непосредственно элементы, находящиеся на заданном слое.
(про два одинаковых параметра знаю, но не хватает времени разобраться, как переделать пример из двух разных параметров под один)
Реализовал удаление всех элементов из файла, принадлежащих определённому слою, просто перебирая все элементы во всех блоках и удаляя элементы, принадлежащие заданному слою. Но это может занять не мало времени...
Может, всё-таки можно делать выборку SelectionSet по блокам?
Ship_1 вне форума Ответить с цитированием
Старый 23.11.2016, 15:42   #2
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

С перебором всех элементов во всех блоках тоже нелады... То, что АвтоКАД за блоки считает и модель, и листы - это я слышал. А вот что и внешние ссылки тоже - это только что понял. Ну да и это фиг бы с ним, IsXRef помогает проверить является ли блок внешней ссылкой, и таким образом их можно отсеять. Но перебор блоков залезает и в блоки самих внешних ссылок! А вот как их отсеять от блоков, принадлежащих самому чертежу - я уже никак понять не могу....
Ship_1 вне форума Ответить с цитированием
Старый 08.12.2016, 16:50   #3
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Мда... До чего же туго с АвтоКАДом. И на dwg.ru, если глянуть на даты последних сообщений в программировании, тоже глухо всё... Что, среди программистов так мало проектировщиков? (или наоборот?)
Ship_1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[AutoCAD & Delphi] SelectionSet: выбрать всё и исключить другую выборку Ship_1 Общие вопросы Delphi 3 30.05.2017 12:28
SelectionSet (AutoCAD & Delphi) Ship_1 Общие вопросы Delphi 5 13.01.2016 13:09
Delphi & AutoCAD: порядок "листов". Ship_1 Общие вопросы Delphi 10 14.06.2015 17:13
VBA Excel & Autocad Kliken Фриланс 1 18.12.2012 00:33
Excel & Autocad Kliken Microsoft Office Excel 5 17.12.2012 22:47