|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
17.07.2008, 12:16 | #1 | |
Подсчет количества блоков
Инженер-электрик
Псков
Регистрация: 04.03.2008
Сообщений: 59
|
||
Просмотров: 12363
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Оба лиспа не совсем правильно будут обрабатывать дин.блоки - там методика получения имени другая.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
PS. Если пытаться обработать все случаи - это слишком много времени. Пример - связанные чертежи, возможно не загруженные... |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Вариант не гонял вообще:<...> Код удален как нерабочий
P.S. Не обрабатывает вложенные блоки; исключает внешние ссылки; должна проверять дин.блоки независимо от их состояния. Работает только в том пространстве (модели / листа), в котором лежит "тыкнутый" объект.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 17.07.2008 в 13:53. |
|||
|
||||
Инженер-электрик Регистрация: 04.03.2008
Псков
Сообщений: 59
|
Благодарю всех кто отозвался.
2 Елпанов Евгений: именно то что нужно, еще раз блогадарю 2 Кулик Алексей aka kpblc: У меня в основном простые блоки, не динамические и лисп поэтому простенький. А вот твой чего то у меня не работает или он только для динамических? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Seryj_Wolk, прошу прощения, исправил код.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-электрик Регистрация: 04.03.2008
Псков
Сообщений: 59
|
2 Елпанов Евгений
Можешь еще подправить чтобы результат выводился немного в другом виде. Сейчас выводится так: Блок: "Штепсельная розетка двухполюсная с защитным контактом скрытой установки" Всего блоков: 29 А хотелось бы так: Штепсельная розетка двухполюсная с защитным контактом скрытой установки: 29 |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Тот код снес. Исправленный вариант:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Есть еще тема подсчет динамических блоков (простые считаются тоже)
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Seryj_Wolk, последний код я прогнал раз 20, наверное - считал все что надо и выделял. AutoCAD 2006 Eng + SP1 (из состава ADT 2006).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Все, ясно. Я, блин, добрая душа, проверял только на файлах, где были только блоки. Поэтому там все работало. Такой вариант прогони.
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Продажа навыков и умений Регистрация: 20.11.2004
Сибирь
Сообщений: 2,405
|
Частая ошибка при подсчете блоков - это подсчет дублирующихся блоков (2 или больше блоков в одной или близкой точке, которые визуально не отличишь). Вроде комманда overkill долэна с этим справляться, но иногда не получается. Поэтому я бы в лисп добавил проверку на дублирование блоков в одной точке и их удаление.
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
С какой точностью сравнивать?
P.S. И что делать с дубликатами? И проверять атрибуты или нет? А слои, которым принадлежат блоки? А если блоки сделаны "не по слою 0, остальные настройки не ByBlock"?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-электрик Регистрация: 04.03.2008
Псков
Сообщений: 59
|
Вот, теперь все работает, благодарю. Только, единственно, что я подкарректировал, это чтобы результат выводился в виде
Имя блока: число элементов для меня так удобнее. По сравнению с тем лиспом (в нем, кстати я баг нашел неприятный )он работает медленнее, секунду-две где-то думает, а так все отлично. А этот лисп будет считать любые блоки? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Любые. Тормоза обусловлены лишним контролем. Код можно ускорить. Евгений мне в личке уже на массу лишнего указал.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подсчет блоков в AutoCad2006 | Natan | AutoCAD | 44 | 02.10.2019 12:32 |
подсчет динамических блоков | AAI | Программирование | 37 | 25.06.2012 15:05 |
Изменить параметры у всех объектов внутри блоков | 800x600 | AutoCAD | 5 | 25.03.2008 14:21 |
Подсчет количества блоков | juri | AutoCAD | 9 | 10.10.2004 20:06 |