비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 101123
다음
진행 중
xcsh
xcshLv.0
등록일: 2014-05-072014-05-07T19:18:44+09:00 2014-05-07T19:18:44+09:00카테고리: AutoCAD & CADian

txt파일 좌표 데이타를 입력 여러개의 SOLID BOX를 그리는 리습

;——————————————————————————–
아직도 질문에 대한 답을 얻고 지워버리는 분이 계시는군요.
처음 만들어 보시려는 다른 분들도 같은 문제일 때 참고하도록  올린 것이라서
답변만 변형하여 다시 올립니다.
;——————————————————————————–
질문내용요점 : 너무 많아서 파일로 부터 데이터를 반복하여 받아 SOLID BOX를 그리는 리습
;——————————————————————————–
너무
상세히 만들려고 하면 어렵습니다.
캐드를 사용할 때  나오는 순서를 그대로 옮기세요.
데이타와 그리는 순서를 분리하여 생각 하십시오.

점을 찍고나면 엔터를 칠 필요가 없는데  이런 곳에는 엔터 표시하지 마시고요.
box  엔터 c 엔터 중심점  모서리점 높이    —– 작업순서
사용데이타   —–   X Y Z B W H    —- 중심점 X Y Z  가로 세로 높이 B W H

;——————————그리는부분—————————–
1. 맨 처음 해야 할일은 명령어를 정하는 것입니다.  —  defun c:명칭()
   (defun c:sol_box()
     (princ)
  );defun

2.
다음에는 자신이 결정한 작업을 괄호로 싸고 중간에 넣으세요.
   (defun c:
sol_box()
       (
box  엔터 c 엔터 중심점  모서리점 높이)
     (princ)
   );defun

3.
작업에 command 함수를 넣고 문자입력은 “”로 둘러싸서 처리하세요.
  
좌표나 숫자는 그대로 사용하시고   —엔터는 아무것도 없는 “”로
   (defun c:
sol_box()
       (
command  “box”  “c” 중심점  모서리점 높이)
     (princ)
   );defun

4.
작업에 점을 찍거나 숫자를 넎는 부분을 본인 마음에 드는 문자로 표시하세요 .
   
중심점 – p0      모서리점-p1    높이 H      —-입력 3개소
    (defun c:sol_box()
       (
command  “box”  “c”  p0  p1 H)
     (princ)
   );defun

5.
위의 입력을 (setq  문자 ?? )로 작업전에 넣어 주세요 .—??로 표시한 곳이 숫자입력부분입니다.
   
중심점 – p0      모서리점-p1    높이 H      —-입력 3개소
(defun c:sol_box()
   (setq p0 ‘(0 0 0) ) 
   (setq p1 ‘(4 5) )
   (
setq H   5)
   (
command  “box”  “c”  p0  p1 H)
  (princ)
 );defun

여기까지가  작업부분의 코딩입니다. 
임의의  좌표와 숫자를 넣고 실행시키면 원점에 8*10*5의
박스가 생기게 됩니다

;——————————————데이타입력—————————————————–
6. 이제 txt 파일을 읽어 들여야 합니다.   아래문장을 전부 기억하십시오.
  (setq file_r (open 파일명 “r”))
  (while (setq txt_ (read-line file_r))
   ……………………………
  );while
  (close file_r)
  txt_ 에 한줄씩 반복하여 읽게됩니다.

7. 만든코드를 ….. 중간 부분에 넣어주시면 됩니다.
(defun c:sol_box()
  (setq file_r (open 파일명 “r”))
  (while (setq txt_ (read-line file_r))
   (setq p0 ??)
   (setq p1 ??)
   (setq H  ??)

   (command  “box”  “c”  p0  p1 H)
  );while
  (close file_r)
  (princ)
 );defun

8.남은 문제는  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

제가 아는 장황한 설명을 마칩니다.

  • 0
  • 4 4 답변
  • 15 조회
공유
  • Facebook

    관련 있는 질문들

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

    4 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. [Deleted User]
      2014-05-07T21:27:42+09:00답변 등록 답변 등록 일시 2014-05-07 9:27 pm

      2시간 이상 걸렸을 듯 하네요.

      선생님 수고에 제가 대신 감사 드립니다.^^
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. 수야12 Lv.21
      2014-05-07T22:36:34+09:00답변 등록 답변 등록 일시 2014-05-07 10:36 pm

      아 지웠는군요 … 젠장 저도 샘플 리습 하나 올려달라기에 만들었는데.. 안보이길래 게시판 오류인줄
      알았네요 ^^;; (참  약간 어이가 없네요….)

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. xcsh Lv.0
      2014-05-07T22:49:05+09:00답변 등록 답변 등록 일시 2014-05-07 10:49 pm

      저야  자주달지 않아서 이런 경우가 간혹이지만
      댓글 많이 달아주시는 분들은 섭섭한 경우가 많을 것 같습니다.

      상큼메론90 님 , 스피돌0116님,  수야12님 댓글 감사합니다.
      편안한 밤을 지내시고 활기찬 내일을 꿈꾸시길 바랍니다.

      황당한 것이라도 많은분들이 자신의 생각을 올려주는 것이 관념을 깨는데 도움이 됩니다.
      회원여려분들 앞으로도 저에게 많은 깨우침 주시기 바랍니다. 

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    5. [Deleted User]
      2014-05-08T03:37:35+09:00답변 등록 답변 등록 일시 2014-05-08 3:37 am

      *******************************************************************************************

      시샵입니다

      1. 다시 한번 말씀드립니다

      2. 고캐드는,  설계인들의  정보교환을 위한 커뮤니티입니다

      3. 질문하시는 분들이  답을 얻으셨다고,  글을 지우는건
      매우 이기적일 뿐만 아니라,  답글을 하신 분들께  기본적인 예의가 아닙니다

      4. 누차 이미  공지드렸듯이,   이런 분들은,  발견즉시, 
      – 아이디 영구 강퇴시키며,
      – 재가입 도 허용하지 않겠습니다

      5. 자신의 소중한시간을 내어 정성스런 답글을 주신  “”  xcsh  ”  님깨
      고캐드를 대신해 시샵으로서 무한한 감사와   ,  심심한  위로의 말씀을 드립니다

      시샵 올림

      • 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