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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp: Список элементов в слоях

Lisp: Список элементов в слоях

Ответ
Поиск в этой теме
Непрочитано 29.04.2008, 15:14 #1
Lisp: Список элементов в слоях
ALFMario
 
Gomel
Регистрация: 11.10.2007
Сообщений: 68

Хотелось бы лисп, но сам не смогу, знания мизерные. Конечно можно и без него обойтись, но хочеться автоматизации и может меньше ошибок будет. Действия такие: выбираю чертжеж или часть чертежа рамочкой, программа (лисп) формирует спиок сортируя по именам слоёв и считает количество элементов. Затем вставлям текстовый список по следующему шаблону :
1 строка "имя_слоя" - "количество элементов"
...
n строка "имя_слоя" - "количество элементов"
если в наборе блоки то часть списка формируеться по следующему шаблону:
n строка "имя_блока" - "количество элементов"
Я не знаю трудно это сделать или нет... если бы умел то сделал и не задавал вопросов. Может подскажите функции, команды... или набросок кода...
Просмотров: 4560
 
Непрочитано 29.04.2008, 15:43
#2
Кулик Алексей aka kpblc
Moderator

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


А какие элементы считать, а какие нет?

Вариант:
Код:
[Выделить все]
(defun test (/ selset res _dwgru-conv-pickset-to-list layer)

  (defun _dwgru-conv-pickset-to-list (value / lst)
    (if (= (type value) 'pickset)
      (repeat (setq item (sslength value)) ;_ end setq
        (setq lst (cons (ssname value (setq item (1- item))) lst))
        ) ;_ end repeat
      ) ;_ end
    lst
    ) ;_ end of defun

  (if (setq selset (ssget))
    (progn
      (foreach ent (_dwgru-conv-pickset-to-list selset)
        (if
          (member (setq layer (cdr (assoc 8 (entget ent)))) (mapcar 'car res))
           (setq res (subst (cons layer (1+ (cdr (assoc layer res))))
                            (assoc layer res)
                            res
                            ) ;_ end of subst
                 ) ;_ end of setq
           (setq res (cons (cons layer 1) res))
           ) ;_ end of if
        ) ;_ end of foreach
      ) ;_ end of progn
    ) ;_ end of if
  (princ (apply 'strcat
                (mapcar '(lambda (x)
                           (strcat "Слой : "
                                   (car x)
                                   " :: примитивов : "
                                   (vl-princ-to-string (cdr x))
                                   "\n"
                                   ) ;_ end of strcat
                           ) ;_ end of lambda
                        res
                        ) ;_ end of mapcar
                ) ;_ end of apply
         ) ;_ end of princ
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.04.2008, 16:21
#3
ALFMario


 
Регистрация: 11.10.2007
Gomel
Сообщений: 68


Почти то что хотел. Элементы все считать надо. Единственно и то только для удобства что бы сформированный список мтекстом вставлять в чертеж, но это уже мелочи, его можно и из лога текстового окна скопировать.
Вот еще бы такое же только список блоков и их количество.
Огромное спасибо за код, выполняет поставленную задачу.
ALFMario вне форума  
 
Непрочитано 29.04.2008, 16:27
#4
Кулик Алексей aka kpblc
Moderator

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


ALFMario, в поиск по форуму (критерий поиска - bcount, например). Вариантов было как у дурака фантиков.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.04.2008, 17:26
#5
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


http://dwg.ru/f/showthread.php?t=17333
http://dwg.ru/f/showthread.php?t=9084
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp: Список элементов в слоях

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить список слоев и список текстовых стилей? DANZZ Программирование 12 08.02.2016 18:57
SCAD Office 11.1 Новые возможности EUDGEN SCAD 632 20.02.2013 17:13
Случайный эксцентриситет p_sh Прочее. Архитектура и строительство 14 22.07.2009 11:32
Помощь по Лире Серега М Лира / Лира-САПР 52 28.05.2007 02:47
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19