리습 (레이어 지정 옵셋리습) 마지막 사용값으로 지정
컨텐츠 정보
- 303 조회
- 2 댓글
- 0 추천
- 0 비추천
- 목록
본문
안녕하세요.
레이어 지정하여 옵셋하는 리습을 사용중인데
캐드를 사용하게 되면 스페이스바나 엔터를 쳤을 경우
마지막에 사용한 명령어가 나오자나요?
아래 리습 사용할때마다 기본값이 자꾸 나오게 되어
간격뛰우기 값과 레이어를 선택하는 것이 반복되다 보니 번거로움이 이만저만이 아닙니다.
고수님들의 도움 부탁드립니다. (__)
(defun C:OL (/ cmd)
(setq cmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(if (null dist)
(setq dist 1)
)
(setq d (getreal (strcat "간격뛰우기 값 <" (itoa (fix dist)) ">: ")))
(if (null d)
(setq d dist)
)
(if (null nlayer)
(setq nlayer "0″)
)
(setq lyr (strcase (getstring (strcat "도면층이름은? <" nlayer ">: "))))
(if (null (read lyr))
(setq lyr nlayer)
)
(while (null (tblsearch "LAYER" lyr))
(prompt (strcat "n Layer " lyr " does not exist."))
(setq lyr (strcase (getstring "도면층이름을 다시선택: ")))
)
(setq obj (entsel "객체선택: "))
(while (null obj)
(setq obj (entsel "객체다시선택: "))
)
(while (not (null obj))
(command "offset" d obj pause "")
(setq ename (entlast))
(while (not (null obj))
(setq elist (entget ename))
(setq elist (subst (cons 8 lyr) (assoc 8 elist) elist))
(entmod elist)
(setq obj (entsel "객체선택: "))
(if (not (null obj))
(progn (command "offset" "" obj pause "")
(setq ename (entnext ename))
)
)
)
)
(setq dist (fix d))
(setq nlayer lyr)
(prompt "명령취소는 ESC키를 살짝. ")
(setvar "cmdecho" cmd)
)
(defun lineerr(err)
(prompt "n*error*:")
(prin1 err)
(command "redraw")
(setq *error* olderr)
);** defun end **
관련자료
상큼메론90님의 댓글
위 리습 살펴보니, 더 이상 수정할 게 없을 듯 하네요~
질문 내용이 아래 리습 사용할때마다 기본값이 자꾸 나오게 되어 간격뛰우기 값과 레이어를 선택하는 것이 반복되다 보니 번거로움이 이만저만이 아닙니다. 이 리습은 처음 시작할때만 기본 값으로 되어있고, 그 뒤에 사용때에는 마지막값을 저장하여 사용합니다.
리습 내용을 보면 (if (null dist) (setq dist 1) ) (setq d (getreal (strcat "간격뛰우기 값 <" (itoa (fix dist)) ">: "))) (if (null d) (setq d dist) )
질문 내용이 맞지 않습니다. 뭐가 문제인지요???
.