我想用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。
答案 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格式。 这将解决您的问题。