Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 是否可以使用ezdxf定位现有图层上的文本?_Python 3.x_Autocad_Dxf_Ezdxf - Fatal编程技术网

Python 3.x 是否可以使用ezdxf定位现有图层上的文本?

Python 3.x 是否可以使用ezdxf定位现有图层上的文本?,python-3.x,autocad,dxf,ezdxf,Python 3.x,Autocad,Dxf,Ezdxf,我想在一个图层上获取多个文本或多行文本位置信息,但我不知道如何获取 请给出一些建议。可以在for中找到演示如何完成此任务的教程和示例 例如,要获取驻留在模型空间特定层上的所有单行文本(text)和多行文本(MTEXT)的集合,可以使用: msp = doc.modelspace() textset = msp.query('TEXT MTEXT[layer=="YourLayerHere"]') 获取此集合后,您可以迭代实体并查询插入点: for e in msp.query('TEXT M

我想在一个图层上获取多个
文本
多行文本
位置信息,但我不知道如何获取


请给出一些建议。

可以在for中找到演示如何完成此任务的教程和示例

例如,要获取驻留在模型空间特定层上的所有单行文本(
text
)和多行文本(
MTEXT
)的集合,可以使用:

msp = doc.modelspace()
textset = msp.query('TEXT MTEXT[layer=="YourLayerHere"]')

获取此集合后,您可以迭代实体并查询插入点:

for e in msp.query('TEXT MTEXT[layer=="YourLayerHere"]'):
    if e.dxftype() == 'MTEXT' or (e.dxf.valign == 0 and e.dxf.halign in [0,3,5]):
        print("Position: %s\n" % e.dxf.insert)
    else:
        print("Position: %s\n" % e.dxf.align_point)

要选择多个实体类型,请使用:“TEXT-MTEXT[layer==…]”@mozman我最初认为查询语言字符串可能是用类似于AutoLISP
ssget
过滤器列表的逻辑实现的,其中列表具有隐式
逻辑,因此,
TEXT和MTEXT
将永远不会获得任何结果,因为实体类型不能同时为这两种类型。您是说ezdxf实现了一个隐式的inclusive
逻辑,使得
TEXT-MTEXT
返回
TEXT
MTEXT
(或两者都返回)?另外,
*TEXT
是否可以同时匹配这两种类型?实体查询将作为隐式
操作实现,并返回所有列出的实体类型。
*
是一个特殊的名称,不是通配符,代表所有实体类型,因为我认为实体类型的通配符没有意义
“*TEXT”
有效,但返回所有实体类型,
“*TEXT”
不返回任何内容,因为搜索的是字面上的
*TEXT
。但是我在v0.10中添加了一个排除功能:
“*!LINE”
,返回除
LINE
之外的所有实体类型,这可能很有用。@Lee_Mac-测试提到Lee Mac,这行吗
@LeeMac
消失。@mozman感谢您的澄清-我已经更新了上面的答案。我原以为它需要
'TEXT[layer==“yourlayerher”]MTEXT[layer==“yourlayerher”]
,否则我会假设它将在任何层上获得
TEXT
,并在指定层上获得
MTEXT
。关于提及:由于帖子所有者总是得到通知,因此提及变得多余,因此会自动消失。