비밀번호를 잊으셨나요?

비밀번호를 잊으셨나요? 비밀번호를 재설정하려면 이메일 주소를 입력해주세요.

계정이 있나요? 로그인

You must login to ask a question.

비밀번호를 잊으셨나요?

아직 계정이 없으신가요? 회원가입 하기

해당 질문을 신고하는 이유를 간단히 입력해주세요.

해당 답변을 신고하는 이유를 간단히 입력해주세요.

해당 유저를 신고하는 이유를 간단히 입력해주세요.

로그인회원가입

고캐드 – 캐드(CAD) 정보의 중심

고캐드 – 캐드(CAD) 정보의 중심 Logo 고캐드 – 캐드(CAD) 정보의 중심 Logo

고캐드 – 캐드(CAD) 정보의 중심 Navigation

  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
검색
질문하기

Mobile menu

닫기
질문하기
  • 홈
  • 카테고리
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 투표
  • 커뮤니티 그룹
  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
홈/ 질문/Q 107884
다음
진행 중
말키리
말키리Lv.0
등록일: 2017-01-292017-01-29T10:21:29+09:00 2017-01-29T10:21:29+09:00카테고리: AutoCAD & CADian

text 파일 input 관련

제 질의에 관심가져주셔서 감사드려요

텍스트 파일에 저장해서 캐드파일로 가져오는 리습을 짜고 있는데 
궁금한점이 있어서 질의남깁니다. 

