티스토리 뷰


;; dcl의 창에서 선택받은 목록을 분리해서 리스트로 돌려줌 : ("0 1 3 99") => (0 1 3 99)
(defun list2lst (str / n lst)
  (setq lst (list (atoi str)))
  (while (setq n (vl-string-position (ascii " ") str))
    (setq str (substr str (+ n 2)))
    (setq lst (append lst (list (atoi str))))
  )
  lst
)
;;사용예 레이어목록을 뿌려주고 여러개선택하여 받은값을 기준으로 선택된 레이어목록을 구성함.
  ......
  (start_list "layer_lst" 3)(mapcar 'add_list la-list)(end_list)
  ......
 ?(action_tile "layer_lst" "(setq select-lst $value)")
  ......
  (setq lst (list2lst select-lst))
  (setq layers (apply 'strcat (mapcar '(lambda (x) (strcat (nth x la-list) ",")) lst)))
  ......

;;///////////////////// dcl file /////////////////
pds_select_layer : dialog {
  label= "Layer Select dialog";
  key= "layer_txt";
  :list_box {
     key= "layer_lst";
     width= 25;
     height= 15;
     multiple_select= true;
  }
  ok_cancel;
}

출처 : http://cafe.daum.net/archimore/GiYt/68

'CAD > AutoLisp' 카테고리의 다른 글

Lisp 모음  (2) 2009.05.16
[Subroutine] 레이어 있으면 선택 없으면 생성  (0) 2009.05.12
AutoLISP Reference (Autocad 2004 English)  (0) 2009.05.12
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함