以编程方式创建DXF样条

时间:2016-12-19 12:51:51

标签: spline autodesk dxf

我需要以编程方式创建样条线。我做了类似的事情:

0
SECTION
  2
HEADER
  9
$ACADVER
  1
AC1006
  0
ENDSEC
  0
SECTION
  2
TABLES
  0
TABLE
2
LAYER
  0
LAYER
 2
shape
 70
 64
 62
 250
 6
CONTINUOUS
 0
LAYER
 2
holes
 70
 64
 62
 250
 6
CONTINUOUS
 0
ENDTAB
 0
ENDSEC
0
SECTION
2
ENTITIES
0
SPLINE
8
shape
100
AcDbSpline
210
0
220
0
230
1
70
4
71
3
72
11
73
4
74
4
42
0.0000001
43
0.0000001
44
0.0000000001
40
0
40
0
40
0
40
0
40
1
40
1
40
1
40
2
40
2
40
2
40
2
10
0
20
0
30
0
10
100
20
50
30
0
10
40
20
40
30
0
10
15
20
23
30
0
11
0
21
0
31
0
11
200
21
200
31
0
11
80
21
80
31
0
11
432
21
234
31
0
0
ENDSEC
0
EOF

当我尝试在Autodesk TrueView中打开它时,我收到一个错误:

  

第54行上对象的未定义组代码210。   DXF输入无效或不完整 - 绘图被丢弃。

错误在哪里?当我将SPLINE部分复制到AI生成的DXF时,一切正常。所以我想我需要在标题部分添加一些东西。

3 个答案:

答案 0 :(得分:3)

此文件是DXF版本AC1006,它比DXF R12旧。 SPLINE实体 至少需要DXF版本AC1012 DXF R13 / R14。但是有了DXF版AC1012 DXF文件的标签结构发生了变化(OBJECTS和CLASSES部分,SubClassMarkers ......),所以只需编辑DXF版本 不起作用。

另请参阅:http://ezdxf.readthedocs.io/en/latest/dxfinternals/filestructure.html#minimal-dxf-content

此外,SPLINE实体似乎无效,它没有句柄(5)且没有所有者 tag(330),并且缺少整个AcDbEntity子类。

答案 1 :(得分:1)

你的样条有3度,11节(0,0,0,0,1,1,1,2,2,2,2)和4个控制点((0,0),(100,50) ),(40,40),(15,23))。这可能是问题的罪魁祸首。你应该有4个控制点和8节或7个控制点和11节。

答案 2 :(得分:0)

您可能需要为SPLINE指定一个句柄,因为您指定了$ACADVER = AC1018 = AutoCAD 2004,其中需要处理项目。

尝试在图层指定之前添加一个5代码对,就像这样,其中AAAA是一个唯一的十六进制编码句柄:

  0
SPLINE
  5     <-- add these two lines
AAAA    <--
  8
shape
100
AcDbSpline