| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
06.02.2008, 12:38 | #1 | |
подсчет динамических блоков
Регистрация: 06.02.2008
Сообщений: 23
|
||
Просмотров: 28408
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Здесь есть фукции для чтения/установки значений динамических блоков
Сквозная нумерация динамических блоков
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Цитата:
ИМХО
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Адаптировал blockcount для подсчета свойств динамических блоков
Это ФУНКЦИЯ. Вызывать (blockcount nil) - Считать блоки по именам (blockcount "Видимость") - Считать блоки по именам, а если в динамичсеском блоке есть метка свойства "Видимисть", то группировать по этому значению Код:
Для приведенно ниже файла вызывать (blockcount "ТипКолодца") Результат Цитата:
Результат Цитата:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 20.03.2008 в 10:18. Причина: Орфография |
||||
|
||||
Регистрация: 16.07.2007
Minsk
Сообщений: 84
|
Я лично пользуюсь _eattext - извлечение атрибутов
Начиная с AutoCAD 2006 В итоге имеем файлик в екселе: Имя Свойство1 Свойство2 ... Количество Свойство - значение какого-либо атрибута, динамического свойсва, любого свойство блока (слой, координаты, цвет...) Есть возможность выбирать, какие именно свойства учитывать. |
|||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Действительно отличная программа, то что нужно!!!
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ Последний раз редактировалось Kostinok, 20.03.2008 в 09:51. |
|||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
VVA, а можно ли, что бы конечный результат выводился на чертеж, таблицей, и еще что бы шла проверка блоков на "безграмотность", т.е. отссеивались все блоки с подобными названиями A$C613A5AE4 ?
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
|
||||
Следующая редакция blockcount для подсчета свойств динамических блоков
Это по прежнему ФУНКЦИЯ. Добавился параметр игнорирования имен блоков, если нужно подсчитать с несколькими параметрами, то свойства нужно передавать ввиде списка строк Вызывать
Код:
(blockcount nil nil) Результат Цитата:
Нет блоков с именем 1Двутавр Широкополочный и A$C1342267E Цитата:
Нет блока с именем A$C1342267E Цитата:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 11.10.2010 в 17:34. |
||||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
VVA, а можно еще добавить, что бы весь конечный результат выводился в таблицу AutoCADа? в текущем табличном стиле?
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
|
||||
Я забыл сказать, что ф-ция возвращает результат подсчета ввиде списка
(см пояснения к ф-ции blockcount) для того, чтобы можно было "прикрутить" к ней вывод в таблицу Автокада, Excel и т.п. Пока у меня нет на это времени.
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 20.03.2008 в 15:24. |
||||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
Я имел ввиду не Excel, а AutoCAD сразу. Еще у меня вопрос личного характера, я отослал Вам его через ICQ, посмотрите пожалуйста. Заранее благодарен.
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
|
||||
Быстро могу в Excell вывести. Необходимы ВСЕ функции их поста #10.
Команда BNC Красную строчку изменить в соответствии со своими предпочтениями по примерам вызова blockcount из поста #10 Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 16.05.2008 в 12:38. Причина: соответвие названия команды |
||||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
VVA, Большое спасибо, все заработало! Очень хотел бы иметь возможность связаться с Вами если Вас устроит мое предложение по ICQ.
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ Последний раз редактировалось Kostinok, 21.03.2008 в 09:18. |
|||
|
||||
Пиши в ПМ, т.к. я не всегда в ICQ
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Инженер-электрик Регистрация: 13.10.2007
Калининград
Сообщений: 151
|
VVA, проверте пожалуйста личные сообщения.
К вопросам по этой теме, а можно добавить извлечение аттрибута из блока с параметрами видимости "vis" и названием аттрибута "ДЛИНА", и осуществить такой же быстрый вывод в Excel.
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/ |
|||
|
||||
В принципе возможно. А ты _eattext пробовал?
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Выбери стиль таблицы Стандарт, и она создастся сама. Кстати команда _eattext (Извлечение атрибутов) была до 2007 када. С 2008 команда выросла до _dataextraction (Извлечение данных). В 2009 стал работать корректно. Это особенно заметно, если создете доп. столбцы и производите математические операции с извлекаемыми параметрами.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Регистрация: 11.10.2010
Сообщений: 5
|
Добрый день. У меня есть просьба, если конечно вы сможете помочь.
Как можно организовать подсчет дин. блоков. При условии что блок имеет несколько видимостей, и каждая из видимостей может маркироватся соответственно по заданной шкале (например С6, С10,.... С6/2, 10/2,...6/3, 10/3....). Для наглядности прикладываю файл, данное решение схем подойдет с небольшими оформленчискими изменениями всем электрикам проектантам (необходимые параметры обозначены красным). Также если вообще есть возможность делать автоматический подчет типа и длин кабелей (по параметру 3х2,5 и тп..). |
|||
|
||||
Kostalom, Твои динамические блоки считаются так: (blockcount "Видимость" nil) Функции брать из поста #10. Кабели считали здесь: Нужно посчитать кабель
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 11.10.2010 в 18:00. |
||||
|
||||
Регистрация: 11.10.2010
Сообщений: 5
|
2 VVA да спасибо прога работает, но у меня стоит более сложная задача. Каждая видимость блока имеет еще один параметр по которому впринцепе и нужно производить подсчет. Етот параметр (например С6, С10,.... С6/2, 10/2,...6/3, 10/3....) в файле написан как Мтехт, но можна его добавить и как атрибут в дин блок. Либо же несчитать дин блоки а считать количество С6, С10.... в самом Мтехт. Я просто незнаю что проще организовать на Лиспе????
|
|||
|
||||
Удобнее, когда параметр будет добавлен как атрибут блока. У тебя есть текст: С60N-C10 Его нужно считать как С60 или С10 ?
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 11.10.2010
Сообщений: 5
|
нет интересует только С10, причем етот текст может менятся в зависимости от модели автомата соответственно первая буква может быть (В, С, D,), а цифра после буквы может быть (6, 10, 16, 20, 25, 32, 40, 50, 63, 80, 100, 125) после етой цифры возможен префикс /2 или /3. Пример: С6, С6/2, С6/3 или так В16, В16/2 и тд. Но суть что там может быть много вариантов. Былобы хорошо еслибы подсчет велся по видимости + по тому что написано в атрибуте конкретной видимости, тоисть сверялся текст с атрибута и количество одинаковых записей в атрибуте выводилось ввиде списка типа: 1) видимость; 2) текст в атрибуте; 3) количество. Ну и космос былбы еслиб все ето записывалось в текстовый файл например. Но так как команду будут использовать несколько раз подряд то чтоб все данные записывались в один и тотже файл, какбы продолжая запись, и перед каждым таким отчетом спрашивало как его (отчет) назвать. А ну и чтоб етот подсчет производился в заданой области чертежа.
Во хотелки какие , извените уж, просто действительно очень нужно по работе Последний раз редактировалось Kostalom, 12.10.2010 в 14:17. |
|||
|
||||
пример в студию
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 11.10.2010
Сообщений: 5
|
Да вот собственно и пример. Все по чему нужно проводить сверку и соответственно подсчитывать количество совпадений выделено красным цветом. Вот только пока воял пример понял что ето из области фантастики (или может мне так кажется), и понял еще что подсчет всеж лутше будет производить по совпадению текста. Впринципе если вообще возможно написать такую прогу то она фактически будет универсальна (тоисть подойдет для всех). Там внизу еще кабеля прилеплены, которые тоже негрех бы автоматом считать но тут тоже возвращаемся к подсчету по совпадению в тексте.
Да и еще может таким путем: был бы очень признателен если подскажете как сделать следущее у меня есть 10 (15 или 20) строчек мультитекста (в каждом мультитексте есть хоть один "enter"). Я специально вставляю перед необходимыми мне фрагментами какойнибудь редко встречающийся символ, к примеру собачку перед началом марки кабеля, значок долара перед длиной выделяю к примеру 10 строк мультитекста (кол-во строк может быть разным ). Преобразую это в 10 строковых переменых. Далее работаем с каждой переменной. Ищем собачку, после нахождения таковой считываем следущие 5 символов и проводим проверку на макру кабеля (наример "*****"="ВВГнд") если да то прибавляем к сумме ВВГнд то что находиться за значком"$". Конечно нужно ещё делать проверку на совпадение сечения кабеля, ну это я думаю смогу сам сделать, мне главное подать начало, так как лисп очень большоооой а времени на разборку нету Последний раз редактировалось Kostalom, 13.10.2010 в 09:43. |
|||
|
||||
Вариант функции подсчета свойств динамических блоков с группировкой по указанному динамическому свойству
Код:
вызов функции будет выглядеть так Код:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Rainbow.dgw,
1. Программу из какого поста используешь? 2. Ищи строчку Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
САПР Регистрация: 26.12.2011
Москва
Сообщений: 16
|
VVA, использую программу выложенную 20.03.2008, 14:34.
Строчку нашла и закомментировала, правда результат не тот. Мне наоборот хотелось, чтоб данные остались, которые выводятся в виде таблички, а не в строчку. И еще один вопрос, для вызова комманды (blockcount '("Марка балки" "Обозначение" "Профиль") "A$C*") есть какая-то более короткая запись вызывающей функции? |
|||
|
||||
Цитата:
Ее нетрудно самому написать В виде функции Код:
В виде команды Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
1. Функции myblockcount и blockcount должны быть описаны в одном файле lsp. Пусть для примера его имя будет myblockcount.lsp
2. Файл должен находится в путях доступа Автокада 3. Кнопка: Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 06.02.2008
Сообщений: 23
|
Кодом из #10 не считается блок. Выдает общее количество блоков без разделение на видимости.
Что не так, подскажите пожалуйста. Проблема локализована. В блоке переименован visibility на visibility1. Последний раз редактировалось AAI, 25.06.2012 в 15:27. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сквозная нумерация динамических блоков | zenon | Программирование | 214 | 28.08.2020 08:45 |
Руководство по созданию динамических блоков | tanushka_ch | Динамические блоки | 20 | 25.11.2015 20:46 |
Проблема вставки Динамических блоков | Владимир М | Программирование | 11 | 12.09.2007 15:42 |
Игра -Пятнашки- С использованием динамических блоков | Gig | Динамические блоки | 1 | 11.12.2006 10:32 |
Библиотека динамических блоков | Коробейников Алексей | Динамические блоки | 2 | 05.04.2005 16:08 |