最小的 dxf R13
minimal dxf R13
所以...根据 this 网页,我创建了一个空的 dxf 文件并且它可以工作,但是一旦我包含一个 MText 实体,autocad 就会抛出以下错误
GroupTable dictionary was not defined in NamedObject dictionary
Invalid or incomplete DXF input -- drawing discarded.
所以我的问题是:
1- 我可以信任该页面吗?该页面上的信息是否正确?
2- 对象部分需要的最后一个实体是什么?
3-我做错了什么?
0
SECTION
2
HEADER
9
$ACADVER
1
AC1024
9
$HANDSEED
5
FFF
0
ENDSEC
0
SECTION
2
CLASSES
0
ENDSEC
0
SECTION
2
TABLES
0
TABLE
2
VPORT
5
1
330
0
100
AcDbSymbolTable
70
1
0
VPORT
5
2
330
8
100
AcDbSymbolTableRecord
100
AcDbViewportTableRecord
2
*Active
70
0
10
0.0
20
0.0
11
1.0
21
1.0
12
0.9778937033030414
22
-0.0911774291574901
13
0.0
23
0.0
14
0.5
24
0.5
15
0.5
25
0.5
16
0.0
26
0.0
36
1.0
17
0.0
27
0.0
37
0.0
40
1.97341154280437
41
2.161781285231116
42
50.0
43
0.0
44
0.0
50
0.0
51
0.0
71
0
72
1000
73
1
74
3
75
0
76
0
77
0
78
0
281
0
65
1
110
0.0
120
0.0
130
0.0
111
1.0
121
0.0
131
0.0
112
0.0
122
1.0
132
0.0
79
0
146
0.0
348
2F
60
3
61
5
292
1
282
1
141
0.0
142
0.0
63
250
421
3355443
1001
ACAD_NAV_VCDISPLAY
1070
1
0
ENDTAB
0
TABLE
2
LTYPE
5
3
330
0
100
AcDbSymbolTable
70
3
0
LTYPE
5
4
330
5
100
AcDbSymbolTableRecord
100
AcDbLinetypeTableRecord
2
ByBlock
70
0
3
72
65
73
0
40
0.0
0
LTYPE
5
5
330
5
100
AcDbSymbolTableRecord
100
AcDbLinetypeTableRecord
2
ByLayer
70
0
3
72
65
73
0
40
0.0
0
LTYPE
5
6
330
5
100
AcDbSymbolTableRecord
100
AcDbLinetypeTableRecord
2
Continuous
70
0
3
Solid line
72
65
73
0
40
0.0
0
ENDTAB
0
TABLE
2
LAYER
5
7
330
0
100
AcDbSymbolTable
70
1
0
LAYER
5
8
330
2
100
AcDbSymbolTableRecord
100
AcDbLayerTableRecord
2
0
70
0
62
7
6
Continuous
370
-3
390
F
347
21
0
ENDTAB
0
TABLE
2
STYLE
5
9
330
0
100
AcDbSymbolTable
70
2
0
STYLE
5
A
330
3
100
AcDbSymbolTableRecord
100
AcDbTextStyleTableRecord
2
Standard
70
0
40
0.0
41
1.0
50
0.0
71
0
42
0.2
3
txt
4
0
ENDTAB
0
TABLE
2
VIEW
5
B
330
0
100
AcDbSymbolTable
70
0
0
ENDTAB
0
TABLE
2
UCS
5
C
330
0
100
AcDbSymbolTable
70
0
0
ENDTAB
0
TABLE
2
APPID
5
D
330
0
100
AcDbSymbolTable
70
5
0
APPID
5
E
330
9
100
AcDbSymbolTableRecord
100
AcDbRegAppTableRecord
2
ACAD
70
0
0
APPID
5
F
330
9
100
AcDbSymbolTableRecord
100
AcDbRegAppTableRecord
2
AcadAnnotative
70
0
0
APPID
5
10
330
9
100
AcDbSymbolTableRecord
100
AcDbRegAppTableRecord
2
ACAD_NAV_VCDISPLAY
70
0
0
APPID
5
11
330
9
100
AcDbSymbolTableRecord
100
AcDbRegAppTableRecord
2
ACAD_EXEMPT_FROM_CAD_STANDARDS
70
0
0
APPID
5
12
330
9
100
AcDbSymbolTableRecord
100
AcDbRegAppTableRecord
2
ACAD_MLEADERVER
70
0
0
ENDTAB
0
TABLE
2
DIMSTYLE
5
13
330
0
100
AcDbSymbolTable
70
2
100
AcDbDimStyleTable
71
0
0
DIMSTYLE
105
14
330
A
100
AcDbSymbolTableRecord
100
AcDbDimStyleTableRecord
2
Standard
70
0
340
55
0
ENDTAB
0
TABLE
2
BLOCK_RECORD
5
15
330
0
100
AcDbSymbolTable
70
1
0
BLOCK_RECORD
5
16
330
1
100
AcDbSymbolTableRecord
100
AcDbBlockTableRecord
2
*Model_Space
340
74
70
0
280
1
281
0
0
BLOCK_RECORD
5
17
330
1
100
AcDbSymbolTableRecord
100
AcDbBlockTableRecord
2
*Paper_Space
340
70
70
0
280
1
281
0
0
ENDTAB
0
ENDSEC
0
SECTION
2
BLOCKS
0
BLOCK
5
1B
330
71
100
AcDbEntity
8
0
100
AcDbBlockBegin
2
*Model_Space
70
0
10
0.0
20
0.0
30
0.0
3
*Model_Space
1
0
ENDBLK
5
1C
330
71
100
AcDbEntity
8
0
100
AcDbBlockEnd
0
BLOCK
5
1D
330
6D
100
AcDbEntity
67
1
8
0
100
AcDbBlockBegin
2
*Paper_Space
70
0
10
0.0
20
0.0
30
0.0
3
*Paper_Space
1
0
ENDBLK
5
1E
330
6D
100
AcDbEntity
67
1
8
0
100
AcDbBlockEnd
0
ENDSEC
0
SECTION
2
ENTITIES
0
MTEXT
5
18
100
AcDbEntity
8
0
100
AcDbMText
10
2.73902
20
2.480626
30
0.0
40
0.2
41
5.0
71
1
72
5
1
{\fArial|b0|i0|c178|p34;\U+FE90\U+FEB4\U+FB7C\U+FEAE\U+FE91}
73
1
44
1.0
0
MTEXT
5
19
100
AcDbEntity
8
0
100
AcDbMText
10
-3.37209
20
2.054275
30
0.0
40
0.2
41
5.0
71
1
72
5
1
{\fArial|b0|i0|c178|p34;\U+FE90\U+FEB4\U+FB7C\U+FEAE\U+FE91}
73
1
44
1.0
0
MTEXT
5
1A
100
AcDbEntity
8
0
100
AcDbMText
10
0
20
0
30
0.0
40
0.2
41
5.0
71
1
72
5
1
{\fArial|b0|i0|c178|p34;\U+FE90\U+FEB4\U+FB7C\U+FEAE\U+FE91}
73
1
44
1.0
0
ENDSEC
0
SECTION
2
OBJECTS
0
DICTIONARY
5
1F
330
0
100
AcDbDictionary
3
ACAD_GROUP
350
20
0
DICTIONARY
5
20
102
{
ACAD_REACTORS
330
C
102
}
330
C
100
AcDbDictionary
0
ENDSEC
0
EOF
我从另一个文件复制了除句柄之外的所有数字,我应该自己插入所有数字吗?如果可以,是否有我可以使用的最小值或最大值?
如果还有什么需要解释的,请告诉我
你提到的页面似乎有点稀疏(但我没看多久)。
看看官方dxf参考:http://www.autodesk.com/techpubs/autocad/dxf/reference/
通过快速扫描,您正在定义一个字典,其中(应该)包含一个句柄为 39 的对象(5-39 就在字典下面),然后您结束该部分而不定义对象...
我是ezdxf的作者
如错误消息所述,您必须添加一个名为 ACAD_GROUP 的根字典条目(ACAD-GROUP 是错误的!),最小的 objects 部分应如下所示:
0
SECTION
2
OBJECTS
0
DICTIONARY
5
C
330
0
100
AcDbDictionary
281
1
3
ACAD_GROUP
350
D
0
DICTIONARY
5
D
330
C
100
AcDbDictionary
281
1
0
ENDSEC
句柄是 Hex-Values,它们在当前 DXF 文件中必须是唯一的。 header 部分中的 $HANDSEED 条目应该比每个使用的句柄都大,但我没有测试 AutoCAD 对 $HANDSEED 值的严格程度。
已将最小 DXF 文件上传到 bitbucket:
https://bitbucket.org/mozman/ezdxf/downloads/Minimal_DXF_AC1021.dxf
所以...根据 this 网页,我创建了一个空的 dxf 文件并且它可以工作,但是一旦我包含一个 MText 实体,autocad 就会抛出以下错误
GroupTable dictionary was not defined in NamedObject dictionary
Invalid or incomplete DXF input -- drawing discarded.
所以我的问题是:
1- 我可以信任该页面吗?该页面上的信息是否正确?
2- 对象部分需要的最后一个实体是什么?
3-我做错了什么?
0
SECTION
2
HEADER
9
$ACADVER
1
AC1024
9
$HANDSEED
5
FFF
0
ENDSEC
0
SECTION
2
CLASSES
0
ENDSEC
0
SECTION
2
TABLES
0
TABLE
2
VPORT
5
1
330
0
100
AcDbSymbolTable
70
1
0
VPORT
5
2
330
8
100
AcDbSymbolTableRecord
100
AcDbViewportTableRecord
2
*Active
70
0
10
0.0
20
0.0
11
1.0
21
1.0
12
0.9778937033030414
22
-0.0911774291574901
13
0.0
23
0.0
14
0.5
24
0.5
15
0.5
25
0.5
16
0.0
26
0.0
36
1.0
17
0.0
27
0.0
37
0.0
40
1.97341154280437
41
2.161781285231116
42
50.0
43
0.0
44
0.0
50
0.0
51
0.0
71
0
72
1000
73
1
74
3
75
0
76
0
77
0
78
0
281
0
65
1
110
0.0
120
0.0
130
0.0
111
1.0
121
0.0
131
0.0
112
0.0
122
1.0
132
0.0
79
0
146
0.0
348
2F
60
3
61
5
292
1
282
1
141
0.0
142
0.0
63
250
421
3355443
1001
ACAD_NAV_VCDISPLAY
1070
1
0
ENDTAB
0
TABLE
2
LTYPE
5
3
330
0
100
AcDbSymbolTable
70
3
0
LTYPE
5
4
330
5
100
AcDbSymbolTableRecord
100
AcDbLinetypeTableRecord
2
ByBlock
70
0
3
72
65
73
0
40
0.0
0
LTYPE
5
5
330
5
100
AcDbSymbolTableRecord
100
AcDbLinetypeTableRecord
2
ByLayer
70
0
3
72
65
73
0
40
0.0
0
LTYPE
5
6
330
5
100
AcDbSymbolTableRecord
100
AcDbLinetypeTableRecord
2
Continuous
70
0
3
Solid line
72
65
73
0
40
0.0
0
ENDTAB
0
TABLE
2
LAYER
5
7
330
0
100
AcDbSymbolTable
70
1
0
LAYER
5
8
330
2
100
AcDbSymbolTableRecord
100
AcDbLayerTableRecord
2
0
70
0
62
7
6
Continuous
370
-3
390
F
347
21
0
ENDTAB
0
TABLE
2
STYLE
5
9
330
0
100
AcDbSymbolTable
70
2
0
STYLE
5
A
330
3
100
AcDbSymbolTableRecord
100
AcDbTextStyleTableRecord
2
Standard
70
0
40
0.0
41
1.0
50
0.0
71
0
42
0.2
3
txt
4
0
ENDTAB
0
TABLE
2
VIEW
5
B
330
0
100
AcDbSymbolTable
70
0
0
ENDTAB
0
TABLE
2
UCS
5
C
330
0
100
AcDbSymbolTable
70
0
0
ENDTAB
0
TABLE
2
APPID
5
D
330
0
100
AcDbSymbolTable
70
5
0
APPID
5
E
330
9
100
AcDbSymbolTableRecord
100
AcDbRegAppTableRecord
2
ACAD
70
0
0
APPID
5
F
330
9
100
AcDbSymbolTableRecord
100
AcDbRegAppTableRecord
2
AcadAnnotative
70
0
0
APPID
5
10
330
9
100
AcDbSymbolTableRecord
100
AcDbRegAppTableRecord
2
ACAD_NAV_VCDISPLAY
70
0
0
APPID
5
11
330
9
100
AcDbSymbolTableRecord
100
AcDbRegAppTableRecord
2
ACAD_EXEMPT_FROM_CAD_STANDARDS
70
0
0
APPID
5
12
330
9
100
AcDbSymbolTableRecord
100
AcDbRegAppTableRecord
2
ACAD_MLEADERVER
70
0
0
ENDTAB
0
TABLE
2
DIMSTYLE
5
13
330
0
100
AcDbSymbolTable
70
2
100
AcDbDimStyleTable
71
0
0
DIMSTYLE
105
14
330
A
100
AcDbSymbolTableRecord
100
AcDbDimStyleTableRecord
2
Standard
70
0
340
55
0
ENDTAB
0
TABLE
2
BLOCK_RECORD
5
15
330
0
100
AcDbSymbolTable
70
1
0
BLOCK_RECORD
5
16
330
1
100
AcDbSymbolTableRecord
100
AcDbBlockTableRecord
2
*Model_Space
340
74
70
0
280
1
281
0
0
BLOCK_RECORD
5
17
330
1
100
AcDbSymbolTableRecord
100
AcDbBlockTableRecord
2
*Paper_Space
340
70
70
0
280
1
281
0
0
ENDTAB
0
ENDSEC
0
SECTION
2
BLOCKS
0
BLOCK
5
1B
330
71
100
AcDbEntity
8
0
100
AcDbBlockBegin
2
*Model_Space
70
0
10
0.0
20
0.0
30
0.0
3
*Model_Space
1
0
ENDBLK
5
1C
330
71
100
AcDbEntity
8
0
100
AcDbBlockEnd
0
BLOCK
5
1D
330
6D
100
AcDbEntity
67
1
8
0
100
AcDbBlockBegin
2
*Paper_Space
70
0
10
0.0
20
0.0
30
0.0
3
*Paper_Space
1
0
ENDBLK
5
1E
330
6D
100
AcDbEntity
67
1
8
0
100
AcDbBlockEnd
0
ENDSEC
0
SECTION
2
ENTITIES
0
MTEXT
5
18
100
AcDbEntity
8
0
100
AcDbMText
10
2.73902
20
2.480626
30
0.0
40
0.2
41
5.0
71
1
72
5
1
{\fArial|b0|i0|c178|p34;\U+FE90\U+FEB4\U+FB7C\U+FEAE\U+FE91}
73
1
44
1.0
0
MTEXT
5
19
100
AcDbEntity
8
0
100
AcDbMText
10
-3.37209
20
2.054275
30
0.0
40
0.2
41
5.0
71
1
72
5
1
{\fArial|b0|i0|c178|p34;\U+FE90\U+FEB4\U+FB7C\U+FEAE\U+FE91}
73
1
44
1.0
0
MTEXT
5
1A
100
AcDbEntity
8
0
100
AcDbMText
10
0
20
0
30
0.0
40
0.2
41
5.0
71
1
72
5
1
{\fArial|b0|i0|c178|p34;\U+FE90\U+FEB4\U+FB7C\U+FEAE\U+FE91}
73
1
44
1.0
0
ENDSEC
0
SECTION
2
OBJECTS
0
DICTIONARY
5
1F
330
0
100
AcDbDictionary
3
ACAD_GROUP
350
20
0
DICTIONARY
5
20
102
{
ACAD_REACTORS
330
C
102
}
330
C
100
AcDbDictionary
0
ENDSEC
0
EOF
我从另一个文件复制了除句柄之外的所有数字,我应该自己插入所有数字吗?如果可以,是否有我可以使用的最小值或最大值?
如果还有什么需要解释的,请告诉我
你提到的页面似乎有点稀疏(但我没看多久)。 看看官方dxf参考:http://www.autodesk.com/techpubs/autocad/dxf/reference/
通过快速扫描,您正在定义一个字典,其中(应该)包含一个句柄为 39 的对象(5-39 就在字典下面),然后您结束该部分而不定义对象...
我是ezdxf的作者
如错误消息所述,您必须添加一个名为 ACAD_GROUP 的根字典条目(ACAD-GROUP 是错误的!),最小的 objects 部分应如下所示:
0
SECTION
2
OBJECTS
0
DICTIONARY
5
C
330
0
100
AcDbDictionary
281
1
3
ACAD_GROUP
350
D
0
DICTIONARY
5
D
330
C
100
AcDbDictionary
281
1
0
ENDSEC
句柄是 Hex-Values,它们在当前 DXF 文件中必须是唯一的。 header 部分中的 $HANDSEED 条目应该比每个使用的句柄都大,但我没有测试 AutoCAD 对 $HANDSEED 值的严格程度。
已将最小 DXF 文件上传到 bitbucket: https://bitbucket.org/mozman/ezdxf/downloads/Minimal_DXF_AC1021.dxf