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

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

Lisp. Cортировка выбранных полилиний.

Ответ
Поиск в этой теме
Непрочитано 10.03.2013, 02:41 #1
Lisp. Cортировка выбранных полилиний.
Sta1917
 
геодезист
 
Санкт-Петербург
Регистрация: 21.03.2009
Сообщений: 67

Здравствуйте, начал понемногу изучать лисп. Тем про сортировку много, но без примера ничего не понятно. Сделал список из выбранных замкнутых полилиний (прямоугольников), теперь их нужно отсортировать слева направо и сверху вниз. Не могу понять как сделать сортировку, точнее тест-функцию. Взял ее у VVA
При выполнении выдает "; ошибка: неверный тип аргумента: listp <Selection set: 4>"
Помогите с тест-функцией и объясните как она работает. Всем откликнувшимся спасибо.

Код:
[Выделить все]
 (vl-load-com)
    (setq nabor (ssget "_:l"		;(ssget "l") Выбирает последний примитив,прибавленный к базе данных.
					 ;формирует набор по запросу и признаку (ssget <метод> <точка1> <точка2> <список> <фильтр>)
		     '((0 . "*polyline") ;dxf-cod:0-тип примитива;
		       (8 . "0")	 ;	 8- имя слоя
		      )
	      )	;end_ssget
  ) ;end_setq
  (setq spisok
	 (vl-sort nabor
		  (function
		    (lambda (x1 x2)
		      (or
			(< (nth 1 x1) (nth 1 x2))
			(and
			  (equal (nth 1 x1) (nth 1 x2))
			  (< (nth 1 (nth 2 x1)) (nth 1 (nth 2 x2)))
			) ;_ end of and
		      ) ;_ end of or
		    ) ;_ end of lambda
		  ) ;_ end of function
	 ) ;_ end of vl-sort
  ) ;_ end of setq
    )

Последний раз редактировалось Sta1917, 10.03.2013 в 02:51.
Просмотров: 1470
 
Непрочитано 10.03.2013, 05:54
#2
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Sta1917 Посмотреть сообщение
ошибка: неверный тип аргумента: listp <Selection set: 4>"
Все ж ясно написано, несоответствие типов nabor и spisok. Для того, чтоб сортировать nabor, его нужно преобразовать в список, для этого нужно поискать соответствующую функцию типа ss->list
Почитайте о типах данных в автолиспе...
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp. Cортировка выбранных полилиний.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Обрезать все линии внутри нескольких выбранных полилиний Alea Программирование 28 10.07.2012 08:08
LISP. Вывод списка примитивов (полилиний) по группам Yuzer LISP 4 10.12.2011 00:54
lisp для маркировки выбранных обьектов 1, 2, 3... VVITTALIK LISP 11 21.07.2011 13:51
LISP. Программа сопряжения отдельных сегментов полилиний или отрезков без объединения Profan Готовые программы 20 30.03.2010 18:23