zoukankan      html  css  js  c++  java
  • DXF文件格式理解

    所有文件格式都有一个规范,该规范描述了文件中信息的编码方式—字节排列方式,计算机如何加载文件等等。
    DXF文件格式是矢量图形文件格式,其详细说明了如何表示不同的图形元素。
    DXF是一个矢量图形文件,它捕获CAD图形的所有元素,例如文本,线条和形状。更重要的是,DXF是用于在CAD应用程序之间传输数据的图形交换文件。
    然后,每个CAD程序都会解释这组指令,并复制您的矢量图。
    它的创建者AutoDesk发布了这些官方文件规范文档,这些文档定义了定义DXF文件的语法(或一组规则)。
    在本文中,我将介绍DXF文件的基本设置和规范。
    使用组代码和值表示数据
    DXF文件中的每个变量都与一个组码相关联(组码的范围从1到1071)。
    每个组代码都在特定情况下使用,并包含特定类型的信息。
    例如,组代码2用于名称,例如节的名称或块的名称。
    组代码0表示实体的开头或文件的结尾。
    与每个变量关联的值存储为整数,浮点数或字符串。例如,线的长度存储为整数,而点坐标存储为浮点数。
    文件结构
    DXF文件分为几个部分:每个部分都由记录组成,而记录又由组代码和关联的数据值组成。
    您可以按以下顺序在DXF文件中找到以下部分:

    部分 基本描述
    Header 本部分包含有关图形的常规信息。就像您手机中的“设置”功能一样,该功能包含与图形关联的不同变量及其关联的值。例如,“标题”部分将定义DXF文件使用的AutoCAD版本($ ACADVER变量)或用于测量文件角度的单位($ AUNITS变量)。
    Classes CLASSES部分保存有关应用程序定义的类的信息,这些类的实例出现在数据库的BLOCKS,ENTITIES和OBJECTS部分中。
    Tables 本部分包含几个不同表的定义,每个表都包含许多不同的符号条目。例如,线型表(LTYPE)定义了DXF文件中的破折号,点,文本和符号的样式以及它们的缩放比例。以下是在该部分中找到的表的完整列表:
    • 应用程序ID(APPID)
    • 表块记录(BLOCK_RECORD)
    • 表尺寸样式(DIMSTYPE)
    • 表图层(LAYER)
    • 表线型(LTYPE)
    • 表文字样式(STYLE)
    • 表格用户坐标系(UCS)
    • 表查看(VIEW)
    • 表视口配置(VPORT)表
    Blocks 本部分包含构成图形中每个块参考的图形对象和图形实体。
    Entities 本部分包含图形的实际对象数据图形实体。这可以包括原始数据,例如,圆实体是由其厚度,中心点,其半径和拉伸方向定义的。
    Objects 在这里,您将找到图形的非图形部分。例如,AutoCAD词典存储在此处。














    DXF文件演练
    假设我们是一台计算机,然后一起“读取”了DXF文件。实际上,您可以使用任何文本编辑器(例如记事本)打开DXF文件,并且信息将以这种方式显示。

    下图描述了DXF的数据接口解析流程,可参考https://www.cnblogs.com/xyb930826/p/4493373.html

    DXF文件格式是开源文件格式!这意味着,每位希望读取或写入DXF文件的开发人员均可免费在线获取官方DXF规范文档
    DXF文件的开放性使其成为CAD世界中如此受广泛支持的图形文件。
    关于版本
    DXF文件规范因版本而异。每个发行版中都进行了微小的更改,例如添加了新类型的图形元素和组代码。
    较新的程序通常可以读取较旧的文件,而较旧的程序则不能读取较新的文件。
    例如,一个AutoCAD 2010用户可以读取2006 DXF文件,但不能读取2012 DXF文件。
    这些频繁的更新可能会导致兼容性问题。如果您在读取DXF文件时遇到错误,则可能是编写该特定DXF文件的程序使用了较旧的规范文档。
    某些应用程序还会跳过不支持的功能-请注意,导出和导入DXF文件时不要丢失任何信息!

    确实,DXF文件格式是一种难以解释的格式,主要是因为它包含了许多不同类型的数据。
    但是,它的结构使得开发人员和程序可以阅读他们需要的部分,并跳过他们不需要的元素。

    关于DXF文件大小
    简而言之,因为它们是矢量文件,并且矢量由一系列有关如何创建最终图像的数学指令组成,例如一条线,两个X坐标横越三个Y坐标向下。
    使用渲染应用程序和CAD软件,可以多次绘制这些图像。
    您还可以在图形中编辑单个元素,因为每个元素都保存在单独的图层中。
    矢量文件的大小保持不变,而不管图形的最终大小如何。更好的是,可以扩大矢量文件而不会降低质量。
    您经常会发现将公司徽标,剪贴画,字体和地图等图像保存为矢量文件。
    但是,矢量图形文件的大小取决于复杂程度。如果图形中有很多“对象”,则将需要更多的数学算法来渲染此图像。

    DXF文件格式是开源的CAD数据文件格式。这意味着文件规范的源代码已发布,任何人都可以使用。
    DXF文件格式由AutoDesk维护,后者每几年发布一次新版本。
    DXF的开放源代码性质使几乎每个CAD程序都可以支持它

    关于DXF文件的导入导出
    每次DXF导出都会降低数据质量
    某些CAD程序可能会在跳过不支持的功能时读取DXF文件。这可能会导致用户丢失信息的方式丢失信息。
    一旦数据丢失,就很难再次恢复数据质量。
    您应注意以下几个情况:

    • DXF文件格式不能处理颜色或线条样式;而是保存“笔号”。如果您将数据导入DXF格式,则DXF文件的外观将永远与原始数据完全不同。
    • DXF文件无法处理样条,样条是没有定义半径的复杂曲线。导入数据时,样条线将分为许多短的直线。
    • 旋转,移动和缩放比例会影响DXF导入/导出的准确性。

    因此,将单独的图形文件导出为DXF时应格外小心。如果要将图像或PDF转换为DXF,请务必查看有关转换DXF文件的部分,以了解如何获得最佳质量的转换。

    总结
    因此,如果您是喜欢使用与AutoCAD不同的软件,则DXF文件格式是理想的解决方案-您将很难找到不支持它的CAD软件包。
    如果要与他人共享CAD文件,并且不确定他们是否具有AutoCAD,则最好发送DXF。
    与DWG不同,DXF不是二进制文件,它们由字母和数字组成,因此您面临的文件更大。
    此外,它们不支持AutoCAD的某些特定CAD元素,例如动态块。
    因此,在AutoCAD等程序中打开DXF时,您可能会丢失数据。

  • 相关阅读:
    CentOS开发环境LAMP搭建
    Oracle中*.dpm文件导入
    SQL Server查询数据库中所有的表名及行数
    SQL Server数据库同步SQL
    Vim 快捷键整理
    SQL Server解决死锁问题
    python重试装饰器的简单实现
    神奇的描述符(三):覆盖描述符与非覆盖描述符
    神奇的描述符(二):使用描述符实现实例属性的类型检查
    神奇的描述符(一):描述符协议的实现
  • 原文地址:https://www.cnblogs.com/MakeView660/p/12341337.html
Copyright © 2011-2022 走看看