我正在寻找一个可以合并 dxf 文件的 python 模块。我找到了 dxfgrabber 和 ezdxf,但是它们似乎用于与我所追求的不同的应用程序。
我使用的是ExpressPCB,它分别输出PCB的每一层、孔和丝印。对于我的应用程序,我想将所有这些单独的 DXF 合并为一个。查看照片
据我所知,起源等都是相同的,所以它应该像现实生活中一样排列起来。
目前,这些模块都没有针对此类应用程序的任何教程。一些伪代码以 Python 方式表达这个想法:
dxf_file1 = read(file1)
dxf_file2 = read(file2)
dxf_file3 = read(file3)
out_file.append(dxf_file1)
out_file.append(dxf_file2)
out_file.append(dxf_file3)
outfile.save()
在我的应用程序中,文件都将具有相同的原点并且永远不会重叠,因此您应该能够以某种方式轻松合并文件。感谢您提前提供的帮助!
最佳答案
您可以在 ezdxf v0.10 中使用重写的 Importer 插件:
import ezdxf
from ezdxf.addons import Importer
def merge(source, target):
importer = Importer(source, target)
# import all entities from source modelspace into target modelspace
importer.import_modelspace()
# import all required resources and dependencies
importer.finalize()
base_dxf = ezdxf.readfile('file1.dxf')
for filename in ('file2.dxf', 'file3.dxf'):
merge_dxf = ezdxf.readfile(filename)
merge(merge_dxf, base_dxf)
# base_dxf.save() # to save as file1.dxf
base_dxf.saveas('merged.dxf')
此导入器仅支持基本图形,例如 LINE、CIRCLE、ARC 和 DIMENSION(无尺寸样式覆盖)等。
所有 XDATA 和第 3 方数据都将被忽略,但您的文件似乎足够简单,可以工作。
可以找到导入器附加组件的文档 here .
关于用于合并 DXF 文件的 Python 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58722235/