안녕하세요.
selection set 리스트를 x좌표를 기준으로 정렬(소트)하는 방법 질문드립니다.
제가 구현하고 싶은 것은 사용자로부터 ssget을 통해 line들을 선택받은 뒤 그것을 리스트에 저장한 후, 그 리스트의 각 엔티티들을 선의 시작점 x좌표를 기준으로 오름차순 혹은 내림차순으로 정렬하여 저장하는 방법을 알고싶습니다.
검색해보니 vl-sort 와 lambda 기능을 활용하여 구현하는 것 같은데 자세한 사용 방법을 검색해도 찾을 수가 없어 구현하지 못하고 있습니다.
(setq ss (ssget ‘( (0 . “LINE”) ) ) ) 를 통해 얻은 엔티티들을 정렬하는 방법 아시는 고수분 있으면 방법좀 부탁드리겠습니다.
추가)
(vl-sort ss ‘(lambda (e1 e2) (> (cdr(assoc 10 (entget e1))) (cdr(assoc 10 (entget e2))) ) ) )
위의 코드를 짜봤는데,
; 오류: 잘못된 인수 유형: listp <Selection set: 9ff> 라고 나옵니다.
혹시 어떤 문제가 있는 걸까요…
공유
아, 수평라인이고 시작점과 끝점이 한 방향이라는 것을 기재했어야 했는데 제가 누락했군요.
부족한 질문임에도 명쾌한 답변 주셔서 정말 감사드립니다. ㅠㅠ 딱 제가 찾던 그 소스입니다.
써주신 답변 토대로 잘 적용하겠습니다. 감사합니다.