3

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を使用しています。

4

2 に答える 2

3

開発者に連絡したところ、現在のバージョン 0.5.1__init__.pyでは次の 49 行目を作成するとのことですwith io.open(filename) as fp:。その後、動作します(io欠落していました)。彼はこの修正をバージョン 0.5.2 でまもなく正式に行う予定です。

于 2013-05-15T06:21:55.847 に答える
0

AutoCAD 形式で作成された dxf しか読み取れません! dxf を非常にうまくエクスポートする無料の AutoCAD クローンである "DraftSight" を試してください。dxf R12 形式を試してください。これで問題が解決します。

于 2013-07-03T15:13:06.243 に答える