티스토리 뷰
;; 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 |