dxf是什么文件格式(dxf是什么文件格式怎么打开)

dxf是什么文件格式?
DXF是一种开放的矢量数据格式,可以分为两类:ASCII格式和二进制格式;ASCII具有可读性好的特点,但占用的空间较大;二进制格式则占用的空间小、读取速度快。由于AutoCAD是最流行的CAD系统,DXF也被广泛使用,成为事实上的标准。
绝大多数CAD系统都能读入或输出DXF文件。
DXF文件是由很多的“代码”和“值”组成的“数据对”构造而成,这里的代码称为“组码”(group code),指定其后的值的类型和用途。每个组码和值必须为单独的一行的。DXF文件被组织成为多个“段”(section),每个段以组码“0”和字符串“SECTION”开头,紧接着是组码“2”和表示段名的字符串(如HEADER)。段的中间,可以使用组码和值定义段中的元素。
段的结尾使用组码“0”和字符串“ENDSEC”来定义。DXF-Drawing Exchange File(图形交换文件),这是一种ASCII文本文件,它包含对应的DWG文件的全部信息,不是ASCII码形式,可读性差,但用它形成图形速度快。不同类型的计算机(如PC及其兼容机与SUN工作站具体不同的CPU用总线)哪怕是用同一版本的文件,其DWG文件也是不可交换的.为了克服这一缺点,AutoCAD提供了DXF类型文件,其内部为ASCII码,这样不同类型的计算机可通过交换DXF文件来达到交换图形的目的,由于DXF文件可读性好,用户可方便地对它进行修改,编程,达到从外部图形进行编辑和修改的目的。
文件结构ASCII格式的DXF可以用文本编辑器进行查看。DXF文件的基本组成如下所示:HEADER部分-图的总体信息。每个参数都有一个变量名和相应的值。
CLASSES部分-包括应用程序定义的类的信息,这些实例将显示在BLOCKS、ENTITIES以及OBJECTS部分。通常不包括用于充分用于与其它应用程序交互的信息。TABLES部分-这部分包括命名条目的定义。
DXF是什么格式?DXF文件怎么打开?
DXF格式文件是一个开源的CAD(计算机辅助设计)数据文件格式(一种矢量图像文件)。 它是由Autodesk公司在1982年推出,DXF格式文件使AutoCAD的2D和3D图形数据可以和在其他程序之间相互使用。
1982年从那时起,Autodesk AutoCAD的DXF格式已被更新了好几次,最新版本同时支持ASCII和二进制形式。
新版本能够向下兼容,这意味着无论DXF格式是何时的,它都能被最新版的CAD软件打开。DXF格式文件组成DXF文件按以下顺序是由几个部分组成:标题段(包含绘图的一般信息)、类(包含应用程序定义的信息)、表段(包含项目的定义)、块段(包含实体的描述)、实体段(包含绘图实体)、对象(包含数据的非图形对象)、以及一个包含图像预览的部分组成。DXF文件的结构相当复杂,完整读取DXF文件也是一项异常繁琐的工程。在实际应用中,为了提取图形的实体信息,可以省略DXF文件中的许多项,只要获取其中的层表、块段和实体段,就可以完成相应几何图形的描述。
在层表中说明每一层的颜色、线型,在块段中说明块所在的层、属性及其在图形中的位置,在实体段中说明直线的起点、终点及圆的圆心、半径等几何信息和各实体所在的层。根据实体所在的层,在层中搜索每一层的颜色、线型并将其添加到实体对象中。怎么打开DXF文件DXF格式文件已经接受并广泛使用在各个行业,因为大多数程序都支持这种格式。
其中在Windows、苹果Mac OX X、Linux三大个人电脑操作系统以及Android(安卓)移动系统下都有很多程序可以打开DXF文件,就如下面所展示的那样:WindowsAutodesk AutoCAD 2013Autodesk DWG TrueViewAutodesk Design Review中望CADIMSI TurboCAD Deluxe 18IMSI DoubleCAD XT Pro v3AutoDWG DWGSeeCorelCADACD Systems Canvas 14OpenOffice.org(开源)Adobe Illustrator CS6Serif DrawPlus X5Dassault Systemes SolidWorks eDrawings ViewerCADSoftTools ABViewer苹果Mac OX XAutodesk AutoCAD 2013IMSI TurboCAD Deluxe v6CorelCADprogeCAD iCADMacMicrospot DWG ViewerDassault Systemes SolidWorks eDrawings ViewerEngineered Software PowerCADDPlanamesa NeoOfficeOpenOffice.orgAdobe Illustrator CS6Adobe Flash Professional CS6Cheetah3DLinuxOpenOffice.orgCADEMIAAndroid(安卓)AutoDWG DWGSee上面所提供的这些打开DXF文件的链接地址是软件的官方或者正版销售渠道。当然,每款软件网上应该都有很多中文破解版、绿化版等版本的下载链接,您可以通过百度或者谷歌来发现他们。
DXF是什么
可以将图形输出为 DXF(图形交换格式)文件。 DXF 文件是文本或二进制文件,其中包含可由其他 CAD 程序读取的图形信息。
如果其他用户正使用能够识别 DXF 文件的 CAD 程序,那么以 DXF 文件保存图形就可以共享该图形。
控制DXF 格式的浮点精度最多可达 16 位小数,并可以 ASCII 格式或二进制格式保存该图形。 如果使用 ASCII 格式,将生成可读取和编辑的文本文件;如果使用二进制格式,生成的文件会小的多,且使用该文件时速度较快。
DXF是什么文件
DXF(AutodeskDrawingExchangeFormat)是AutoCAD中的矢量文件格式,它以ASCII码方式存储文件,在表现图形的大小方面十分精确。许多软件都支持DXF格式的输入与输出。
dxf是什么文件格式
dxf最初是Autodesk公司开发的用于AutoCAD与其它软件之间进行CAD数据交换的文件格式,是一种开源的CAD数据文件格式。dxf文件是一种矢量图像文件,是以二进制格式保存的,分为ASCII格式和二进制格式。
两者格式区别就是占用空间大小的区别。
dxf文件是 由很多代码和值组成的,指定其后的值的类型和用途。每个组码和值必须为单独的一行的。dxf文件使用任何制图软件都可以打开,方法就是(文件--导入),注意不是用打开的方式而是导入!ASCII格式的dxf文件可以用文本编辑器进行查看,比如DWG/DWF/DXF查看器,Free DWG Viewer。
DXF格式文件数据提取
图元信息提取: 下面具体介绍该工程中读取的几种图元。 对图元信息的提取需要结合DXF参考手册以及库文件(主要涉及【dl_entities.h】和【dl_dxf.cpp】),选取实际所需数据进行自定义图元信息构造,比如说绘制二维平面图形,则不需要z轴坐标,此时只需要读取data中x,y值即可,而在绘制ARC时,需要考虑到OCS到WCS的变化,而库文件读取的data中没有涉及到拉伸方向的读取,所以此时需要对库文件进行一定修改,也主要是修改前面提及到的两个文件(这一点将在介绍绘制ARC时进行具体介绍) 首先在库文件【dl_entities.h】中可以看到每一种图元信息数据格式的定义,每一个数据代表的具体信息在【dl_dxf.cpp】中可以看到它的组码,再结合DXF参考手册,就可以理解数据含义并进行绘制。
【POINT】 void MyDXFReader::addPoint(const DL_PointData & data) { } 点的构造非常简单,只需要data.x, data.y 【LINE】 void MyDXFReader::addLine(const DL_LineData & data) { } 线的构造也非常简单,直接读取开始点和结束点,组成一条线,data.x1, data.y1; data.x2, data.y2 【CIRCLE】 void MyDXFReader::addCircle(const DL_CircleData & data) { } 圆的构造需要圆心和半径。
读取data.cx, data.cy,data.radius 【ELLIPSE】 void MyDXFReader::addEllipse(const DL_EllipseData & data) { } 椭圆的构造需要中心点,相对于中心点的主轴点,起始角和终止角(非整椭圆)所以读取的参数有data.cx, data.cy,data.mx, data.my,data.angle1, data.angle2 【ARC】 void MyDXFReader::addArc(const DL_ArcData& data) { } 圆弧所需数据主要有圆心,半径,起始角,终止角以及三个方向的拉伸方向值。因为其中心点是在OCS中表示的坐标值,而在绘制时应该使用WCS,所以此时需要根据拉伸方向进行坐标转换。对于拉伸方向的值原dxflib库并没有进行提取,直接认为使用的是默认值。所以需要自行在DL_ArcData构造函数和读取函数中进行值的添加。
【文档参考】 【OCS与WCS介绍】http://bbs.xdcad.net/forum.php?mod=viewthread&tid=667490&highlight=trans 【OCS到WCS的具体转换】 文献:潘晓. 基于CAD图的提取运动控制信息方法的研究与实现[D]. 燕山大学, 2006.(重要) 参考上述文献中的算法就能够进行坐标的转换。 【POLYLINE 和 LWPOLYLINE】 void MyDXFReader::addPolyline(const DL_PolylineData& data) { } void MyDXFReader::addVertex(const DL_VertexData& data) { } 在dxflib库中多段线图元和优化多段线图元均是通过这两者读出,首先在addPolyline(const DL_PolylineData& data)中获得点数(data.number)和标志位(data.flags),其中点数表示了addVertex中的点数,而标志位则表示了该多段线的闭合。需要注意的是在读写LWPOLYLINE时所构成的点需要考虑点的凸度,如果凸度不为0,则需要进行弧的绘制。
查看参考手册可知,此时也需要考虑坐标点OCS到WCS的转换。 【文档参考】 【DXF文件中将多段线凸度转换成圆弧】https://blog.csdn.net/eickandy/article/details/48317855 【DIMENSION】 DXF文件中有多种标注。根据DXF参考手册可以为每种标注构造相应结构。
标注的绘制主要是得到插入点与插入值,然后再结合标注点绘制出标注信息。 比如对齐标注。 void MyDXFReader:: addDimAlign(const DL_DimensionData & data1, const DL_DimAlignedData & data2) { } 由DXF参考手册可知其标注插入点为data1.dpx, data1.dpy,插入值的中点为data1.mpx,data1.mpy。
再由data2得到标注点信息data2.epx1, data2.epy1和data2.epx2, data2.epy2。再根据DXF参考手册该页面最下面提供给的标注图形参考,既可绘制出标注信息。其他几个标注类似于此进行添加。 【TEXT和MTEXT】 对于文本信息的添加,TEXT指单行文本,MTEXT指多行文本。
在本工程中只读出了文本内容并显示在所指定处,并不设定其相应文本样式。下面简单介绍添加多行文本。 void MyDXFReader::addMText(const DL_MTextData & data) { } 主要读取插入点data.ipx, data.ipy以及文本内容data.text。然后将文本显示在指定点附近。
【INSERT】 对于插入块的读取,需要借助于Block段的读取,即将所有的Block进行存储,在插入块时,遍历存储的Block,找到对应名字的块进行插入,因为块中的图元与实体段中的图元种类类似,所以本工程将实体段中的图元与块段中的图元进行分别存储,只有插入块的图元能够被绘制,而实体段中所有的图元都将被绘制。 void MyDXFReader::addInsert(const DL_InsertData & data) { } void MyDXFReader:: addBlock(const DL_BlockData & data) { } 选取data.name,遍历存储的Block,找到需要插入的块。
本文由“鬼偶”发布,不代表“写客百科”立场,转载联系作者并注明出处:https://www.ixieke.com/zonghe/199090.html
