DXF BLOCK_RECORD和DICTIONARY的结构是什么?它是如何使用的



我正在创建一个功能,将数据转换为DXF文件。遗憾的是,由于限制,我无法使用现有的框架,所以我只是简单地尝试编写自己的框架。

我现在可以定义一个具有属性的块(一组形状和线(,并将其插入任何位置和方向。但我想通过为块创建可见性状态来添加额外的功能。由于这种复杂性,我认为我需要声明block_record和dictionary。

我可以参考DXF文档,该文档对要使用的各种组码进行了解释,但我找不到任何参考资料来解释这些代码是如何工作的。在AutoCAD中创建目标块,然后保存为DXF进行检查会变得困难,因为这是非常填充的。

我想做的是从AutoCAD生成的DXF中提取,这只是我使块发挥功能所需的组件。

从BLOCKS部分开始,我可以提取块的定义,但是它引用了几个字典,并且有不同的330组码。因此,我需要复制dictions部分,然而,对于一个空项目,这似乎有大约12000行,其中定义了一个块,但不在工作区中。我不知道如何提取我需要的东西,或者从头开始写基础知识。

任何指针都将被赞赏,因为阅读材料在这方面很薄弱。或者创建和使用具有可见性状态的块的最低要求的基本示例。

在这里(如何解码.dxf文件?(你会看到一个链接:

实体通用组码(DXF(

您提到了330。链接的网页提到:

330指向所有者BLOCK_RECORD对象的软指针ID/句柄。

如果你看一下BLOCK部分,它提到:

5句柄

如果没有示例DXF,很难提供更多信息,但总的来说:

  1. 图形应具有定义BLOCKBLOCK记录。并且它将具有唯一的Handle
  2. 然后,图形将具有该块的实例,称为INSERT实体,这些实例将通过330标识BLOCK定义

这就是我理解块在DWG/DXF文件中工作的方式。


我没有验证我对330的理解是否正确。我需要检查一下你的DXF文件

最新更新