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 函数的信息。
我对 Python 很陌生,所以我的问题的答案可能很简单或不可能。
在下面显示的示例中,我想用变量 boxName.
替换对象名称“myBox”boxName = "myBox" FreeCAD.ActiveDocument.addObject("部件::盒子", boxName)*
这个有效:
FreeCAD.ActiveDocument.myBox.长度=150
这不是:
FreeCAD.ActiveDocument。 + boxName + .Length = 150
我收到一个语法错误:
'App.Document' 对象没有属性 'boxName' 或者当我尝试其他变体时出现此错误:
(1)
如果可以用变量替换,如果有人能告诉我语法,我将不胜感激。
你必须使用元编程。对这个概念做一点研究。这真有趣。在 Python 中,您可以通过 eval 函数执行动态代码:
求值('FreeCAD.ActiveDocument. + boxName + .Length = 150')
如果我没记错的话,请搜索有关 eval 和 exec 函数的信息。