|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Подсчет блоков в AutoCad2006
Самара
Регистрация: 16.11.2006
Сообщений: 3
|
||
Просмотров: 20012
|
|
||||
команда BCount, из экспресса
__________________
Robot и Хобот |
||||
![]() |
|
||||
строитель Регистрация: 13.03.2005
СПб.
Сообщений: 216
![]() |
Жми правой кнопкой и в меню уже ищи Быстрый выбор или(QUICKSELECT ) зависит от версии далее уже прость выбираеш как искать, или по слою, или по цвету, или по блоку, или по заданной длинне 8) короче там целая куча параметров, не ленись, а просто почитай.
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Для дин.блоков, без особых проверок, спробуй:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Ну ладно тебе, уже и покодить низя.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Для поиска и подсчета блоков подходит команда СПДС, SpQs.
Возможности несколько выше чем у стандартной команды. • = – равно; • != – не равно; • >, < – больше, меньше; • >=, <= - не меньше, не больше; • Like - поиск подстроки. Может быть множественны, тоесть можно искать одновременно несколько блоков по разным условиям, а шаблоны поиска сохранять, для последующего использования. [ATTACH]1163770424.gif[/ATTACH] |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Спасибо
![]() Теперь осталось только в автодеск код отправить на предмет внедрения к ET ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Так... А вот теперь вопросы
![]() - учитывать ли "родителя"? - что делать с дин.блоками? - что делаем с внешними ссылками?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 16.07.2007
Minsk
Сообщений: 84
|
Цитата:
Раодителей можно учесть отдельным пунктом. А что касаетя дин. блоков, то неплохо было бы считать кол-во подблоков на текущий момент. Внешние ссылки пока трогать не будем. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Не думаю, что такое надо. Если считаются блоки, так и считаться должны именно они. Другой вопрос с внешними ссылками и блоками копирования-вставки, но их и "отследить" проще.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 12.03.2013
Сообщений: 611
|
Цитата:
по аналогии как это сделано в строчке (setvar "user1" (length (layoutlist))) для записи кол-ва лайотов в переменную user1 |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
А на фига, прошу прощения? Какова конечная цель?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 12.03.2013
Сообщений: 611
|
в рамке в графе "листов" хочу иметь автоматизированное кол-во форматок в модели). Форматка - это дин блок. Подсчитав их кол-во с помощью вашей программы и загнав в переменную user1 можно получить автоматизированное поле кол-ва рамок в модели,
Все остальное для автоматизации я знаю как сделать, осталось только записать кол-во рамок в переменную user1 Последний раз редактировалось allar8, 29.09.2019 в 21:23. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
код
выводит в комстроку имя блока (car item) и количество в строковом виде (vl-princ-to-string (cdr item)). Вместо вывода в комстроку проверяйте имя блока через if и если это динблок рамки - заносите в "User1" количество. |
|||
![]() |
|
||||
Регистрация: 12.03.2013
Сообщений: 611
|
Цитата:
----- добавлено через ~1 ч. ----- Ура получилось (setvar "useri1" (cdr item)) Всем спасибо! |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
больше вставок блоков нет? |
|||
![]() |
|
||||
Регистрация: 12.03.2013
Сообщений: 611
|
Цитата:
Нужен был только загон в переменную user1 Правда для полной автоматизации не хватает еще одного штриха как выбрать все объекты лиспом? (command "_AI_SELALL") - не работает |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Регистрация: 12.03.2013
Сообщений: 611
|
Цитата:
(command "_SELECT" "_all") диалог не прекращается. Как прекратить диалог и оставить выбранные объекты? |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Регистрация: 12.03.2013
Сообщений: 611
|
дальше вот:
Код:
Потом модифицированный blockcount с вашей подсказкой для записи в переменную useri1 ----- добавлено через ~4 мин. ----- Не знаю что это, т.к. опыта маловато. Если подскажете буду благодарен |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Если были бы идеальные пользователи, которые на слое "Формат" размещали бы исключительно блоки форматок, то все ваши метания в одну строку кода умещаются)
Код:
но поскольку идеальных пользователей не существует, то придется пройти по полученному набору вставок блоков Код:
Последний раз редактировалось Сергей812, 30.09.2019 в 11:17. Причина: орфография |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
но неработоспособно в реальных условиях: на слое "Формат" проектировщик влепит левые блоки, перенесет вставки блоков форматок на другой слой (все чисто случайно, так как голова занята совершенно другими проблемами в данный момент). Работоспособно - получить вставки блоков без учета слоя:
Код:
|
|||
![]() |
|
||||
Регистрация: 12.03.2013
Сообщений: 611
|
Цитата:
(2 . "*U12") По имени блока было бы ваще супер. Но как это сделать с дин блоком? |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Берете код blockcount от Алексея, и модифицируете - в цикле по входному набору всех вставок блоков после получения имени блока name вместо формирования списка {имя блока, количество} проверяете через if совпадение переменной name с именем блока форматки и если совпало, то увеличиваете переменную счетчика. Ну и вместо вывода сформированного списка в комстроку заносите значение переменной счетчика в useri1. Постарайтесь при этом лишние скобки не затереть, относящиеся к границе цикла и самой функции)
|
|||
![]() |
|
||||
Регистрация: 12.03.2013
Сообщений: 611
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 12.03.2013
Сообщений: 611
|
Сергей812, с кодом Алексея пока туго. Изучаю пока Xьювена)
Поэтому пока пользуюсь этим Цитата:
Просто у нас в конторе блин автоматизированные дурацкие никому ненужные шаблоны с рамкой в пространстве листа - эти рамки и портят усю картину) Могу конечно рамки убрать в другой слой, но помните наверно мою заинтересованность все таки по имени дин блока искать Этот побочный эффект сохранится как я понимаю |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
А так группу 67 со значением 0 в фильтр выбора добавьте. |
|||
![]() |
|
||||
Регистрация: 12.03.2013
Сообщений: 611
|
Цитата:
А за енто Вам огромное спасибо! |
|||
![]() |