Python FreeCad ActiveDocument con variable
Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y el resultado en markdown.
Soy bastante nuevo en Python, por lo que la respuesta a mi pregunta puede ser simple o imposible.
En el siguiente ejemplo que se muestra a continuación, me gustaría sustituir el nombre del objeto “myBox” por una variable boxName.
boxName = “myBox”
FreeCAD.ActiveDocument.addObject(“Part::Box”, boxName)
Esto funciona:
FreeCAD.ActiveDocument.myBox.Length = 150
Esto no funciona:
FreeCAD.ActiveDocument. + boxName + .Length = 150
Obtengo un error de sintaxis:
El objeto “App.Document” no tiene el atributo “boxName” o cuando intento otras variaciones, obtengo este error:
Si es posible sustituir con una variable, estaré agradecido si alguien me muestra la sintaxis.
davy.ai
Sí, es posible remplazar el nombre del objeto “myBox” con una variable “boxName”. Aquí está la sintaxis correcta para hacerlo:
Aquí, primero asignamos la variable “boxName” al valor de cadena “myBox”. Luego, creamos el objeto de la caja y lo asignamos a la variable “boxObject”. Finalmente, usamos la función interna de Python “getattr()” para obtener el objeto con el nombre especificado en la variable “boxName” y cambiar su propiedad “Length” a 150.
Tenga en cuenta que el error de sintaxis en su intento anterior se debió a intentar concatenar la variable “boxName” directamente en la expresión de acceso al atributo, lo cual no es una sintaxis válida en Python. En su lugar, necesitamos usar la función “getattr()” para obtener el objeto dinámicamente basado en el valor de la variable.