2017-06-05 27 views
0

私はPythonパッケージDXFwriteを使って太陽電池格子を構築します。残念ながら、私のシミュレーションプログラムは、DXFwriteによって導入された追加のレイヤーと混同されています。彼らの名は次のとおりです。 DXFwriteからsuperfluosレイヤーを削除する

  • ビューポート
    • DIMENSIONS
    • TABLECONTENT
    • TABLEGRID
    • TABLEBACKGROUNDは、これらの層の作成からDXFwriteを防止するための簡単な方法はありますか?レイヤーを削除するコマンドが見つかりませんでした。

      よろしく、

      トルステンRissom

    答えて

    0

    非常に高速です - 可能性があります。

    DXFEngine.layersは、_Table構造体です。これはclear()関数を持ちます。 は望ましくない副作用のためにテストしていませんが、あなたは、次の操作を行うことができます

    from dxfwrite import DXFEngine as mydxfwrite 
    mydxfdrawing = mydxfwrite.drawing('Filename.dxf') 
    mydxfdrawing.layers.clear() #clears the layers 
    mydxfdrawing.add_layer("JUSTASINGLELAYER",color=1) #add your layer with for example a specific color 
    mydxfdrawing.save() 
    

    LibreCadは、しかし、まだ離れ層「JUSTASINGLELAYER」から「0」と呼ばれる層を示しています。同様に動作

    幸運を祈り、 マーティン

    +0

    。ただし、レイヤー "VIEWPORTS"は削除されません。結局私は@mozmanの答えで2番目の選択肢に従った。返信いただきありがとうございます! – rissom

    3

    なし層を削除する方法はありません、あなたは、このレイヤーを作成するからdxfwriteを防ぐことはできません。

    オルタナティブ1:

    使用ezdxf(https://pypi.python.org/pypi/ezdxf/)は、だけでなく、(DEFPOINTS、VIEW_PORT)いくつかの事前定義された層が存在しているが、あなたは 層テーブルからエントリを削除することができます:dwg.layers.remove('layername')を、これが唯一の層テーブルエントリを削除しますエンティティがこのレイヤを参照していない場合にのみ、レイヤは削除されます。そして、予期しない副作用があるかもしれません。

    2オルタナティブ:

    使用ezdxf.r12writer:このモジュールはezdxfパッケージなしで使用することができ、ちょうどあなたのプロジェクトにr12writer.pyをコピーします。このモジュールは非常に基本的なDXF12ファイルを作成します。docs:http://pythonhosted.org/ezdxf/r12writer.htmlを参照してください。

    • サポートされているエンティティ:LINE、CIRCLE、ARC、TEXT、POINT、SOLID、3DFACEとPOLYLINE
    • ブロック参照がサポートされていません!
    • さらなる利点:r12writerはsource流し読みした後
    関連する問題