我想将 .dxf 文件中的图纸转换为 g 代码。有工具可以做到这一点,但我想自己编写代码。因此,第一部分是解码 .dxf 格式。然而,.dxf 文件的内容看起来并不容易破译。
我在这里下载了一个 .dxf 文件并在文本编辑器中打开它。
我也指的是这本手册。看起来 .dxf 文件中的内容主要是样式和配置信息,我倾向于省略几乎所有内容。那么,1.你能指定不应该省略的属性吗?
据我所知,这些数字在 .dxf 文件中分为多个实体。因此,我只是复制粘贴实体部分。请注意,文件中有 6 个部分,最后一部分(块对象)是最长的部分,尽管我不知道那部分代表什么(如果你能解释一下就好了)。
在下面的代码中,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