1

dxf ファイルを解析して、.net の画像に変換する必要があります。

DxfLib ( https://github.com/mkernel/DXFLib ) を使用しました。

レイヤーに問題があります: 3 つのレイヤーがあり、表示する必要があるのは 1 つだけです (一部の dxf ビューアーにファイルをアップロードしましたが、1 つのレイヤーしか表示されません)。

レイヤーを表示する必要があるかどうかを知る方法がわかりません。dxf 解析済みファイルに情報が見つかりませんでした。

これをどこで見つけることができるか知っていますか? (DxfLib に欠落している要素かもしれません)

編集: 私の dxf ファイルの例があります: https://github.com/mkernel/DXFLib/files/286112/DIAMOND-R.zip

4

2 に答える 2

3

DXFファイルには、HEADERセクションLAYERS テーブルが含まれています。レイヤー テーブルレコードの詳細は次のとおりです。

http://www.autodesk.com/techpubs/autocad/acad2000/dxf/layer_dxf_04.htm

あなたはグループコード62に興味があります:

グループコード 62

ご覧のとおり、レイヤーの色がの場合、レイヤーはオフになります。次に例を示します。

  0
LAYER
  5
242
330
2
100
AcDbSymbolTableRecord
100
AcDbLayerTableRecord
  2
LAYER2
 70
     0
 62
    -3
  6
Continuous
370
    -3
390
F
347
EE
348
0
  0
ENDTAB

したがって、エンティティを処理してレイヤーの値を調べる場合は、 HEADERセクションのLAYERSテーブルで検索します。これはそのセクションの始まりです:

  0
TABLE
  2
LAYER

見つかったら、色のプロパティを調べます。の場合、レイヤーはオフになります。

DXF ファイルの HEADERS セクションを解析するために DXFLib で使用できる機能がわかりません。しかし、この詳細がお役に立てば幸いです。

于 2016-05-25T20:45:49.427 に答える
1

最後に解決策を見つけました!

私の問題は、レイヤーを表示/非表示にすることではなく、無関係なオブジェクトを検出して非表示にする方法でした。

ヘッダー セクションで DrawingExtendsLowerRight プロパティと DrawingExtendsUpperRight プロパティを使用して、描画の限界を把握しています。制限内にある要素のみを保持します。

于 2016-06-06T09:06:12.953 に答える