ezdxf pythonパッケージを使用して既存のdxfファイルを変更するにはどうすればよいですか?

ナマン・カスリワル

ezdxfを使用して、既存の.dxfファイルのモデルスペースにエンティティを追加しようとしています。挿入されたエンティティの場所は、私が期待する場所から完全に外れています。

円の場合、e.dxf.insertを使用してエンティティの位置座標を取得し、この点を円の中心として使用しました。私は次のコードを使用しました:

import ezdxf
dwg = ezdxf.readfile("drainage.dxf")

msp = dwg.modelspace()
dwg.layers.new(name='MyCircles', dxfattribs={'color': 7})

def encircle_entity(e):
    if e.dxftype()=='INSERT':
        circleCenter = e.dxf.insert
        msp.add_circle(circleCenter, 10, dxfattribs={'layer': 'MyCircles'})
        print("Circle entity added")

washBasins = msp.query('*[layer=="WASH BASINS"]')
for e in washBasins:
    encircle_entity(e)

dwg.saveas('encircle.dxf')

drainage.dxf(入力)およびencircle.dxf(出力)ファイルへのリンク:https//drive.google.com/open?id = 1aIhZiuEdClt0warjPPcKiz4XJ7A7QWf_

これにより円が作成されますが、位置が正しくありません。

dxfファイルの原点とezdxfが使用する原点はどこにありますか?すべてのエンティティ、特にINSERT、LINES、CIRCLESの正しい位置を取得するにはどうすればよいですか?ezdxfを使用して、既存のdxfファイルの目的の位置にエンティティを配置するにはどうすればよいですか?座標に関して、線のe.dxf.startポイントとe.dxf.endポイントはどこにありますか?

ここの座標に何かが欠けていると思います。座標がどのように機能するかを説明してください。

mozman

@LeeMacソリューションのPythonバージョンですが、OCSを無視します。

import ezdxf
from ezdxf.math import Vector

DXFFILE = 'drainage.dxf'
OUTFILE = 'encircle.dxf'

dwg = ezdxf.readfile(DXFFILE)
msp = dwg.modelspace()
dwg.layers.new(name='MyCircles', dxfattribs={'color': 4})


def get_first_circle_center(block_layout):
    block = block_layout.block
    base_point = Vector(block.dxf.base_point)
    circles = block_layout.query('CIRCLE')
    if len(circles):
        circle = circles[0]  # take first circle
        center = Vector(circle.dxf.center)
        return center - base_point
    else:
        return Vector(0, 0, 0)


# block definition to examine
block_layout = dwg.blocks.get('WB')
offset = get_first_circle_center(block_layout)

for e in msp.query('INSERT[name=="WB"]'):
    scale = e.get_dxf_attrib('xscale', 1)  # assume uniform scaling
    _offset = offset.rotate_deg(e.get_dxf_attrib('rotation', 0)) * scale
    location = e.dxf.insert + _offset

    msp.add_circle(center=location, radius=1, dxfattribs={'layer': 'MyCircles'})

dwg.saveas(OUTFILE)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

ezdxfを使用して、dxfファイルのブロック参照からハッチの詳細を抽出する

dxfgrabberまたはezdxfパッケージを使用してdxfファイルからエンティティの長さを見つける方法

ezdxf python mtext setの場所

Pythonのezdxfまたはdxfwriteを介してタグ付けまたはラベル(CADファイルに同じもの)を追加するにはどうすればよいですか?

ezdxfを使用して「動的」AREA属性をポリラインに追加するにはどうすればよいですか?

ezdxfを使用して空のレイヤーを削除できますか?

dxfwriteまたはezdxfを使用してz方向にdxfテキストを作成する

ezdxfを使用してレイヤー名に連番を追加する方法

ezdxfを使用してAutoCADレイヤーの説明を編集する方法

ezdxfを使用してDXFのINSERT / Blockコンテンツにアクセスします

ezdxfを使用してプロパティの印刷設定をオフにする方法は?

ezdxfを使用して既存のレイヤー上のテキストを見つけることは可能ですか?

EZDXFライブラリのハンドルに基づいて.dxfエンティティを検索します

ezdxfを使用したDXF生成:スプラインフィットポイントを含むポリライン

ezdxf0.14.1とPython3.8を使用して動的ブロックの属性を取得する

サブパッケージを作成して既存のファイルをintellijに追加するにはどうすればよいですか?

pcpファイルを使用してパッチのバージョンを変更するにはどうすればよいですか?

Eclipse Package Explorerで変更されたファイル/パッケージの色を変更するにはどうすればよいですか?

ezdxfを使用してレイヤープロパティの説明を説明すると、エラーが発生します

Pybind11を使用して既存のC ++パッケージインクルード.dll、.hファイルからPython拡張機能を作成するにはどうすればよいですか?

リスト/ CSVファイルを使用して、バッチまたはシーケンシャルではなく、Python3.9.5を使用してMacOSBig Sur 11.4でファイルの名前を変更するにはどうすればよいですか?

webpackを使用してパッケージ化し、既存のファイルを新しいフォルダーにコピーするにはどうすればよいですか?

ファイルがMacOS Xのどのパッケージに属しているかを確認するにはどうすればよいですか?

どのパッケージがファイルを所有しているかを確認するにはどうすればよいですか?

CSVファイルでARulesパッケージを使用するにはどうすればよいですか?

ノードjsでxlsx / sheetjsパッケージを使用して、既存のxlsxファイルに新しいシートを作成するにはどうすればよいですか?

ODBCパッケージを使用してSQLテーブルのvartypeをRから変更するにはどうすればよいですか?

変更を加えて既存のNPMパッケージを変更するにはどうすればよいですか?

Javaコードを使用してJavaパッケージ内でバッチファイルを実行するにはどうすればよいですか?

TOP 一覧

  1. 1

    Unity:未知のスクリプトをGameObject(カスタムエディター)に動的にアタッチする方法

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    Ansibleで複数行のシェルスクリプトを実行する方法

  4. 4

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  5. 5

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  6. 6

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  7. 7

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  8. 8

    Chromeウェブアプリのウェブビューの高さの問題

  9. 9

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  10. 10

    Windows 10の起動時間:以前は20秒でしたが、現在は6〜8倍になっています

  11. 11

    Reactでclsxを使用する方法

  12. 12

    ファイル内の2つのマーカー間のテキストを、別のファイルのテキストのセクションに置き換えるにはどうすればよいですか?

  13. 13

    MLでのデータ前処理の背後にある直感

  14. 14

    グラフからテーブルに条件付き書式を適用するにはどうすればよいですか?

  15. 15

    Pythonを使用して同じ列の同じ値の間の時差を取得する方法

  16. 16

    mutate_allとifelseを組み合わせるにはどうすればよいですか

  17. 17

    ネットワークグラフで、ネットワークコンポーネントにカーソルを合わせたときに、それらを強調表示するにはどうすればよいですか?

  18. 18

    テキストフィールドの値に基づいて UIslider を移動します

  19. 19

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  20. 20

    PowerShellの分割ファイルへのヘッダーの追加

  21. 21

    ソートされた検索、ターゲット値未満の数をカウント

ホットタグ

アーカイブ