2002 에서는 잘 된 리습인데
2008 에서 실행시 유저 에러라고 캐드 변수 설정이 거부 되엇다고 나옵니다.
“cecolor” “white” 오류 라고하고 함수내에 오류라고 합니다.
잘못된 인수 유형은 stringp nil 이라고 하는데
뭐가 잘못 된거지 모르겠습니다.
좀 도와주세요~
(defun rev_mark (/ olderr std_osmode std_clayer std_cecolor d_s direct rev_no_input basic_point ent block_name)
(setvar “cmdecho” 0)
(setq olderr *error* *error* std_canmode)
(setq std_osmode (getvar “osmode”))
(setq std_clayer (getvar “clayer”))
(setq std_cecolor (getvar “cecolor”))
(setq d_s (getvar “dimscale”))
(setq direct (dtr 0))
(setq rev_no (if rev_no rev_no “1”))
(setq rev_no_input (getstring (strcat “n수정번호를 입력하세요/종료는 No/<” rev_no “>: “)))
(if (/= “” rev_no_input) (setq rev_no rev_no_input))
(if (or (= rev_no “n”) (= rev_no “N”))
(princ “n프로그램을 종료합니다.”)
(progn
(princ “n삽입점을 입력하세요.:”)
(setq basic_point ‘(0 0))
(cond (rev_no_input
(setvar “osmode” 0)
(setvar “cecolor” “white”)
(command “layer” “m” “REV” “”)
(command “pline” basic_point)
(repeat 3
(command (setq basic_point (polar basic_point direct (* 10.0 d_s))))
(setq direct (+ direct (dtr 120)))
) ;repeat
(command “”)
(setq ent (ssadd))
(ssadd (entlast) ent)
(setq basic_point (polar basic_point (dtr 30) (* 5.7735 d_s)))
(setvar “cecolor” “GREEN”)
(command “layer” “m” “REV” “”)
(command “style” “GHS” “romans,ghs” “0” “0.8” “0” “N” “N”)
(command “text” “m” basic_point (* 3.0 d_s) 0 rev_no)
(ssadd (entlast) ent)
(setq block_name (rtos (* (getvar “cdate”) 100000000) 2 0))
(command “block” block_name basic_point ent “”)
(command “insert” block_name pause)
(command “1” “1” “0”)
(setq ent (entlast))
(command “explode” ent)
)
) ; cond
);progn
);if
(setvar “cecolor” std_cecolor)
(setvar “clayer” std_clayer)
(setvar “osmode” std_osmode)
(setq *error* olderr)
(setvar “cmdecho” 1)
(princ)
) ;end of defun