使用python中的dxfgrabber库解析dxf文件

时间:2013-02-28 13:12:40

标签: python parsing dxf

我想用dxfgrabber库解析dxf文件以获取对象(行,点,文本等)。

代码如下

#!/usr/bin/env python
import dxfgrabber

dxf = dxfgrabber.readfile("1.dxf")
print ("DXF version : {}".format(dxf.dxfversion))

但它有些错误......

Traceback (most recent call last):
  File "parsing.py", line 6, in <module>
    dxf = dxfgrabber.readfile("1.dxf")
  File "/usr/local/lib/python2.7/dist-packages/dxfgrabber/__init__.py", line 43, in readfile
    with io.open(filename, encoding=get_encoding()) as fp:
  File "/usr/local/lib/python2.7/dist-packages/dxfgrabber/__init__.py", line 39, in get_encoding
    info = dxfinfo(fp)
  File "/usr/local/lib/python2.7/dist-packages/dxfgrabber/tags.py", line 96, in dxfinfo
    tag = next(tagreader)
  File "/usr/local/lib/python2.7/dist-packages/dxfgrabber/tags.py", line 52, in __next__
    return next_tag()
  File "/usr/local/lib/python2.7/dist-packages/dxfgrabber/tags.py", line 45, in next_tag
    raise StopIteration()
StopIteration

简单的1.dxf文件只包含行。

文件链接为https://docs.google.com/file/d/0BySHG7k180kETlQ2UnRxQmxoUk0/edit?usp=sharing

这是dxfgrabber库的错误吗? 在python中解析dxf文件有没有好的库?

我使用的是dxfgrabber 0.4和python 2.7.3。

2 个答案:

答案 0 :(得分:3)

我联系了开发人员,他说在当前版本0.5.1中,__init__.py的第49行如下:with io.open(filename) as fp:。 然后它工作(io缺失)。 他很快就会在0.5.2版中对此进行修正。

答案 1 :(得分:0)

您只能阅读以AutoCAD格式制作的dxf! 试试“DraftSight”这是一个免费的AutoCAD克隆,可以很好地导出dxf。试试dxf R12格式。 这将解决您的问题。