티스토리 뷰

CAD

DXF 파일 포맷 간단한 파일 생성

마구자바 2024. 1. 11. 11:59
반응형

 

DXF(Drawing Exchange Format) 파일은 2D 및 3D 그래픽 데이터의 교환 형식으로 주로 CAD 소프트웨어에서 사용됩니다. DXF 파일은 텍스트를 기반으로 구성되어있으므로, 그 구조를 이해한다면 편리하게 도면을 작성할 수 있다는 장점이 있다. 그렇지만, 일반적인 DXF 파일 구조는 내용이 방대하여 쉽게 접근하기 어렵다.

그런데, DXF 구조에서 최소 사양만을 사용하여 작성하는 방법이 있어, 그 내용을 정리하였다. 이를 이용해, 엑셀이나 기타 다른 소프트웨어를 이용해서 빠르게 DXF 코드를 만들 수 있을 것이다.

 

 

 

최소 DXF 파일

 

DXF 파일의 구조를 이해하는게 목적이 아니고, DXF 을 간단하게 생성하는데 목적이 있으므로, 다음의 내용에서 세부 사항들을 구체적으로 살펴보는게 아니고, 어떻게 만들어야 하는지에 집중하기로 한다.

 

파일구조

 

다음과 같은 4가지 Section과 파일의 끝을 알려주는 EOF로 구성되어 있다. 이 4가지는 무조건 만들어줘야한다.

  • Header
  • Tables
  • Blocks
  • Entities
  • EOF

 

Header

 

Header Section은 도면에 대한 일반적인 정보가 포함되어 있다.  그렇기 때문에 제대로 이해하고자 한다면, DXF Code Reference를 살펴보고 세부적인 사항들을 공부하면 된다. Header Section은 도면의 제일 앞부분에 나와야 하므로, 아래 내용을 그냥 붙여넣기하여 사용한다.

 

999
DXFcreated from <program name>
0
SECTION
2
HEADER
9
$ACADVER
1
AC1006
9
$INSBASE
10
0.0
20
0.0
30
0.0
9
$EXTMIN
10
0.0
20
0.0
9
$EXTMAX
10
1000.0
20
1000.0
0
ENDSEC

 

 

Table

 

Table Section에는 시스템 변수, Line Style, Layer, Text Style, User Coordinate 등이 정의되는데, 마찬가지로 공부하지말고 아래 코드를 붙여넣으면 된다.

 

0
SECTION
2
TABLES
0
TABLE
2
LTYPE
70
1
0
LTYPE
2
CONTINUOUS
70
64
3
Solid line
72
65
73
0
40
0.000000
0
ENDTAB
0
TABLE
2
LAYER
70
6
0
LAYER
2
1
70
64
62
7
6
CONTINUOUS
0
LAYER
2
2
70
64
62
7
6
CONTINUOUS
0
ENDTAB
0
TABLE
2
STYLE
70
0
0
ENDTAB
0
ENDSEC

 

 

Blocks

 

내용이 없지만, 필수 요소이므로 아래 내용을 붙여넣자

 

0
SECTION
2
BLOCKS
0
ENDSEC

 

 

Entities

 

Entity Section이 제일 중요하다. 여기서 선과 도형들을 정의해주면 도면을 완성할 수 있다.

 

0
SECTION
2
ENTITIES
<Geometric entities go here, see later>   <-- 이 부분에 도형에 관련한 코드를 삽입한다!!
0
ENDSEC

 

 

간단하게 도면을 작성하는 것이므로, Line과 Text에 대해서만 코드를 분석하였다. 기타 추가적인 도형들은 아래 링크에 있는 DXF Reference의 "Entities" 부분을 참고해서 각자 공부하면 되겠다.

 

Entities - LINE 

 

0
LINE
8                    <-- Layer 이름 
2                         
62                  <--- 색상번호 (정수값을 입력해보고, 직접 테스트 해 볼것)
4
10                  <--- 시작점 X좌표
8500
20                  <--- 시작점 Y좌표
-12563.4
30                  <--- 시작점 Z좌표
0
11                  <--- 끝점 X좌표
8500
21                  <--- 끝점 Y좌표
-12563.4
31                  <--- 끝점 Z좌표
4150.99

 

 

Entities : TEXT

 

0
TEXT
8
1
62
3
11                  <--- 글자 위치 X좌표
0
21                  <--- 글자 위치 Y좌표
0
31                  <--- 글자 위치 Z좌표
0
40                  <--- 글자 크기
100
1                    <--- 글자 내용
tresgtstasdfassadf
50                  <--- 글자  회전 각도
0
72                  <--- 글자 수평 배치 (아래 옵션 참고)
1
73                  <--- 글자 높이 배치 (아래 옵션 참고)
1

 

 

< TEXT 관련 옵션 상세 >

 

 

< 주 의 사 항 >

 

Text 입력시 기준점 관련해서

  • Code 72, 73을 사용할 경우, 첫번째 좌표 기준점 10, 20, 30이 무시되므로, 11, 21, 31 코드를 사용
  • Code 72, 73을 사용하지 않을 경우, 첫번째 좌표 기준점 10, 20, 30 코드를 사용

 

EOF
0
EOF

 

 

DXF Sample

 

위에서 언급한 모든 내용을 통합한 예제는 다음과 같으며, 보다 세부적인 사항은 아래 링크를 참고해서 공부하시기 바랍니다.

 

 

참고자료

 

최소사양 DXF 구조

https://paulbourke.net/dataformats/dxf/min3d.html

 

Minimal DXF

Minimum Requirements for Creatinga DXF File of a 3D Model Written by Paul Bourke Original: March 1990 Revision: September 1993 Introduction DXF is possibly the most widespread CAD exchange format in use by CAD packages on small computer systems. It was dev

paulbourke.net

 

 AUTOCAD DXF 관련 세부 내용

 

https://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf

 

 

 

 

 

 

 

댓글