Python FreeCAD中如何用变量调用ActiveDocument下的对象属性
正确实现方法
错误原因
Python 不支持通过点运算符拼接字符串变量的方式访问动态属性,你尝试的字符串拼接写法本身不符合 Python 语法规则,才会触发语法错误;即使去掉拼接直接写 FreeCAD.ActiveDocument.boxName,也是访问文档对象名为 boxName 的属性,而非读取 boxName 变量存储的对象名字符串匹配对应属性。
可行写法
方法1:使用Python通用动态属性访问方法getattr
getattr 是Python内置函数,支持传入字符串形式的属性名获取对象属性,写法如下:
getattr(FreeCAD.ActiveDocument, boxName).Length = 150
方法2:使用FreeCAD原生getObject方法(更推荐)
FreeCAD的文档对象原生提供了按名称获取对象的getObject方法,适配FreeCAD的对象管理逻辑,不会和文档自身的属性冲突,稳定性更高:
FreeCAD.ActiveDocument.getObject(boxName).Length = 150
内容的提问来源于stack exchange,提问作者bry
相关产品推荐
相关产品推荐

