如何解码 .dxf 文件?

2023-12-14

我想将 .dxf 文件内的绘图转换为 g 代码。有一些工具可以做到这一点,但我想自己编写代码。因此,第一部分是解码 .dxf 格式。然而,.dxf 文件的内容看起来并不容易破译。

我下载了一个 .dxf 文件here并在文本编辑器中打开它。

我也指的是这个manual。看起来 .dxf 文件中的内容主要是样式和配置信息,我倾向于忽略几乎所有内容。所以,1. 如果有不应该省略的属性,您能指定一下吗?

As far as I know the figures are divided into multiple ENTITIES in a .dxf file. Therefore, I am only copy pasting the SECTION of ENTITIES. Note that there are 6 SECTIONS in the file and the last section (BLOCKS OBJECTS) is the longest one although I don't know what that part represents (Would be nice if you could explain).

在下面的代码中,10 和 20 应代表 X 和 Y 位置,42 应代表凸起。跟踪折线是可能的。我考虑使用 TITLES 作为导航点以及 10、20 和 42 等数字来从文件中提取信息。但是下面有两条折线。所以,2. 我应该考虑哪条折线,另一条折线的目的是什么?

  0
SECTION
  2
ENTITIES
  0
LWPOLYLINE
  5
72    # What
330   # are
1F    # these
100   # numbers?
AcDbEntity
  8
Layer 1
100
AcDbPolyline
 90
       12
 70
     1
 43    # Constant width (optional; default = 0)
0.0
 10
11.7511418685121
 20
14.9867256637168
 42
1.0
 10
3.31114186851211
 20
14.9867256637168
 10
-0.0132743362831871
 20
14.9867256637168
 10
-0.0132743362831871
 20
11.72
 42
1.0
 10
-0.0132743362831871
 20
3.28
 10
-0.0132743362831871
 20
0.0398230088495577
 10
3.28
 20
0.039823008849557
 42
1.0
 10
11.72
 20
0.0398230088495577
 10
15.0132743362832
 20
0.0398230088495577
 10
15.0132743362832
 20
3.28
 42
1.0
 10
15.0132743362832
 20
11.72
 10
15.0132743362832
 20
14.9867256637168
  0
LWPOLYLINE
  5
73
330
1F
100
AcDbEntity
  8
Layer 1
100
AcDbPolyline
 90
       12
 70
     1
 43
0.0
 10
12.6544611051008
 20
15.9867256637168
 10
16.0132743362832
 20
15.9867256637168
 10
16.0132743362832
 20
12.6233192365887
 42
-0.823684764724874
 10
16.0132743362832
 20
2.37668076341128
 10
16.0132743362832
 20
-0.960176991150442
 10
12.6233192365887
 20
-0.960176991150442
 42
-0.823684764724874
 10
2.37668076341128
 20
-0.960176991150443
 10
-1.01327433628319
 20
-0.960176991150442
 10
-1.01327433628319
 20
2.37668076341128
 42
-0.823684764724874
 10
-1.01327433628319
 20
12.6233192365887
 10
-1.01327433628319
 20
15.9867256637168
 10
2.40782263192339
 20
15.9867256637168
 42
-0.823684764724874
  0
ENDSEC

相关问题

  • 为了获得准确的 G 代码,需要考虑 .dxf 文件中的哪些字段?

最后一节(BLOCKS)是最长的,虽然我不知道 该部分代表什么(如果你能解释一下就好了)。

目的BLOCKS您参考的手册中总结了该部分:

The BLOCKS部分包含图形中每个块参考的条目。

将块视为一组实体,这些实体组合在一起作为一个元素。该块具有:

  • Origin
  • Rotation
  • Scale

这样的块是引用的在图画本身和每个instance该块的被称为INSERT.

所以当你走路时ENTITIES部分,然后您点击了INSERT实体,然后你必须找到它的handle in the BLOCK表并相应地处理元素。


有一些 DXF 代码对于许多实体来说都是通用的,并且它们并不总是与特定实体类型的信息一起列出(例如LWPOLYLINE).

看这个完整列表对于这些数字:

  • 5:实体句柄;最多 16 个十六进制数字的文本字符串(固定)

  • 330:软指针手柄;指向同一 DXF 文件或图形中其他对象的任意软指针。翻译期间INSERT and XREF运营

  • 100:子类数据标记(派生类名称为字符串)。对于派生自的所有对象和实体类都是必需的 另一个具体的类。子类数据标记隔离数据 由继承链中的不同类定义相同的 目的。这是对每个 DXF 名称的要求的补充 从 ObjectARX 派生的不同具体类(请参阅子类标记)

This page也很有用。


为什么有2个LWPOLYLINES首先,为什么它不仅仅是一个BLOCK-ENDBLK pair?

如果您阅读了有关的部分BLOCKS你会看到的:

模型空间和图纸空间块定义

三个空定义总是出现在BLOCKS部分。他们是 标题为*Model_Space, *Paper_Space and *Paper_Space0。这些定义 表现出以下的表征模型空间 and 纸张空间作为块 内部定义。第一个图纸空间的内部名称 布局是*Paper_Space,第二个是*Paper_Space0,第三个是 *Paper_Space1,等等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解码 .dxf 文件? 的相关文章

