Lisp. как создать список со всеми аттрибутами("ATTRIB") на чертеже ?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp. как создать список со всеми аттрибутами("ATTRIB") на чертеже ?

Lisp. как создать список со всеми аттрибутами("ATTRIB") на чертеже ?

Ответ
Поиск в этой теме
Непрочитано 20.12.2011, 22:52 #1
Lisp. как создать список со всеми аттрибутами("ATTRIB") на чертеже ?
Composter
 
Отопление и вентиляция
 
Москва
Регистрация: 31.10.2008
Сообщений: 445

Подскажите ,как создать список в котором будут все атрибуты чертежа?
Просмотров: 1884
 
Непрочитано 21.12.2011, 01:10
#2
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Вариантов много - вот 1:
Код:
[Выделить все]
 (defun all-attrib()
  ((lambda (frec) (frec (entnext)))
   (lambda (ent)
     (if ent
         (if (= (cdr (assoc 0 (entget ent))) "ATTRIB")
             (cons ent (frec (entnext ent)))
             (frec (entnext ent)))))))
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 21.12.2011, 01:23
#3
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


что то у меня не выходит автокад пишет
Hard error occurred ***
internal stack limit reached (simulated)
Composter вне форума  
 
Непрочитано 21.12.2011, 01:45
1 | #4
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Эх - видать многовато их для рекурсии автолиспа - разворачивать надо - вариант 2:
Код:
[Выделить все]
 (defun all-attrib( / lst ent)
 (SETQ ent (entnext))
 (while ent
   (if (= (cdr (assoc 0 (entget ent))) "ATTRIB")
       (SETQ lst (cons ent lst)))
   (SETQ ent (entnext ent)))
 (reverse lst))
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 21.12.2011, 02:13
#5
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Эх - видать многовато их для рекурсии автолиспа - разворачивать надо - вариант 2:
Со слепу прочитал МНОГОВНАТО ©

Извини к твоему коду не относится, респект
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 22.12.2011, 03:49
#6
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


со вторым вариантом все работает.спасибо
Composter вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp. как создать список со всеми аттрибутами("ATTRIB") на чертеже ?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отслеживание таблиц на чертеже [программно] TwoZero Программирование 15 13.05.2024 09:51
SW 2009. Как создать такой вид на чертеже Anvil SolidWorks 3 06.01.2009 15:57
Получить список блоков в чертеже DonVik Программирование 6 27.08.2008 15:08
как получить список всех видов в чертеже Димас Программирование 12 22.02.2006 02:29