기존 다른분이 해주신 거에 대한 답변보고 참고해서 하고 있는데
( https://www.gocad.co.kr/?mid=qa_cad&search_target=title&search_keyword=txt+%ED%8C%8C%EC%9D%BC&page=1&division=-2648989&document_srl=2495381 )


——————————————–
남은 문제는  txt_를 숫자로 바꿔주는 것이죠.
    저는 리스트로 바꾸는 것을 좋아 합니다. 한줄을 통째로 기억하세요.
    (setq  list_num (read (strcat “(” txt_ “)”)))

   제가 결정한 데이타 파일의 입력방법은 x y z w b h    6개의 숫자이므로
   순서대로 0 1 2 3 4 5입니다.
   (setq  x (nth 0    list_num ) y (nth 1    list_num  )  z (nth 2   list_num  )
              w (nth 3    list_num  ) b (nth 4    list_num  ) h (nth 5    list_num  ) )

9.좌표계산
   (setq p0 (list x y z))         ;—-좌표 (x y z)
   (setq p1 (list (+ x (/ w 2.0))(+ y (/ b 2.0))))        ;—-좌표 (x+w/2   y+b/2)

10.좌표계산을 결합하면 아래와 같습니다.
(defun c:
sol_box()
  (setq file_r (open 파일명 “r”))
  (while (setq txt_ (read-line file_r))
      (setq  list_num (read (strcat “(” txt_ “)”)))
      (setq  x (nth 0    list_num ) y (nth 1    list_num  )  z (nth 2   list_num  )
                w (nth 3    list_num  ) b (nth 4    list_num  ) h (nth 5    list_num  ) )


     (setq p0 (list x y z))         ;—-좌표 (x y z)
     (setq
 p1 (list (+ x (/ w 2.0))(+ y (/ b 2.0))))        ;—-좌표 (x+w/2   y+b/2)
   (command  “box”   “c”  p0  p1 H)
  );while
  (close file_r)
  (princ)
 );defun

11.데이타 파일을 만들고 파일명 에 위치를 기록해야 합니다.
    저는 임의로 “c:\sol_box.txt”로 만들었습니다.
    리습에서는 디렉토리구분문자를 \두개를 사용해야 합니다.

;——————————————뒷처리—————————————————–

12.  완성되엇지만 command를 사용할 때는 오스냅을 꺼줘야합니다.
      이것도 세줄을 외우시기 바랍니다.
     (setq os_n (getvar “osmode”))
     (setvar “osmode” 0)
      ……………………………………..
     (setvar “osmode”  os_n)

13.맨 마지막으로는 setq 에서 사용한 변수를 지우기 위하여 defun 으로 만든 함수명의 괄호안에
     /를 하고 뒤에 사용한 변수명을 넣어주면 됩니다.
(defun c:sol_box(/ os_n file_r txt_ list_num x y z w b h p0  p1 )
    (setq os_n (getvar “osmode”))
    (setvar “osmode” 0)

   (setq file_r (open “c:\sol_box.txt” “r”))
   (while (setq txt_ (read-line file_r))
    (setq  list_num (read (strcat “(” txt_ “)”)))
     (setq  x (nth 0    list_num ) y (nth 1    list_num  )  z (nth 2   list_num  )
                w (nth 3    list_num  ) b (nth 4    list_num  ) h (nth 5    list_num  ) )


     (setq p0 (list x y z))         ;—-좌표 (x y z)
     (setq
 p1 (list (+ x (/ w 2.0))(+ y (/ b 2.0))))        ;—-좌표 (x+w/2   y+b/2)
   (command  “box”   “c”  p0   p1 H)
  );while
  (close file_r)

  (setvar “osmode”  os_n)

  (princ)
 );defun
———————————————————————————–

기존 다른분 질의에서보면 nth1~nth5까지 실수

txt파일 내용이 정수, 실수 , 문자는 어떻게 구분해줘야 하나요?
   (setq  x (nth 0    list_num ) y (nth 1    list_num  )  z (nth 2   list_num  )
                w (nth 3    list_num  ) b (nth 4    list_num  ) h (nth 5    list_num  ) )

한이후에 정수 실수 문자라고 다시 정의해줘야하는건가요?

문자같은경우에는 txt파일에 따옴표(“”)를 넣으니  문자로 인식하긴하던데 
아시는문 답변부탁드려요 미리 감사드립니다.

  

  • 0
  • 3 3 답변
  • 21 조회
공유
  • Facebook

    관련 있는 질문들

    • insert 삽입할때 레이어도 같이 변경가능할까요?
    • 캐드 파일을 PDF로 변환 할 때 문제점 도와주세요 ㅠ
    • 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요..
    • 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요..

    3 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 수야12 Lv.21
      2017-01-29T20:20:17+09:00답변 등록 답변 등록 일시 2017-01-29 8:20 pm

      위 리습을 그대로 적용 햇을경우의  만약에 읽어 들이 내용이 123 456 789 10 abc 20 이면
      (read(strcat “(” txt “)”)) 얘를 통해 내용이 (123 456 789 10 abc 20) 이라는 리스트로 바뀝니다
      이미 변환이 된 상태란 뜻이죠 단 abc만 문자가 아닌 심벌로 인식되니 이것만 문자로 변환하시면 됩니다

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. 말키리 Lv.0
      2017-01-29T15:24:30+09:00답변 등록 답변 등록 일시 2017-01-29 3:24 pm

      알아서변화되는 줄알았는데  오류나서요

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. 수야12 Lv.21
      2017-01-29T14:50:17+09:00답변 등록 답변 등록 일시 2017-01-29 2:50 pm

      그냥read 로 읽으면 알아서 변롼됩니다

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter

    Sidebar

    질문하기
    공지사항

    • AI CAD의 미래! 캐디안 2025 1+1 프로모션 안내 2025-05-14

    Adv 234x60

    aalan

    Adv 234x60

    aalan

    Adv 120x600

    aalan

    Explore

    • 홈
    • 카테고리
      • AutoCAD & CADian
      • Inventor & Solidworks
      • Revit & ArchiCAD
      • 자유질문
      • 기타
    • 투표
    • 커뮤니티 그룹
    aalan

    Footer

    Support

    • 회사 및 서비스 소개
    • 자주 묻는 질문
    • 문의하기

    Guide

    • 제휴/협업 안내
    • 광고 서비스 안내

    Policy

    • 서비스 이용약관
    • 개인정보 처리방침
    • 광고성 정보 수신 동의

    Contents

    • 고밍스토리
    • 리습 시리즈

    정소프트 | 사업자등록번호 : 677-40-00198 | 대표 : 정은숙 | 이메일 : gocad.manager@gmail.com
    주소 : 서울특별시 강서구 양천로 400-12, 6층 614,615,617호(등촌동, 더리브골드타워)
    Copyright. 2012-2024 GOCAD All rights reserved