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

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

Выбор блоков по значению атрибутов.

Ответ
Поиск в этой теме
Непрочитано 18.01.2007, 19:11
Выбор блоков по значению атрибутов.
Sleekka
 
-
 
Москва
Регистрация: 24.07.2005
Сообщений: 1,335

Кто нибудь может помощь модифицировать макрос данной программы дело в том что она выбирает только вхождения обычных блоков а хотелось бы еще и динамических.
http://dwg.ru/dnl/254
Просмотров: 29556
 
Непрочитано 28.10.2018, 10:08
#41
config


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


Доброго времени суток, уважаемые форумчане! Обращаюсь к ув. Кулик Алексей aka kpblc, автору программы из #8. Большое спасибо, все очень удобно. Но есть одни нюанс, для меня конечно: с каждым запросом нужно выполнять выбор в чертеже. Если можно доработать вариант лиспа без выбора. Поскольку поиск выполняется во всем чертеже, блоков тысячи и теряется драгоценное время на выбор. Спасибо!
config вне форума  
 
Непрочитано 28.10.2018, 21:47
#42
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


То есть? Я просто не понял, в чем вопрос.
P.S. Можно попытаться заменить nentsel на цикл, конечно - но почему-то мне кажется, что надо не это.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 28.10.2018, 21:53
#43
config


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
То есть? Я просто не понял, в чем вопрос.
Чтобы после ввода для поиска нужного атрибута опустить опцию "выбора объектов"рамкой области поиска. Чтобы поиск выполнялся во всем чертеже по-умолчанию. Лишние телодвижения, а когда искать часто и много (точки топоплана, в виде блоков с атрибутами), то потеря времени ощутима.
config вне форума  
 
Непрочитано 29.10.2018, 00:05
1 | #44
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от config Посмотреть сообщение
а когда искать часто и много (точки топоплана, в виде блоков с атрибутами), то потеря времени ощутима.
смотря сколько всего блоков в чертеже)
Сергей812 вне форума  
 
Непрочитано 29.10.2018, 07:56
#45
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


В #8 выбор идет по всему файлу. В #14 - по выбранной области. Найти строку типа
Код:
[Выделить все]
 (ssget '((0 . "INSERT") (66 . 1)))
и замени ее на
Код:
[Выделить все]
 (ssget "_X" '((0 . "INSERT") (66 . 1)))
Offtop: Хотя лично я не вижу особой проблемы при запросе в ком.строку вколотить "_all"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.10.2018, 08:41
#46
config


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


Кулик Алексей aka kpblc, спасибо большое! То, что нужно!
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
смотря сколько всего блоков в чертеже)
По разному. Бывает и 5-10 тысяч.
config вне форума  
 
Непрочитано 29.10.2018, 09:39
#47
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от config Посмотреть сообщение
По разному. Бывает и 5-10 тысяч.
просто не знаю реального быстродействия лиспа (на другом языке пишу) - сколько времени займет обработка большого количества блоков с извлечением значений атрибутов и сравнением.
Сергей812 вне форума  
 
Непрочитано 29.10.2018, 10:26
#48
config


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
сколько времени займет обработка большого количества блоков с извлечением значений атрибутов и сравнением.
Здесь немного другое. Вкратце опишу процесс: на местности геодезисты выполняют съемку какого-то участка со схематической зарисовкой (абрисом) и указанием в нем номеров или кодов точек, обозначающих какой-либо объект (дерво, граница леса, пашни, столб и.т.д.). В камералке (офисе) геодезист выполняет вычерчивание топопоплана, т.е. соединяет полилинией или сплайном линейные объекты и расставляет точечные в соответствии с принятыми условными знаками. Еще чем хороша эта программа для геодезистов, тем, что можно выполнить фильтрацию точек (блоков) при построении рельефа плана по второму атрибуту (высота, отметка точки).
Да, вот еще возник один вопрос к автору программы Кулик Алексей aka kpblc Если не очень сложно, нельзя ли дополнить программу опцией панорамирования (по образцу штатной find)? Чтобы найденный блок показывался в увеличенном виде непосредственно в экране. Еще раз спасибо за Ваш труд!
config вне форума  
 
Непрочитано 29.10.2018, 10:32
#49
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


здесь вопрос не в вашей организации работы, а в самой реализации языка программирования)
Сергей812 вне форума  
 
Непрочитано 29.10.2018, 10:33
#50
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


