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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Нужен LISP: получить список групп в которые входит объект

Нужен LISP: получить список групп в которые входит объект

Ответ
Поиск в этой теме
Непрочитано 04.04.2013, 00:45 #1
Нужен LISP: получить список групп в которые входит объект
koval_a_r
 
Регистрация: 04.04.2013
Сообщений: 5

Здравствуйте. Очень мне нужна функция которую не нашел на просторах интернета.

История следующая: я использую группы. Обычно один объект в моих чертежах входит в состав нескольких групп одновременно.
Задача состоит в том чтобы получить список групп в которые входят выделенные объекты.
Есть стандартное меню AutoCAD где можно увидеть такой список (Group Member List), но копировать его и использовать как информацию никак нельзя.
Мне же нужно получить таблицу, перечень в виде текста (через запятую, пробел и т.п.).

Очень нужна помощи просвещенных людей. Заранее спасибо.
Просмотров: 2313
 
Непрочитано 04.04.2013, 14:39
2 | #2
Vov.Ka


 
Регистрация: 21.07.2008
Луцьк
Сообщений: 179


Код:
[Выделить все]
 (defun vk_GetEntGroups (en / ig)
  (vl-remove nil
	     (mapcar (function
		       (lambda (e)
			 (cond ((equal e (cons 102 "{ACAD_REACTORS")) (setq ig t) nil)
			       ((equal e (cons 102 "}")) (setq ig nil))
			       (ig
				(setq e (vlax-ename->vla-object (cdr e)))
				(if (= (vla-get-ObjectName e) "AcDbGroup")
				  (vla-get-Name e)
				)
			       )
			 )
		       )
		     )
		     (entget en)
	     )
  )
)
;;;(vk_GetEntGroups (car (entsel "\nSelect entity: ")))

Последний раз редактировалось Vov.Ka, 04.04.2013 в 15:10.
Vov.Ka вне форума  
 
Автор темы   Непрочитано 04.04.2013, 14:48
#3
koval_a_r


 
Регистрация: 04.04.2013
Сообщений: 5


Уважаемый Vov.Ka,
я совсем чайник - прокомментируйте как воспользоваться вашим lisp-кодом.
Я ознакомился с инструкцией на форуме, но в вашем коде не могу найти "опорные" строчки, описанные в инструкции, как то "defun" , "С:" и прочее.
koval_a_r вне форума  
 
Непрочитано 04.04.2013, 15:10
#4
Vov.Ka


 
Регистрация: 21.07.2008
Луцьк
Сообщений: 179


Цитата:
Сообщение от koval_a_r Посмотреть сообщение
как то "defun"
обновил с defun
Vov.Ka вне форума  
 
Автор темы   Непрочитано 04.04.2013, 15:29
#5
koval_a_r


 
Регистрация: 04.04.2013
Сообщений: 5


Продолжу описывать свои чайниковские действия:

1. Загрузил в appload приведенный текст как lisp

2. в AutoCAD набираю в командной строке: (vk_GetEntGroups)

3. Пишет что не хватает аргументов. Дальше я даже не знаю что делать - за гранью моего разума.

Помогите пожалуйста.
koval_a_r вне форума  
 
Непрочитано 04.04.2013, 15:33
#6
Vov.Ka


 
Регистрация: 21.07.2008
Луцьк
Сообщений: 179


Цитата:
Сообщение от koval_a_r Посмотреть сообщение
2. в AutoCAD набираю в командной строке: (vk_GetEntGroups)
я же привел пример вызова
Цитата:
(vk_GetEntGroups (car (entsel "\nSelect entity: ")))
Vov.Ka вне форума  
 
Автор темы   Непрочитано 04.04.2013, 15:57
#7
koval_a_r


 
Регистрация: 04.04.2013
Сообщений: 5


После вызова данной командой и указания на объект, Autocad выдал следующее сообщение

Select entity: ; error: no function definition: VLAX-ENAME->VLA-OBJECT

я указал на обычный отрезок который входит в состав группы
koval_a_r вне форума  
 
Непрочитано 04.04.2013, 16:01
1 | #8
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от koval_a_r Посмотреть сообщение
Select entity: ; error: no function definition: VLAX-ENAME->VLA-OBJECT
http://autolisp.ru/2010/06/09/no-fun...t-acad-object/
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 05.04.2013, 00:32
#9
koval_a_r


 
Регистрация: 04.04.2013
Сообщений: 5


ДА!!!! Спасибо, все заработало! Теперь элементарно задача решена.
Подскажите, чтобы вывести эти же значения в таблицу autocad достаточно LISP, или это уже невозможно?
koval_a_r вне форума  
 
Непрочитано 05.04.2013, 14:49
#10
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Еще в этой теме есть примеры
LISP. Группировка и разгруппировка объектов
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Нужен LISP: получить список групп в которые входит объект



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить список слоев и список текстовых стилей? DANZZ Программирование 12 08.02.2016 18:57
Как с помощью lisp получить список всех состояний видимости динамического блока crosandr LISP 4 11.04.2012 22:33
LISP. Как получить объект по хэндлу? LastGraff LISP 2 15.11.2011 11:29
LISP получить список установленных в системе (векторных) шрифтов или хотя бы узнать, установлен ли указанный Ax3 LISP 9 08.02.2011 14:11
Программно получить список системных переменных (без вывода в текстовый файл) Ax3 Программирование 3 27.12.2010 16:29