안녕하십니까!! 고수님들…..^^
정보만 얻어가넌 제가 답답한 맘에 문제 해결을 위해 질문 드립니다.
cad에서 추출한 data 파일을 txt로 저장해서 위치값 수정후 lisp파일로 재 배열 시키는 작업니다.
여기에 사용한 Lisp이 밑에 내용입니다
(defun c:R()
(defun GetData(flt)
(setq cat1 (substr flt 1 4)
cat2 (substr flt 6 7)
X0 (read (strcat cat1 “.” cat2))
cat1 (substr flt 14 4)
cat2 (substr flt 19 7)
Y0 (read (strcat cat1 “.” cat2))
cat1 (substr flt 27 4)
cat2 (substr flt 32 7)
Z0 (read (strcat cat1 “.” cat2))
P0 (list X0 Y0)
a (/ Z0 2)))
(graphscr)
(setq ret (getvar “cmdecho”))
(setvar “cmdecho” 0)
(setq Fn (getstring “nFile path:”))
(prompt “nsuccess !!n”)
(setq filep (open Fn “r”))
(setq flt (read-line filep))
(while flt
(GetData flt)
(command “circle” P0 a)
(setq flt (read-line filep))
)
(close filep)
(prompt “n OK !!!!!n”)
(setvar “cmdecho” ret)
(princ)
)
상기 내용을 line 용으로 바꿔야 하는데요 재가 잘 몰라서 답답하네요
그리고 line으로 변경시 불러들일 txt에 저장된 내용이 틀릴건데 이건 어떤 상태로 정장 해야 하는지도
부탁드립니다. (DOT 배열시 불러들인 TXT내용: X/Y/지름 -> Line열시 불러들이는 txt 내용: ???)
레이져 타공으로 보이네요. 데이타를 그림으로 바꿔 보시고 싶으신 모양인데
내용설명보시고 수정하고 실패하고 고치고 반복하라고 권해드립니다.
리습은 간단해서 혼자배우기 쉬운언어입니다.
방법은 1. 줄을 정렬 중요부분 확인
2. 과감하게 삭제 내용줄이고
3. 필요부분 수정사용 입니다.
(defun c:R() ;————함수정의 c:R
;—————–이부분이 글자를 숫자로 바꾸는 부분입니다.
(defun GetData( flt ) ;——– 함수정의 GetData flt를 받아서 수행 ( 글자한줄 )
(setq ;———–저장하라는 함수입니다.
cat1 (substr flt 1 4) ;———–한줄중 1번째 4글자열 저장.
cat2 (substr flt 6 7) ;———–한줄중 6번쩨 7글자열 저장.
X0 (read (strcat cat1 “.” cat2)) ;—–중간에 점을 추가하여 글자열 결합후 숫자변환
cat1 (substr flt 14 4) ;———–한줄중 14번째 4글자열 저장
cat2 (substr flt 19 7) ;———–한줄중 19번째 7글짜열 저장
Y0 (read (strcat cat1 “.” cat2)) ;—–중간에 점을 추가하여 글자열 결합후 숫자변환
cat1 (substr flt 27 4) ;———–한줄중 27번째 4글자열 저장
cat2 (substr flt 32 7) ;———–한줄중 32번째 7글자열 저장
Z0 (read (strcat cat1 “.” cat2)) ;—–중간에 점을 추가하여 글자열 결합후 숫자변환
P0 (list X0 Y0) ;———–변환한 숫자를 좌표로 P0 에 저장
a (/ Z0 2) ;———–변환한 숫자를 반으로 누어 반지름 a 에 저장
);——–setq 괄호
);——–defun GetData 괄호
;————-이부분 까지 글자를 숫자로 바꾸는 부분입니다.
(graphscr) ;———-그림그리는 화면으로 (삭제해도 무방)
(setq ret (getvar “cmdecho”)) ;——–명령보이기 상태변수 저장 (삭제해도 무방)
(setvar “cmdecho” 0) ;——–명령안보이게 상태변수 설정 (삭제해도 무방)
(setq Fn (getstring “nFile path:”)) ;——–파일경로 입력
(prompt “nsuccess !!n”) ;——–메세지(삭제해도 무방)
(setq filep (open Fn “r”)) ;——–파일을 읽도록 할당
(setq flt (read-line filep)) ;——–한줄을 읽어들임
(while flt ;——–한줄 내용이 있으면 아래 세줄 진행
(GetData flt) ;——–위에 글자를 숫자로 바꾸는 내용 수행
(command “circle” P0 a) ;—- 님이 캐드로 그리는 명령을 기록하는 부분
(setq flt (read-line filep)) ;——–한줄을 읽어들임
) ;——–while 괄호 여기서 되돌아감
(close filep) ;——–파일을 할당 종료
(prompt “n OK !!!!!n”) ;——–메세지(삭제해도 무방)
(setvar “cmdecho” ret) ;——–명령보이기 상태변수 되돌림 (삭제해도 무방)
(princ) ;——–공백 출력(삭제해도 무방)
) ;——–defun c:R 괄호
님이 올린코드에서는 글자는 숫자만 있어야 하고 위치는 똑같아야 합니다.
