首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ezdxf访问DXF中的插入/块内容

使用ezdxf访问DXF中的插入/块内容
EN

Stack Overflow用户
提问于 2017-08-16 21:07:10
回答 1查看 2.8K关注 0票数 1

我试图使用python2.7和ezdxf模块将DXF文件的内容绘制到图像中。

我实现了读取和绘制线条,折线,圆圈,但我不知道如何处理插入元素。我想这个INSERT元素(或相关的块)包含其他元素,行,POLYLINE等等.对吧?

下面是我如何访问基本的DXF元素:

代码语言:javascript
复制
dwg = ezdxf.readfile(filename)
modelspace = dwg.modelspace()
for e in modelspace:
   analyseElement(e)

def analyseElement(e):
   if e.dxftype() == 'LINE':
       print("DXF LINE FOUND:")
       p1=e.dxf.start
       p2=e.dxf.end
      [...]

我是否可以从插入内容中探索和提取基本元素?谢谢大家!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-17 03:31:18

块是实体的可重用集合,可以像模型空间一样用于搜索或添加DXF实体。

INSERT实体是块引用,它确定插入块实体的位置、大小和旋转。而INSERT可以具有附加的ATTRIB实体,这些实体是由标记(name)引用的文本值。

块定义存储在Drawing.blocks属性中:

代码语言:javascript
复制
# iterate over all existing block definitions
for block in dwg.blocks:
    for e in block:
        analyseElement(e)

INSERT实体存储在模型空间或另一个块定义中:

代码语言:javascript
复制
for insert in modelspace.query('INSERT'):
    block = dwg.blocks[insert.dxf.name]
    for e in block:
         analyseElement(e)

要搜索特定的插入实体:

代码语言:javascript
复制
for insert in modelspace.query('INSERT[name=="MyBlock"]'):
    ...
  • 块文档:http://ezdxf.readthedocs.io/en/latest/tutorials/blocks.html
  • 用于查询的文档:data.html
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45723019

复制
相关文章

相似问题

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