특정 파일을 열거나, 저장할 때 사용하는 함수가 Getfiled 이다.
(getfiled "메세지" "경로" "확장자" frag)
구문의 예는 다음과 같다.
(getfiled "파일선택" (getvar 'DWGPREFIX) "dwg" 17)
* frag 설명
맨 뒤의 frag 는 숫자에 따라서 기능이 다른데..
1 (bit 0) : 파일을 저장할 때 사용함.
같은 이름의 파일이 존재하면, 덮어쓰기를 물어봄.
4 (bit 2) : 사용자가 확장자를 입력하는 것을 허용.
즉, 사용자가 aaa.rrr 로 입력하면.. aaa.rrr 을 반환함.
이 비트가 꺼져 있으면.. 구문에 정의된 확장자만 허용됨.
즉 사용자가 aaa.rrr 로 입력하면, aaa.rrr.dwg 를 반환함.
사용될 일이 없음.
8 (bit 3) : 이 bit가 설정되고 bit 0 이 설정되지 않으면, 입력 된 파일 이름에 대한 검색을 수행
검색 결과, 파일을 찾으면 경로를 제거하고 파일 이름만 반환함.
단, 동일한 이름의 파일이 다른 폴더에 있는 경우 경로 이름을 제거하지 않음.
이 비트가 설정되지 않으면 getfiled는 경로 이름을 포함하여 전체 파일 이름을 반환함.
즉, 다른 검색경로까지 파일을 찾으므로, 이 bit는 사용하지 않는 것이 좋음.
16 (bit 4) : 구문에 입력된 파일이름을 무시하고, 경로만 인식함.
즉, getfiled 함수는 기본 파일 이름이 없다고 가정
예를 들어, 구문을 (getfiled "파일선택" "C:\\Users\\외부참조연습.dwg" "dwg" 4) 이렇게 입력하면 화면에 다름과 같이 나타남.
그러나, (getfiled "파일선택" "C:\\Users\\외부참조연습.dwg" "dwg" 16) 로 입력하면, 파일이름을 무시하고, 빈칸으로 나타남.
32 (bit 5) : 이 bit+bit 0 (즉 33)이 설정되면 덮어쓰기 경고를 생략함. 사용될 일이 없음.
64 (bit 6) : 사용자가 파일이름이 아닌, URL을 입력해도, 인터넷 검색을 하지 않음.
128 (bit 7) : URL 입력을 허용하지 않음.
* 그러므로, 결국 사용되는 frag 는
파일을 저장할 때 : 1 + 16 + 128 = 145 또는 1 + 16 = 17
파일을 가져올 때 : 16 + 128 = 144 또는 16
로 사용하는 것이 좋고,
만약 특정 파일로 저장되거나, 읽어 오고 싶을 때는
파일을 저장할 때 : 1 + 128 = 129
파일을 가져올 때 : 128
로 사용하면 된다.
단, 이 때는 구문에 파일이름까지 넣어야 한다.
예 : (getfiled "파일선택" "C:\\Users\\외부참조연습.dwg" "dwg" 129)
이 함수는 몇가지 짜증나는 단점이 있는데...
1. 화면의 크기가 너무 작고, 고정되어 있다.
즉, 아래 크기처럼 단지 4개의 파일만 보일 뿐이다.
그러나, BricsCAD, GstarCAD 는 이 화면을 크게 늘릴 수 있다. (처음부터 크게 나온다. ㅠㅠ)
2. AutoCAD 2009 이하에서는, 파일을 선택하자마자 맨 윗줄의 폴더나 파일로 튀어 버린다.
이게 제일 짜증인데, "확인"을 누르면, 맨 윗줄의 폴더가 열리거나, 그 파일로 대체되어 버린다. ㅠㅠ
그나마, AutoCAD 2010 부터는 해결되었으며, BricsCAD, GstarCAD, ZWCAD 에서는 애초에 이런 문제가 없다.
그러므로, AutoCAD는 다른 함수의 처리능력을 포함하여, 2010 부터가 비로서 제대로 된 버전의 시작인 듯 하다.
AutoCAD 2009 이하의 사용자가 이 짜증에서 벗어나는 요령은..
화면이 나타나면... 스크롤로 내려서 파일을 선택하는 것이 아니라...
아무 파일 (폴더)를 우선 클릭한 다음.. 슬라이드를 내려서 파일을 찾고, 클릭하면 된다.
즉, 선택의 순서가 아래와 같다.
이런 순서대로 파일을 선택하면, 수명을 늘릴 수 있다.
3. 여러 파일의 선택이 안된다. 단지 하나의 파일만 선택할 수 있다.
이 문제가 매우 거슬리는데, 다른 응용프로그램을 사용하지 않는 이상, 별 방법이 없다.
'Lisp & Tips > Lisp' 카테고리의 다른 글
도곽선택하여 선축척,치수축척 변경 (0) | 2017.08.17 |
---|---|
Logand 함수 사용법 (0) | 2016.12.25 |
시간과 관련된 함수 (0) | 2016.12.04 |
vl-file-systime 의 사용법 (0) | 2016.12.04 |
현재 도면에 로딩된 모든 명령어/함수/변수 보기 (0) | 2016.10.17 |