앞전에 문의 글 올렸을때
다중도면 인설트 에서
DOS_GETFILEM
이함수는 아래 첨부 arx가 같이 로드 되어있어야 사용할수 있습니다.
cad버전별로 제작되어있으니 아래버전중 맞는걸로 사용하세요
nickjs 님 말씀대로 arx 파일 로드 했는데….
이번엔 다른 문제가 발생했습니다.
멀티 인서트 명령어를 쳐서 들어가면
ARX 명령에서 예외상황
이라는 경고창이 뜨면서
처리할수 없는 예외 상황 C00000005 (Access Violation Reading 0x4d8d00b2), 주소 4D8D00B2h
라고 합니다. 버튼은 확인 밖에 없어요
그리고 캐드가 멈춥니다 ==……
이 리습 도저히 답 없나요?
;;; 명령어– iii
DOS_GETFILEM
이함수는 아래 첨부 arx가 같이 로드 되어있어야 사용할수 있습니다.
cad버전별로 제작되어있으니 아래버전중 맞는걸로 사용하세요
nickjs 님 말씀대로 arx 파일 로드 했는데….
이번엔 다른 문제가 발생했습니다.
멀티 인서트 명령어를 쳐서 들어가면
ARX 명령에서 예외상황
이라는 경고창이 뜨면서
처리할수 없는 예외 상황 C00000005 (Access Violation Reading 0x4d8d00b2), 주소 4D8D00B2h
라고 합니다. 버튼은 확인 밖에 없어요
그리고 캐드가 멈춥니다 ==……
이 리습 도저히 답 없나요?
;;; 명령어– iii
(defun ErrHandle (Err)
(if (and (/= Err “quit / exit abort”)
(/= Err “Function cancelled”)
)
(princ Err)
)
(setq *error* OldError)
(princ)
)
(if (and (/= Err “quit / exit abort”)
(/= Err “Function cancelled”)
)
(princ Err)
)
(setq *error* OldError)
(princ)
)
;;;실제로 도면을 인서트 하는 함수
(defun ins_file (last_file_name explode_id)
(if (= explode_id “1”)
(progn
(setq xlast_l_file_name (strcat “*” last_file_name))
(command “insert” xlast_l_file_name “\” “” “”)
)
(command “insert” last_file_name “\” “” “” “”)
)
)
;;;명령어 함수
(defun c:iii (/ choice all_list DP sel_path other_list lst_ea ins_lst
choice1)
(defun c:iii (/ choice all_list DP sel_path other_list lst_ea ins_lst
choice1)
(setq OldError *error*)
(setq *error* ErrHandle)
(STARTUP)
(vmon)
(setvar “cmdecho” 0)
(initget “Y N”)
(setq choice (getkword “n Explode Y/N <Y>: “))
(setq DP (getvar “DWGPREFIX”))
(setq *error* ErrHandle)
(STARTUP)
(vmon)
(setvar “cmdecho” 0)
(initget “Y N”)
(setq choice (getkword “n Explode Y/N <Y>: “))
(setq DP (getvar “DWGPREFIX”))
(setq all_list (dos_getfilem
“다중도면 불러들이기”
DP
“Drawing (*.dwg)|*.dwg|Dxf (*.dxf)|*.dxf”
)
)
(setq sel_path (car all_list))
(setq other_list (cdr all_list))
(setq lst_ea (length other_list))
(cond
((= choice “N”) (setq explode_id “0”))
(t (setq explode_id “1”))
)
“다중도면 불러들이기”
DP
“Drawing (*.dwg)|*.dwg|Dxf (*.dxf)|*.dxf”
)
)
(setq sel_path (car all_list))
(setq other_list (cdr all_list))
(setq lst_ea (length other_list))
(cond
((= choice “N”) (setq explode_id “0”))
(t (setq explode_id “1”))
)
(foreach x other_list
(princ “n “)
(princ x)
(setq ins_lst (strcat sel_path x))
(ins_file ins_lst explode_id)
(princ)
)
(princ “n “)
(princ x)
(setq ins_lst (strcat sel_path x))
(ins_file ins_lst explode_id)
(princ)
)
(initget “Y N”)
(setq choice1 (getkword “n ZOOM Extend Y/N <Y>: “))
(cond
((= choice1 “N”) nil)
(t (command “zoom” “e”))
)
(princ “n”)
(princ ” Total: “)
(princ lst_ea)
(princ ” 개의 도면을 Insert 하였습니다.”)
(princ)
)
(setq choice1 (getkword “n ZOOM Extend Y/N <Y>: “))
(cond
((= choice1 “N”) nil)
(t (command “zoom” “e”))
)
(princ “n”)
(princ ” Total: “)
(princ lst_ea)
(princ ” 개의 도면을 Insert 하였습니다.”)
(princ)
)
;;;Startup Function
(defun STARTUP ()
(cond
((= (atoi (substr (getvar “acadver”) 1 2)) 14)
(if (not (member “doslib14.arx” (arx)))
(if (findfile “doslib14.arx”)
(arxload “doslib14”)
)
)
)
((= (atoi (substr (getvar “acadver”) 1 2)) 15)
(if (not (member “doslib2k.arx” (arx)))
(if (findfile “doslib2k.arx”)
(arxload “doslib2k”)
)
)
)
)
)
(defun STARTUP ()
(cond
((= (atoi (substr (getvar “acadver”) 1 2)) 14)
(if (not (member “doslib14.arx” (arx)))
(if (findfile “doslib14.arx”)
(arxload “doslib14”)
)
)
)
((= (atoi (substr (getvar “acadver”) 1 2)) 15)
(if (not (member “doslib2k.arx” (arx)))
(if (findfile “doslib2k.arx”)
(arxload “doslib2k”)
)
)
)
)
)
흠…글쎄요…첨부하신 리습도 제가 가지고 있는거랑 똑같고…저는 에러가 안뜨는데요…
다른 컴퓨터에서 해보셨나요???
저런 예외에러 뜨면 리습자체의 문제라기 보다는
캐드 다른버전에서 하면 리습이 실행되는 경우가 종종 있더라구요..