;;;Visual-AUTO Ver 1.0 script file 2000.3.14
;;;본 리습은 AutoCad 2000에서 지원하는 Visual-Lisp으로 작성되어
;;;이전 버젼에서의 버그, 도스쉘을 이용한 속도 저하문제와 Sorting문제를
;;;해결한 버젼으로 AutoCad 2000 이상의 버젼에서만 실행된다.
;;;——————————————-
(defun do_ir()
(setq ret1 (get_tile “ir1”))
(setq ret2 (get_tile “ir2”))
(setq ret3 (get_tile “ir3”))
(setq ret4 (get_tile “ir4”))
(setq ret5 (get_tile “ir5”))
(setq ret6 (get_tile “ir6”))
(setq ret7 (get_tile “ir7”))
(setq ret8 (get_tile “ir8”))
(setq ret9 (get_tile “ir9”))
(setq ret10 (get_tile “ir10”))
(setq ret11 (get_tile “save_ok”))
(setq ret12 (get_tile “save_no”))
(setq ret13 (get_tile “cusave_ok”))
(setq ret14 (get_tile “cusave_no”))
)
(defun get_dir ( fh / autoscr1)
(while (setq ln (read-line fh))
(if (and (> (strlen ln) 0) (/= (substr ln 1 1) ” “))
(progn
(setq ln (strcat cudir ln))
(setq autoscr1 (cons ln autoscr1))
)
)
)
(setq autoscr1 (reverse autoscr1))
)
(defun make_routine ( n filedwg last_name)
(write-line n filedwg)
(if (= ret1 “1”)
(if (= rt11 nil)(write-line “” filedwg)(write-line rt11 filedwg))
)
(if (= ret2 “1”)
(if (= rt22 nil)(write-line “” filedwg)(write-line rt22 filedwg))
)
(if (= ret3 “1”)
(if (= rt33 nil)(write-line “” filedwg)(write-line rt33 filedwg))
)
(if (= ret4 “1”)
(if (= rt44 nil)(write-line “” filedwg)(write-line rt44 filedwg))
)
(if (= ret5 “1”)
(if (= rt55 nil)(write-line “” filedwg)(write-line rt55 filedwg))
)
(if (= ret6 “1”)
(if (= rt66 nil)(write-line “” filedwg)(write-line rt66 filedwg))
)
(if (= ret7 “1”)
(if (= rt77 nil)(write-line “” filedwg)(write-line rt77 filedwg))
)
(if (= ret8 “1”)
(if (= rt88 nil)(write-line “” filedwg)(write-line rt88 filedwg))
)
(if (= ret9 “1”)
(if (= rt99 nil)(write-line “” filedwg)(write-line rt99 filedwg))
)
(if (= ret10 “1”)
(if (= rt100 nil)(write-line “” filedwg)(write-line rt100 filedwg))
)
(if (= ret11 “1”)
;매도면 저장
(progn
(write-line “(setq save_option 2)” filedwg)
(write-line “chsave” filedwg)
)
;매도면 저장않음
(progn
(write-line “(setq save_option 4)” filedwg)
(write-line “chsave” filedwg)
)
)
)
;;;———————————
(defun c:asc(/ find go)
; (setvar “cmdecho” 0)
(setq cudir (getvar “dwgprefix”))
(setq cudwg (getvar “dwgname”))
(setq dcl (load_dialog “vautoscr.dcl”))
(if (not (new_dialog “vautoscr” dcl)) (exit))
(setq b1 “*.dwg”)
(set_tile “dir” b1)
(mode_tile “dir” 2)
(action_tile “dir” “(setq dirr $value)”)
(action_tile “ir1” “(do_ir)”)
(action_tile “rt1” “(setq rt11 $value)”)
(action_tile “ir2” “(do_ir)”)
(action_tile “rt2” “(setq rt22 $value)”)
(action_tile “ir3” “(do_ir)”)
(action_tile “rt3” “(setq rt33 $value)”)
(action_tile “ir4” “(do_ir)”)
(action_tile “rt4” “(setq rt44 $value)”)
(action_tile “ir5” “(do_ir)”)
(action_tile “rt5” “(setq rt55 $value)”)
(action_tile “ir6” “(do_ir)”)
(action_tile “rt6” “(setq rt66 $value)”)
(action_tile “ir7” “(do_ir)”)
(action_tile “rt7” “(setq rt77 $value)”)
(action_tile “ir8” “(do_ir)”)
(action_tile “rt8” “(setq rt88 $value)”)
(action_tile “ir9” “(do_ir)”)
(action_tile “rt9” “(setq rt99 $value)”)
(action_tile “ir10” “(do_ir)”)
(action_tile “rt10” “(setq rt100 $value)”)
(action_tile “save_ok” “(do_ir)”)
(action_tile “save_no” “(do_ir)”)
(action_tile “cusave_ok” “(do_ir)”)
(action_tile “cusave_no” “(do_ir)”)
(setq ok (start_dialog))
(unload_dialog dcl)
(if (= 1 ok)
(progn
(setq cudir1 (strcat cudir dirr))
(setq file_list (vl-directory-files cudir dirr 1))
(setq s_list (vl-sort file_list ‘<))
(setq listdwg (open (strcat cudir “auto.scr”) “w”))
(setq n 0)
(while (nth n s_list)
(progn
(setq list_n (nth n s_list))
(write-line list_n listdwg)
(setq n (+ n 1))
)
)
(setq listdwg (close listdwg))
)
)
(if (= 1 ok)
(progn
(setq autoscr (open (strcat cudir “auto.scr”) “r”))
(setq autoscr1 (get_dir autoscr))
(close autoscr)
(setq member 0)
(setq member (length autoscr1))
(setq last_name (nth (- member 1) autoscr1))
(setq filedwg (open (strcat cudir “auto1.scr”) “w”))
(setq test (getvar “dbmod”))
(if (= test 0)
(if (= ret13 “1”)
;database가 갱신 되지않음 현도면을 save 후 open
(progn
(write-line “save” filedwg)
(write-line “” filedwg)
(write-line “open” filedwg)
)
;database가 갱신 되지않음 다음 open
(write-line “open” filedwg)
)
;database가 갱신, 현도면을 save 후 open
(if (= ret13 “1”)
(progn
(write-line “save” filedwg)
(write-line “” filedwg)
(write-line “open” filedwg)
)
;database가 갱신, 다음 open
(progn
(write-line “open” filedwg)
(write-line “y” filedwg)
)
)
)
(foreach n autoscr1 (make_routine n filedwg last_name))
(write-line (strcat cudir cudwg) filedwg)
(setq auto2 (strcat cudir “auto1.scr”))
(setq delauto (strcat “del ” cudir “auto.scr”))
(setq delauto1 (strcat “del ” cudir “auto1.scr”))
(write-line “shell” filedwg)
(write-line delauto filedwg)
(write-line “shell” filedwg)
(write-line delauto1 filedwg)
(setq filedwg (close filedwg))
(command “script” auto2)
)
)
)
(defun c:check( pp )
(setvar “cmdecho” 0)
(setq tt (getvar “dbmod”))
(princ “edit=”) (princ tt)(terpri)
(princ pp)
)
이거 파일명을
“파일 디렉토리” <== 처럼 따움표 안에 넣을려면 어떻게 해야되나요
폴더 인식이 안되네요 따움표가 없으니까요 ㅡㅜ