А что делать, если найдено, к примеру, 20 блоков? И все они "раскиданы" по чертежу?
Так-то не особо сложно должно быть...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.10.2018, 10:48
#51
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
Вкратце опишу процесс: на местности геодезисты выполняют съемку какого-то участка со схематической зарисовкой (абрисом) и указанием в нем номеров или кодов точек, обозначающих какой-либо объект (дерво, граница леса, пашни, столб и.т.д.). В камералке (офисе) геодезист выполняет вычерчивание топопоплана, т.е. соединяет полилинией или сплайном линейные объекты и расставляет точечные в соответствии с принятыми условными знаками. Еще чем хороша эта программа для геодезистов, тем, что можно выполнить фильтрацию точек (блоков) при построении рельефа плана по второму атрибуту (высота, отметка точки).
для этого давно придумали CoGo-точки в Civil
trir вне форума  
 
Непрочитано 29.10.2018, 11:14
#52
config


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А что делать, если найдено, к примеру, 20 блоков? И все они "раскиданы" по чертежу?
У них уникальные имена. И разбросаны они действительно, по всему чертежу. Протяженность трассы (дороги) бывает и не одну сотню километров. Зачастую, нелеплены друг на друга, замучаешься искать в куче. А по высотам, если отфильтрует какое-то количество, то так и задумано.
Цитата:
Сообщение от trir Посмотреть сообщение
для этого давно придумали CoGo-точки в Civil
С блоками - гораздо удобнее.
config вне форума  
 
Непрочитано 29.10.2018, 11:22
#53
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от config Посмотреть сообщение
У них уникальные имена. И разбросаны они действительно, по всему чертежу.
Алексей немного о другом скорее всего - если в том же .Net несложно сделать немодальное окно-палитру (типа свойств акада) и туда вывести список найденных блоков. А потом по щелчку по соответствующей строке списка перемещаться на один из блоков. Lisp в этом плане ограничен, в нем немодальные окна вообще вроде нельзя создать встроенными средства - насколько помню.
Сергей812 вне форума  
 
Непрочитано 29.10.2018, 11:28
#54
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
С блоками - гораздо удобнее.
чем? там этот функционал уже есть!
trir вне форума  
 
Непрочитано 29.10.2018, 11:34
#55
config


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


Цитата:
Сообщение от trir Посмотреть сообщение
чем?
Многим.
Цитата:
Сообщение от trir Посмотреть сообщение
там этот функционал уже есть!
Если бы такой был (я не беру во внимание штатную, слишком много в ней лишних телодвижений), я бы не вопрошал.
config вне форума  
 
Непрочитано 29.10.2018, 11:45
#56
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
расставляет точечные в соответствии с принятыми условными знаками
это происходит автоматически при импорте точек

Цитата:
соединяет полилинией или сплайном линейные объекты
реализованно
trir вне форума  
 
Непрочитано 29.10.2018, 12:15
#57
config


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


Цитата:
Сообщение от trir Посмотреть сообщение
реализованно
Спасибо, в курсе. Но это не то. Это для вычерчивания, а указанная выше (#14) - для поиска.
Цитата:
Сообщение от trir Посмотреть сообщение
это происходит автоматически при импорте точек
Подчеркиваю, я работаю с блоками, а не с точками GOGO. Хотя иногда прибегаю и к их помощи. "Но это уже совсем другая история" (C)
config вне форума  
 
Непрочитано 29.10.2018, 12:57
#58
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Попробуй. Код не проверял.
Если код не работает, то нужен файл с образцом блока и с описанием, как ты работаешь.
Вложения
Тип файла: lsp get-blocks-by-attr.lsp (8.7 Кб, 43 просмотров)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.10.2018, 13:22
#59
config


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Если код не работает, то нужен файл с образцом блока и с описанием, как ты работаешь.
К сожалению выдает такую ошибку:
Код:
[Выделить все]
 Введите значение атрибута для фильтрации (с учетом маски) <Отмена> : 114
; ошибка: неверный тип аргумента: VLA-OBJECT <Имя объекта: 7e271640>
А принцип работы как раз и заключается в поиске, в чертеже, среди блоков, нужного по имени (атрибут "Номер пикета" или отфильтровать по высотам (отметкам, по атрибуту "Отметка z пикета"). Блок из 3D Service. Многие геодезисты и топографы им пользуются.
Вложения
Тип файла: dwg
DWG 2007
Образец блока..dwg (1.32 Мб, 21 просмотров)
config вне форума  
 
Непрочитано 29.10.2018, 14:04
1 | #60
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Сорри, исправил. Ну и еще кое-что добавил
Вложения
Тип файла: lsp get-blocks-by-attr.lsp (9.3 Кб, 142 просмотров)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Выбор блоков по значению атрибутов.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск