我有一个包含一个或多个块的dxf文件。如何使用ezdxf
读取此dxf并将块复制到另一个dxf文件
此代码未按预期工作:
dxf = ezdxf.readfile("blocks.dxf")
block_test = dxf.blocks.get('b_test')
dxf_test = ezdxf.readfile("arc.dxf")
msp_test = dxf_test.modelspace()
flag = dxf_test.blocks.new(name='FLAG')
flag.add_lwpolyline([(0, 0), (0, 5), (4, 3), (0, 3)])
flag.add_circle((0, 0), .4, dxfattribs={'color': 2})
msp_test.add_blockref(block_test, (10.1, 10.1), dxfattribs={
'xscale': 1,
'yscale': 1,
'rotation': 0
})
msp_test.add_blockref('flag', (0.1, 0.1), dxfattribs={
'xscale': 5.1,
'yscale': 5.1,
'rotation': 115
})
dxf_test.saveas("blockref_tutorial.dxf")
exit()
上述代码示例无法按预期工作。也就是说,“block_test”不在保存的文件中
由于DXF格式具有复杂的可扩展性,并且缺乏实体描述之外的足够的内部结构文档,因此在DXF文件中复制实体或将其移动并不容易,当然在不同的DXF文档之间也不容易
为了完成这类任务,ezdxf有一个Importer插件,它可以将一些资源、实体和块定义从源文档导入到目标文档中,但不要期望完美的结果,请阅读docs
以下代码将块定义
'b_test'
从源DXF文件'blocks.dxf'
导入目标DXF文件'arc.dxf'
,导入完成后,可以将块'b_test'
的块引用添加到目标DXF文件的模型空间相关问题 更多 >
编程相关推荐