随机推荐

  • 使用 SAR 与 SHR 进行汇编时将二进制数右移

    我们知道 当我们将一个二进制数右移时 它会被2除 对于号码 1001 0001 我们假设存储在AX登记 如果我们将其视为无符号数 等于145十进制 SHR AX 1将使AX等于0100 1000这等于72十进制 这是正确的 但如果我们将其视
  • 调整 CSS 自定义鼠标光标的大小

    是否可以调整使用自定义图像 URL 的 CSS 鼠标光标的大小 例如 cursor url resources images custom cursor png auto 图像太大 我无法找到通过设置图像 URL 来设置其样式的方法 我知道
  • fftw3 逆变换不起作用

    我正在使用 fftw3 库在 c 中编写复杂到复杂的 DFT 的简单代码 我已经编写了一个包含输入数组双数据的文件 以便我可以与 matlab fft 函数进行比较 我尝试从变换数组执行反向变换 但结果和第一个输入数组不同 这是我的结果 F
  • 使 JSON Web 令牌失效

    对于我正在开发的一个新的 node js 项目 我正在考虑从基于 cookie 的会话方法进行切换 我的意思是 将 id 存储到包含用户浏览器中的用户会话的键值存储中 使用 JSON Web 令牌 jwt 的基于令牌的会话方法 无键值存储
  • 在 UNIX 中重命名批量文件

    我有一组文件如下 旧名称 1 txt 旧名称 1 pdf 旧名称 1 bak 等等 每个都有不同的扩展名 我需要将 oldname 重命名为 newname 所以我尝试了 rename v s oldname newname oldname
  • CURLOPT_FOLLOWLOCATION 不起作用

    我正在尝试通过此链接抓取数据 http www treasurydirect gov NP BPDLogin application np 其中包含元刷新 我正在使用curl exec 并将CURLOPT FOLLOWLOCATION 设置
  • 删除 StringBuilder 的最后一个字符?

    当您必须循环遍历集合并使用分隔符分隔每个数据的字符串时 最后总会有一个额外的分隔符 例如 for String serverId serverIds sb append serverId sb append 给出类似的东西 服务器Id 1
  • PHP JavaScript?当用户关闭页面或浏览器时执行某些操作[重复]

    这个问题在这里已经有答案了 可能的重复 如果用户关闭浏览器窗口或离开 php 页面 如何销毁会话 基本上我想通过更新我的 MySQL 数据库将我的用户设置为 离线 并可能在他们关闭浏览器或页面时结束他们的会话 我见过一个网站是这样做的 谁能
  • 如何消除不透明褪色中未使用的参数?

    element被调用但从未使用过 它们只是被传递回另一个函数调用 这看起来有点浪费 有更好的方法吗 初次通话 fadeUp document getElementById test 3000 将元素的不透明度淡化 3000 毫秒 funct
  • 主干模型中如何处理“更改”事件?

    我正在尝试构建一个动态更新 Meteor 项目中的会话变量的模型 我知道纯 JSON 不应该存储在骨干模型中 所以我设置了一个特殊模型 如下所示 initialize function Log the changed properties
  • Android中Thread.currentThread().getId()和Process.myTid()的区别

    据了解 myTid 返回调用线程的标识符 与 setThreadPriority int int 一起使用 但我发现Thread currentThread getId 不等于Process myTid 所以 我猜测前者是 JVM 版本的线
  • 生成字母表中的字母数组

    有没有一种简单的方法可以在 C 中生成包含字母表字母的数组 手工完成并不难 但我想知道是否有内置的方法可以做到这一点 我不认为有内置的方法 但我认为最简单的方法是 char alpha ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • MongoDB 不会使用 Mongoid 连接到 MongoHQ

    我刚刚开始一个全新的 Rails 项目 我想要完成的第一个任务是创建一个对象并将其保存在我的数据库中 我通过自动方式生成了一个对象 在本例中是一个 URL 对象 如下所示 rails generate scaffold Url domain
  • 如何在Mac上设置PYTHON_EGG_CACHE环境变量?

    我正在尝试设置 Django 以使用 MySQL 当我输入时出现以下错误localhost mysite ExtractionError at Can t extract file s to egg cache The following
  • Google Maps IOS SDK 1.2 需要地图视图快照

    在 1 1 中 GMSScreenshot 类提供了一种将整个屏幕的快照获取到 UIImage 中的基本方法 在 1 2 中 该类丢失了 在发行说明中 它是这样说的 在 GMSMapView 图层上调用 renderInContext 现在
  • 声明一个引用并稍后初始化?

    我有一些课程的参考MyObject 但确切的对象取决于条件 我想做这样的事情 MyObject ref if condition ref MyObject something else ref MyObject something else
  • Julia:使用许多不同但相关的算法选择来构建代码

    我正在寻找一种优雅的方式来重新安排我的代码 对于开发求解器 您可能会拥有许多具有相同设置的不同选项 例如 从高层次来看 代码看起来像这样 function solver Start by assigning a bunch of varia
  • REQUEST_DENIED 响应 Google Places API 请求 (sensor=true)

    我正在尝试使用 Google Places API 获取我所在位置周围的地点 以下是用于点击 URL 进行地点搜索的代码 NSString URL NSString stringWithFormat https maps googleapi
  • 在哪里/如何从 Google Maps API 获取多边形数据?

    我真的很想简短地回答这个问题 所以 我想知道谷歌地图是否拥有详细信息 在这种情况下我需要多边形 坐标数组 对于城市内的特定市政府 即Envigado在城市Medellin Co 有没有办法获取这种类型的数据 编辑 我不确定谷歌地图是否显示我
  • 如何解码 .dxf 文件?

    我想将 dxf 文件内的绘图转换为 g 代码 有一些工具可以做到这一点 但我想自己编写代码 因此 第一部分是解码 dxf 格式 然而 dxf 文件的内容看起来并不容易破译 我下载了一个 dxf 文件here并在文本编辑器中打开它 我也指的是