ELLIPSE
100
AcDbEntity
  8
0
100
AcDbEllipse
 10
1107.62370824762
 20
247.577633230125
 30
45.09077735112384
 11
-487.5153609892885
 21
259.8087316584924
 31
94.56264492614634
210
-0.0000000000000001
220
-0.3420201433256687
230
0.9396926207859081
 40
0.4621772040673929
 41
-0.0182682052204024
 42
4.621700810910907
  0
我另外一个自己手动编写的DXF中的entitiy段加入上面一段就出错了。
上面这一段是在CAD里面导出的DXF文件中复制的。照说应该没什么问题。但是为什么放到另一个DXF文件就出错了。
导出的DXF中还多出一段
ELLIPSE
  5
88
330
1F
这些被我去掉了,因为我查过DXF参考,这个指的是句柄。我自己手编写DXF不需要。
实验圆弧的时候这样做是没问题的,但是实验椭圆就出问题了?请高手指点?
我同时附上DXF-reference中关于椭圆的一段:
Ellipse group codes
Description Group code
Subclass er (AcDbEllipse) 100
Center point (in WCS) 10
DXF: X value; APP: 3D point
DXF: Y and Z values of center point (in WCS) 20, 30
Endpoint of major axis, relative to the center (in WCS) 11
DXF: X value; APP: 3D point
DXF: Y and Z values of endpoint of major axis, relative to the center (in WCS) 21, 31
Extrusion direction (optional; default = 0, 0, 1) 210
DXF: X value; APP: 3D vector
DXF: Y and Z values of extrusion direction (optional) 220, 230
Ratio of minor axis to major axis 40
Start parameter (this value is 0.0 for a full ellipse) 41
End parameter (this value is 2pi for a full ellipse) 42

解决方案 »

  1.   

    顶一下啊。不然没人看见。
    有编写过读写DXF文件的达人快出现啊
      

  2.   

    “这些被我去掉了,因为我查过DXF参考,这个指的是句柄。我自己手编写DXF不需要”这个要看dxf解析程序怎么编的。譬如我自己写的保存dxf程序,autocad不能读,但是我的读dxf程序能读。
      

  3.   

    autocad在2004dxf中的格式
    0
    SECTION
      2
    ENTITIES
      0
    POLYLINE  5
    87
      8
    0
     10
    579.68822437851486
     20
    741.09405826168859
     30
    0.0
     66
         1
     70
         8
      

  4.   

    我完全是按照DXF参考所给出的格式来编的,输出的文件格式也和DXF参考给出来的一样,但是打不开。难道还有其他地方没涉及到吗?
    ELLIPSE
      5
    88
    330
    1F
    我用CAD自己画了一个椭圆,跟我编的就差这一段,这一段。
    但是这一段已经证明不是问题了。
    因为我用CAD画了一个圆弧,去掉这一段,再把数据复制到我自己的DXF文件中,打开是没问题的。
    现在实在是不明白,
      

  5.   

    DXF是AutoCAD的文本数据交换格式,你需要参考DXF文件帮助手册来理解既然做DXF文件解析,我的理解是需自己的程序和CAD都可以读写双向无损数据处理才对句柄,记得是需要为每一个实体编号的唯一值,记得CAD读取文件时是需要这个的另外头节,表节段节也都有些组码是需要的。不同版本的DXF文件差距不大。你可以只画一个实体在CAD中,并存为DXF文件,再打开该文件后一点一点删除组码。逐步总结哪些是必须的。全部实体都总结清楚了是需要些时间的。后面比较麻烦的是块的处理,组的处理。总之比起DWG来,DXF的分析还是要容易很多的。