CDxfFileWrite类,用CabLib创建DXF(绘图交换格式)文件
来源:互联网 发布:java修改xml节点内容 编辑:程序博客网 时间:2024/06/06 03:44
介绍
什么是DXF
绘图交换格式(DXF)文件允许在AutoCAD和其它程序进行图形交换。DXF文件即可以是ASCII格式也可以是二进制格式。 因为ASCII格式的DXF文件比二进制格式更加通用,所以CadLib使用ASCII的DXF格式。
什么是CadLib
CadLib不是计算机辅助设计(CAD)程序。它是创建用于CAD程序DXF文件的工具。它由两部分组成,一部分是用于创建DXF文件的动态链接库,另一部分是编程接口,该类封装了cadio.dll中的函数,可以在Microsoft Visual C++项目中使用。另外,cadio.dll 也可以用于其它Win32编程中。
为什么使用CadLib
一些程序需要输出可以被AutoCad等程序使用的图形文件,例如,在一个"发动机设计程序"中,程序需要输出图形,而最常用的交换数据的图形格式便是DXF。
DXF文件结构
DXF文件格式是图形文件中所有信息的标签数据描述。标签数据指的是文件中的被称为群码的整型数据前的每个数据项。 群码的值指示了下面数据的数据类型以及数据单元的含义。事实上图形文件中所有用户特殊信息都可以描述为DXF格式。(参考AutoCad的DXF参考说明)
DXF文件由许多区域组成,每个区域里有许多图形数据,CadLib可以使用如下区域:
1. 头部 HEADER
2. 表格 TABLES
3. 区块 BLOCKS
4. 实体 ENTITIES
CadLib中的DXF文件结构参考AutoCad中的DXF格式说明,具体可以在下面网址找到参考:
http://www.autodesk.com/techpubs/autocad/acad2000/dxf/dxf_format.htm
http://www.martinreddy.net/gfx/3d/DXF12.spec
类:这里的类是CadIO.dll和主程序之间的接口。"Test"演示了如何用CadLib中的CDxfFileWrite和CDrawing类创建DXF文件。
CDxfFileWrite类
CDxfFileWrite封装了直接创建DXF文件的所有命令。使用方法如下:
1. 创建DXF文件
CDxfFileWrite dxffile;
dxffile.Create(
"d:\test.dxf"
);
// Header Section ------------------------------------------
dxffile.BeginSection(SEC_HEADER);
dxffile.EndSection();
// close HEADER section -----------------------------------
// Tables Section ------------------------------------------
dxffile.BeginSection(SEC_TABLES);
// LTYPE table type -------------------------
dxffile.BeginTableType(TAB_LTYPE);
DXFLTYPE ltype;
double
elem[4];
// Continuous
ZeroMemory(<ype,
sizeof
(ltype));
ltype.Name =
"Continuous"
;
ltype.DescriptiveText =
"Solid line"
;
dxffile.AddLinetype(<ype);
// DASHDOT2
ZeroMemory(<ype,
sizeof
(ltype));
ltype.Name =
"DASHDOT2"
;
ltype.DescriptiveText =
"Dash dot (.5x) _._._._._._._._._._._._._._._."
;
ltype.ElementsNumber = 4;
ltype.TotalPatternLength = 0.5;
ltype.Elements = elem;
elem[0] = 0.25;
elem[1] = -0.125;
elem[2] = 0.0;
elem[3] = -0.125;
dxffile.AddLinetype(<ype);
dxffile.EndTableType();
// close LTYPE table type -------------------
// LAYER table type -------------------------
result &= dxffile.BeginTableType(TAB_LAYER);
result &= dxffile.AddLayer(
"Layer1"
, 1,
"Continuous"
);
result &= dxffile.AddLayer(
"Layer2"
, 2,
"Continuous"
);
result &= dxffile.AddLayer(
"Layer3"
, 3,
"Continuous"
);
result &= dxffile.AddLayer(
"Layer4"
, 4,
"Continuous"
);
result &= dxffile.EndTableType();
// close LAYER table type -------------------
// STYLE table type -------------------------
dxffile.BeginTableType(TAB_STYLE);
DXFSTYLE tstyle;
ZeroMemory(&tstyle,
sizeof
(tstyle));
tstyle.Name =
"Style1"
;
tstyle.PrimaryFontFilename =
"TIMES.TTF"
;
tstyle.Height = 0.3;
tstyle.WidthFactor = 1;
dxffile.AddTextStyle(&tstyle);
dxffile.EndTableType();
// close STYLE table type -------------------
// DIMSTYLE table type ----------------------
dxffile.BeginTableType(TAB_DIMSTYLE);
DXFDIMSTYLE dimstyle;
// DIM1
ZeroMemory(&dimstyle,
sizeof
(dimstyle));
dimstyle.Name =
"DIM1"
;
// DimStyle Name
dimstyle.DIMCLRD = 2;
// Dimension line & Arrow heads color
dimstyle.DIMDLE = 0.0000;
// Dimension line size after Extensionline
dimstyle.DIMCLRE = 2;
// Extension line color
dimstyle.DIMEXE = 0.1800;
// Extension line size after Dimline
dimstyle.DIMEXO = 0.0625;
// Offset from origin
dimstyle.DIMBLK1 =
"ClosedFilled"
;
// 1st Arrow head
dimstyle.DIMBLK2 =
"ClosedFilled"
;
// 2nd Arrow head
dimstyle.DIMASZ = 0.1800;
// Arrow size
dimstyle.DIMTXSTY =
"Style1"
;
// Text style
dimstyle.DIMCLRT = 3;
// Text color
dimstyle.DIMTXT = 0.1800;
// Text height
dimstyle.DIMTAD = 1;
// Vertical Text Placement
dimstyle.DIMGAP = 0.0900;
// Offset from dimension line
dxffile.AddDimStyle(&dimstyle);
dxffile.EndTableType();
// close DIMSTYLE table type ----------------
dxffile.EndSection();
// close TABLES section ------------------------------------
- CDxfFileWrite类,用CabLib创建DXF(绘图交换格式)文件
- CDxfFileWrite类,用CabLib创建DXF(绘图交换格式)文件
- 数据交换文件DXF简单java解析
- 使用OGR创建dxf格式矢量数据
- 关于CAD文件 DXF格式的理解
- 关于CAD文件 DXF格式的理解
- AltiumDesigner导入AutoCAD文件DXF,DWG格式
- dwg文件怎么转为dxf格式
- dwg文件快速转为dxf格式
- cad文件怎么转为dxf格式?
- 用C读取DXF文件
- 用C读取DXF文件
- 用C读取DXF文件
- 用C读取DXF文件
- dwg文件转为dxf的格式怎么转
- DXFLIB,DXF格式 笔记
- GDAL/OGR创建DXF文件中多图层的方法
- GDAL/OGR创建DXF文件中多图层的方法 .
- 将oracle数据库从windows导入到aix中的操作 .
- 正则表达式 ———— 大全
- 一条经典的处理语句
- Android 横竖屏切换问题
- Lua脚本在C++下的舞步
- CDxfFileWrite类,用CabLib创建DXF(绘图交换格式)文件
- Quartz 2D 参考-文本
- asp邮件发送代码,已测试
- 关于各种编码
- Office日常应用之PPT
- U-Boot编译过程完全分析
- Java静态检测工具的简单介绍 - Sonar、Findbugs
- IPhone之NSFileManager的使用
- js判断浏览器版本(IE,FF,Chrome,Opear,Safari)