1

我正在创建一个 DXF 文件,该文件会为 Autocad 2012 生成一个椭圆。ellipse.dxf 文件如下。

0
SECTION
2
ENTITIES
0
ELLIPSE
5
2C
100
AcDbEntity
8
0
62
2
100
AcDbEllipse
10
2.456341489793
20
1.0357141474129
30
0.0
11
3.39798382641241
21
0.0
31
0.0
210
0.0
220
0.0
230
1.0
40
0.1413778446865976
41
0.0
42
6.283185307179586
0
ENDSEC
0
EOF

并且AutoCAD显示以下错误:“Autocad 2012 undefined group code 10 for object on line 18”。我很难弄清楚组代码 10 有什么问题,因为它代表 x 轴的第一个点。如果我删除组代码 10 和 2.456341489793,则与组代码 20 显示相同。

4

2 回答 2

2

您的组代码格式不正确。所有组代码的长度为 3 个字符。如果您的组代码中没有 3 位数字,则代码必须有足够的前导空格来组成 3 个字符。例如:组代码 10 实际上必须作为“ 10”(不带引号)写入 dxf 文件。

前导空格是组代码的关键部分。这有助于区分组代码和数据。

因此,如果组码 10 的值为 10,组码中的前导空格允许 dxf 解释器区分它们。

编辑

将组码长度从 4 更正为 3。

于 2013-07-28T11:19:33.727 回答
0

您创建了一个只有 ENTITIES 部分的最小 DXF。当您在 AutoCAD 中打开此 DXF 文件时,AutoCAD 需要一个 DXF R12 文件,而 DXF R12 不支持 ELLIPSE 实体,该实体是随 DXF R13/14 引入的。AutoCAD 应该更好地抱怨 ELLIPSE 实体而不是组代码 10。这个只有 CIRCLE 实体的最小 DXF 工作:

0
SECTION
2
ENTITIES
0
CIRCLE
8
Layer_is_a_required_tag
10
0.0
20
0.0
40
1.5
0
ENDSEC
0
EOF

@Stewbob:用于分组代码的前导空格是 AutoCAD 的约定,但不是强制性的

于 2016-04-10T08:00:45.237 回答