while 은 제시한 조건에 부합하는 동안 계속 실행하며 조건에 맞지 않으면 종료합니다
예제는 특정객체이후의 생성된 객체 모두를 ss 로 저장하는 목적의 리습문 입니다
더이상 추가된 객체가 없어 변수 enext 값이 nil 이되면 while 문을 종료합니다
(while enext (setq ss (ssadd enext ss) enext (entnext enext)) )
(command "-insert" blkname "none" pt) ; 블록 삽입 명령 진행 사용자 점지정까지
(while (= (getvar "cmdactive") 1) ; 사용자가 점을 지정하는한 계속 실행
(command 1 1 pause "-insert" blkname pause) ; 점지정 이후의 scale 입력 및 블록 삽입 절차 진행
)
예제는 한점을 중심으로 직경값 입력을 멈출때까지 계속하여 동심원을 그리는 기능
(setq p1(getpoint "\n 중심점 클릭 "))
(while (/= cd nil)
(setq cd(getdist "직경 입력 "))
(if (null cd)(setq cd cd1) (setq cd1 cd))
(setq r(/ cd 2))
(setvar "osmode" 0)
(command "circle" p1 r )
(setvar "osmode" osm)
) ; end while
(> aaa bbb) ; 조건 bbb 보다 aaa 가 큰 경우
(< aa bb) ; bb 보다 aa 가 작은 경우
(= ccc ddd) ; 조건 ccc 와 ddd 가 같은 경우
(<= eee fff) ; 조건 fff 가 eee 와 같거나 큰경우
(>= ee ff) ; ee 가 ff 보다 크거나 같은 경우
(= ggg nil) ; 조건 ggg 값이 nil (오류) 인 경우
(= hhh "") ; 사용자 입력 hhh 문자값이 그냥엔터로 값이 없는 경우
(/= cd nil) ; nil아니면 참 응답