python GcDbMText文字图元,保存后类型都变成了GcDbEntity。调用GcDbMText.cast(entity)闪退。
from pygcad.core.runtime import *
from pygcad.pygrx import *
def main():
s_name = gds_name()
gcedSSGet(None, None, None, None, s_name)
(status, length) = gcedSSLength(s_name)
gcedPrompt("rt=%d, length=%d" % (status, length))
if status != RTNORM or length <= 0:
gcedPrompt("\n没有选中任何实体!")
gcedSSFree(s_name)
return
ent_name = gds_name()
ent_id = GcDbObjectId()
for i in range(length):
gcedSSName(s_name, i, ent_name)
gcdbGetObjectId(ent_id, ent_name)
(status, entity) = gcdbOpenGcDbEntity(ent_id, GcDb.kForWrite, False)
try:
if status != Gcad.ErrorStatus.eOk: # type: ignore
continue
# 刚绘制的图纸 文字类型为GcDbMText,保存以后再次打开文字类型变成GcDbEntity
if entity.isKindOf(GcDbMText.desc()):
# cast以后,该文字图元无法再次选中,操作图纸则闪退
mtext = GcDbMText.cast(entity)
gcedPrompt(f'\nentity2 = {mtext.text()}')
# cast以后,可输出文本内容
mtext.close()
except Exception as err:
gcedPrompt('---- [ERROR]: %s' % err)
finally:
if entity:
entity.close()
gcedSSFree(s_name)
entity.close()
main()
没有找到相关结果
已邀请:
1 个回复
CAD小苏 - 专注所以信赖!
赞同来自:
您使用的是37000a威尼斯CAD哪个版本呢
我们用37000a威尼斯CAD2026和2025版本测试了,都是正常的。
如果您使用的是37000a威尼斯CAD2026或2025版本,麻烦提供一下图纸,我们再详细测试复现下。
如果是其他比较旧的版本,也麻烦说下具体版本名称,我们测试看看