Python 용 DXF 파일 읽기/쓰기 라이브러리 "ezdxf"를 사용하여 DXF 파일을 PNG로 변환

모듈 버전



파이썬 v3.8.5
ezdxf v0.14
matplotlib v3.3.1

샘플 DXF 파일 생성



이 사이트 의 소스 코드를 말파크리 했습니다.
고맙습니다 🙏

import ezdxf
import math

DXFVERSION  = 'R2010'
NUMCORNERS = 5

def create_dxf():
    """ 五芒星のDXFファイルを生成
    """
    # 星の角座標計算
    startangle = math.pi / 2.0
    pitchangle = math.pi * 2.0 / 5.0

    # オフセットと半径
    offset_x, offset_y, radius = 100, 100, 10

    points = []
    for i in range(0, NUMCORNERS):
        angle = startangle + pitchangle * i
        if 2.0 * math.pi < angle:
            angle = angle - 2.0 * math.pi
        x = math.cos(angle) * radius + offset_x
        y = math.sin(angle) * radius + offset_y
        points.append((x, y))

    # DXFインスタンス生成
    dxf = ezdxf.new(DXFVERSION)
    modelspace = dxf.modelspace()

    # 五芒星描画
    last, i, count = -1, 0, 0
    while count < NUMCORNERS + 1:
        if 0 <= last:
            modelspace.add_line(points[i], points[last])
        last = i
        i += 2
        if NUMCORNERS <= i:
            i -= NUMCORNERS
        count += 1

    # DXFファイル出力
    dxf.saveas('/<出力先のパス>/star.dxf')

if __name__ == "__main__":
    create_dxf()

 

DXF 파일을 PNG 파일로 변환



ezdxf는 DXF 파일을 이미지나 PDF로 만들기 위한 애드온을 가지고 있기 때문에 그것을 이용하여 변환합니다.
import ezdxf
from ezdxf import recover
from ezdxf.addons.drawing import matplotlib


def convert_dxf_to_png():
    try:
        dxf, auditor = recover.readfile('/<DXFファイルのパス>/star.dxf')
    except IOError as ioerror:
        print(ioerror)
        raise ioerror
    except ezdxf.DXFStructureError as dxf_structure_error:
        print(dxf_structure_error)
        raise dxf_structure_error

    if not auditor.has_errors:
        matplotlib.qsave(dxf.modelspace(), '/<出力先のパス>/star.png')

if __name__ == "__main__":
    convert_dxf_to_png()

이 짧은 코드로 DXF 파일을 PNG로 변환 할 수있었습니다.
확장자를 ".jpg"라든지 ".pdf"로 해도 작동합니다.
파이썬 편리! ! !

좋은 웹페이지 즐겨찾기