首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python和ezdxf复制块

Python和ezdxf复制块
EN

Stack Overflow用户
提问于 2020-03-16 15:19:54
回答 1查看 1.3K关注 0票数 0

我有一个包含一个或多个块的dxf文件。如何使用ezdxf读取这个dxf并将一个块复制到另一个dxf文件中?

此代码不像预期的那样工作:

代码语言:javascript
复制
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`不在保存的文件中.

EN

回答 1

Stack Overflow用户

发布于 2020-03-17 15:05:16

由于DXF格式的扩展性很复杂,而且内部结构的文档不足,超出了实体描述的范围,所以复制实体或将它们移动到DXF文件中并不那么容易,当然在不同的DXF文档之间也不容易。

为了完成这类任务,ezdxf有一个导入器插件,它可以将一些资源、实体和块定义从源文档导入到目标文档中,但不要期望得到完美的结果,请阅读文档

以下代码将块定义'b_test'从源DXF文件'blocks.dxf'导入到目标DXF文件'arc.dxf'中,导入完成后,可以将块引用添加到目标DXF文件的模型空间中。

代码语言:javascript
复制
import ezdxf
from ezdxf.addons import Importer

source_dxf = ezdxf.readfile("blocks.dxf")

if 'b_test' not in source_dxf.blocks:
    print("Block 'b_test' not defined.")
    exit()

target_dxf = ezdxf.readfile("arc.dxf")

importer = Importer(source_dxf, target_dxf)
importer.import_block('b_test')
importer.finalize()

msp = target_dxf.modelspace()
msp.add_blockref('b_test', insert=(10, 10))
target_dxf.saveas("blockref_tutorial.dxf")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60708633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档