模块版本
python v3.8.5
ezdxf v0.14
matplotlib v3.3.1
生成样本DXF文件
*该站点的源代码已被修改。
谢谢??
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 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的附加组件,因此可以使用它进行转换。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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",它也可以工作。
Python很方便! !! !!