Python 带有变量的 FreeCad ActiveDocument

Python FreeCad ActiveDocument with variable

我对 Python 很陌生,所以我的问题的答案可能很简单或不可能。

在下面显示的示例中,我想用变量 boxName.

替换对象名称“myBox

boxName = "myBox" FreeCAD.ActiveDocument.addObject("部件::盒子", boxName)*

这个有效:

FreeCAD.ActiveDocument.myBox.长度=150

这不是:

FreeCAD.ActiveDocument。 + boxName + .Length = 150

我收到一个语法错误:

'App.Document' 对象没有属性 'boxName' 或者当我尝试其他变体时出现此错误: (1): ('invalid syntax', ('###/AppData/Roaming/FreeCAD/Macro/nyMacro.FCMacro', 5, 24, 'FreeCAD.ActiveDocument.+(boxName)+.Length = 150\n'))

如果可以用变量替换,如果有人能告诉我语法,我将不胜感激。

你必须使用元编程。对这个概念做一点研究。这真有趣。在 Python 中,您可以通过 eval 函数执行动态代码:

求值('FreeCAD.ActiveDocument. + boxName + .Length = 150')

如果我没记错的话,请搜索有关 eval 和 exec 函数的信息。