DXF란
1982년 캐드 1.0버전이후 DXF(Drawing eXchange Format, 데이터 교환 형식)를 업데이트하고 발전시켰다.
캐드화일은 *.dwg는 압축형식으로 기록이 되어있기 때문에 사용자들은 이를 직접 일어오도록 하기 위한 프로그램을 작성하지 않는것이 좋습니다. 오토캐드는 다른 프로그램사이에 도면을 주고 받을 수 있도록 도와주는 dxf파일이 정의되어 사용되고 있기 때문인데 이는 설계된 도면을 유한요소분석프로그램과 같은 강력한 컴퓨터로 응력과 변위, 속도, 파손정도등등을 계산할 때 필요합니다. 또한 제어머신을 사용할 경우에도 많이 이용되고 있습니다.
그럼, dxf파일이란 무엇일까요?
dxf파일은 ASCII 텍스트 파일입니다. 이 파일은 다른 캐드시스템형식으로 쉽게 변환되며 처리할 수 있습니다. 전체 DXF파일은 블록정의, 선종류, 도면층정보,문자유형, 치수유형, 좌표계등등 모든 도면요소를 완전히 보존합니다.
오토캐드에서는 이진파일형식 ACIS솔리드, 사용자객체등의 DXF파일을 제공합니다. 자세한 것은 오토캐드의 도움말에 각각의 정의가 설명되어 있습니다. 이곳에서는 설명을 제외합니다.
dxf 파일 읽기
command : dxfin
dxf 파일 만들기
command : dxfout
dxf 파일은 많은 양의 정보를 표면상으로 가진다. 수동적으로 dxf 파일을 시험하는것은
무모하고 어리석은 일이다. dxf 파일은 프로그램에 의해 진행되면 쉽게 정보를 제작할
수 있다.
다음은 DXF의 파일구조이다.
File 구조
--------------------------------------------
0
{-------header부분의 시작--------------}
SECTION
2
HEADER
9
$ACADVER
1
AC1014 {---캐드 14버전임을 나타냄----}
9
$ACADMAINTVER
70
0
9
.
...
{-------- header variable items이 여기에 위치한다.-------------}
......
...
ENDSEC
{-------header부분의 끝--------------}
0
SECTION
2
TABLES
0
TABLE
2
VPORT
70
{---------------viewport table item이 여기에 위치함----------}
0
ENDTAB
0
TABLE
2
APPID, DIMSTYLE, LTYPE, LAYER, STYLE, UCS, VIEW, or VPORT
70
{-----------table maximum item count-------------}
0
ENDTAB
0
ENDSEC
0
SECTION
2
BLOCKS
{----------block definition entities가 여기에 위치함----------}
0
ENDSEC
0
SECTION
2
ENTITIES
{-----------drawing entities가 여기에 위치함-----------}
0
ENDSEC
0
EOF
다음은 일반적인 header부분의 코드이다.(변수가 많기 때문에 이곳에서는
일부분만을 설명한다. 나머지는 인터넷이나 기타질문바란다.)
--------------------------------------------
변수 | 코드 | 설명
--------------------------------------------
$ANGBASE 50 각도 0도 방향
$ANGDIR 70 1=시계방향 0=반시계방향
$DIMTXT 40 치수 기입TEXT높이
$EXTMAX 10,20,30 도면 LIMITS의 오른쪽 상단 코너(WCS)
$LUPREC 70 좌표와 거리에 알맞은 UNIT의 정밀도
$GRIDMODE 70 GRID의 XY간격
...
...
--------------------------------------------
다음은 TABLE부분이다. 테이블은 항상 대문자로 시작하며
4개의 테이블과 엔티티로 이루어진다. 각각의 테이블(APPID,
DIMSTYL,LTYPE,LAYER,STYLE,VIEW,UCS,VPORT등등)의
자세한 설명은 생략한다. 다음은 LTYPE의 일반적인 설명이다.
참고바란다.
LTYPE
3(LINETYPE의 기술), 72(정렬코드), 73(DASH길이 항목의 번호),
40(총 PATTERN길이), 49(DASH길이)...............
ENTITIES의 부분은 버전업되어가면서 바뀌므로 잘 살펴보아야한
다. 다음은 여러 엔티티중에서 솔리드에 설명을 한다. 설명하기에
양이 많기 때문에 나머지는 관련서적이나 인터넷을 통해 자료를
수집하기 바란다.
SOLIDE
솔리드의 모서리를 정의하는 4점((10,20,30),(11,21,31),(12,22,32),
(13,23,33))의 3점이 들어갔을 때만 솔리드 형성
----------------------------------------------
주의:
앞으로 설명할 오토캐드의 자동화는 autoLisp, vb에다가 dxf를 적절히 중첩하여 사용하여 이용한다는 것을 미리 알려드립니다. 즉 activeX에서 간단히 할 수 있는 작업은 activeX에서하고 그렇지 않은 작업의 데이터들은 DXF에서 얻어서 사용하는 것이 좋다는것을 미리 알려드립니다.
DXF INTERFACE PROGRAM작성법은 각자 알아서 해결해보시죠.
바로 activeX 자동화쪽을 공부한다면 분명히 한계에 걸리게 됩니다. 즉 DXF를 이해하고 사용하지 못한다면 activeX자동화는 걸음마 수준에서 벗어나지 못할 것입니다.
간단히 핸들링할 수 있고 조작할 수 있는 프로그램을 만들어 사용해보십시오.
이 점 유의하시고 DXF를 꼭 공부하시고 다음 activeX자동화쪽으로 넘어가시기 바랍니다.