DXFLib开发注解

DXFLib开发包注解

DXF格式文件时AutoCAD绘图交换文件,用于其他平台或者程序与CAD进行数据交互用的一种格式文件,在工程中十分常见。DXFLib是解析DXF格式图元的开源库文件,用C++实现。通过定义和实现了几个类及其方法来读取、解析和分类原CAD图形文件中的几乎所有元素(图层、点、直线、圆、标注、线型、线宽等)。结合DXFLib,网上已有许多开源代码用于实现程序对CAD文件的读取,但很少分析DXFLib里的结构流程的。笔者这段时间恰好开发完成这一模块,简单做个总结。

- 1.DXF文件格式

HEADERS——文件头域,表示图的总体信息,包括AutoCAD的文件版本号和一些系统变量;
CLASSES——类域,有关应用程序定义类的信息;
TABLES——表域,符号表的信息;
BLOCKS——块域,块定义和组成图形中每个块引用的图形图元;
ENTITIES——实体域,这部分是绘图实体,即图形中的图元,保存了真实的几何实体,还包括块引用,是DXF文件的主题部分;
OBJECTS——对象域,包括非图形对象的数据,可以使用AutoLISP或objectARx等二次开发程序读取;
THUMBNAILJMAGE——图形的预览信息;
EOF——表示DXF文件的结尾;

- 2.各类头文件及其作用

DL_Codes——定义各类常量,如版本、点、颜色等;
DL_Attributes——DXF文件属性,如图层、颜色、线宽、线型等;
DL_Entities——定义每个元素(直线、点、圆弧、圆等)的具体数据(结构体);
DL_Element——定义DXF中每个元素(类)
定义每个类的枚举变量及索引,如DL_Block, DL_Layer等;
属性private:DL_Type EleType; //元素类型
int indexofBlock; //元素所在块的索引
int indexofDXFlist; //DXFList中元素的索引值
DL_CreationInterface——抽象基类,定义各种方法接口(虚函数,不实现),如addLine(), addLayer(), addPoint()等;
DL_CreationAdapter——覆写DL_CreationInterface提供的接口(但同样不实现)
DL_Dxf——读写dxf文件,读取dxf文件中所有数据,分类添加到DXFList中;
用户自定义类:
DL_Data——覆写DL_CreationAdapter提供的接口,定义实现
定义方法:addtoList(): 添加元素到列表DXFList
addtoBlockList()
定义属性:
元素索引值:numofInset, numofPoint, numofLine, numofArc等;
元素列表:QList

- 3.元素类型定义

typedef int DLType; //Element类型
#define  DLUnkown       0
#define  DLLayer        1
#define  DLBlock        2
#define  DLPoint        3
#define  DLLine         4
#define  DLArc          5
#define  DLCircle       6
#define  DLEllipse      7
#define  DLPolyline     8
#define  DLVertex       9
#define  DLSpline       10
#define  DLControlPoint 11
#define  DLKnot         12
#define  DLInsert       13

- 4.读取DXF文件程序流程

变量定义:
DL_Data *dxfdata = new DL_Data(); //用户自定义类DL_Data
DL_Dxf *dxf = new DL_Dxf();
这里写图片描述

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_21107433/article/details/79967747
文章标签: DXFLib DXF AutoCAd
个人分类: Qt C++
上一篇6自由度串联机器人D-H建模方法
下一篇C++基本数据类型
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