Jump to content

Manual:Creating parametric objects/es: Revision history

Diff selection: Mark the radio buttons of the revisions to compare and hit enter or the button at the bottom.
Legend: (cur) = difference with latest revision, (prev) = difference with preceding revision, m = minor edit.

5 June 2026

24 April 2026

  • curprev 16:4016:40, 24 April 2026 Desideratum talk contribs 14,387 bytes +22 Created page with "{{Docnav |Creación y manipulación de geometría |Creación de herramientas de interfaz |Manual de inicio |IconC=Crystal Clear manual.png }}" undo
  • curprev 16:3916:39, 24 April 2026 Desideratum talk contribs 14,365 bytes +13 Created page with "* Repositorio de macros de FreeCAD * Ejemplo de objeto paramétrico * [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/TemplatePyMod/FeaturePython.py Más ejemplos en el código de FreeCAD]" undo
  • curprev 16:3916:39, 24 April 2026 Desideratum talk contribs 14,352 bytes 0 Created page with "'''Leer más'''" undo
  • curprev 16:3916:39, 24 April 2026 Desideratum talk contribs 14,352 bytes +18 Created page with "Recuerde que, si quiere distribuir archivos creados con esta nueva herramienta a otras personas, ellas también deben tener instalada la macro '''ParamRectangle.py''' en sus ordenadores." undo Tags: Mobile edit Mobile web edit
  • curprev 16:3816:38, 24 April 2026 Desideratum talk contribs 14,334 bytes +27 Created page with "* Eso es todo, ahora tenemos un nuevo botón en la barra de herramientas que, al hacer clic, creará un rectángulo paramétrico." undo
  • curprev 16:3816:38, 24 April 2026 Desideratum talk contribs 14,307 bytes +62 Created page with "* En la pestaña Barras de Herramientas, cree una nueva barra de herramientas personalizada en el entorno de trabajo que prefiera (o globalmente), seleccione su macro y agréguela a la barra de herramientas:" undo
  • curprev 16:3716:37, 24 April 2026 Desideratum talk contribs 14,245 bytes +40 Created page with "* Abra el menú '''Herramientas → Personalizar''' * En la pestaña '''Macros''', selecciona nuestra macro '''ParamRectangle.py''', complete los detalles como desee y pulse '''Añadir''':" undo
  • curprev 16:3616:36, 24 April 2026 Desideratum talk contribs 14,205 bytes +3 No edit summary undo
  • curprev 16:3416:34, 24 April 2026 Desideratum talk contribs 14,202 bytes +45 Created page with "Ahora, cuando escribamos: '''import ParamRectangle''', se creará automáticamente un nuevo rectángulo paramétrico. Mejor aún, podemos añadir un botón a la barra de herramientas que haga precisamente eso:" undo Tags: Mobile edit Mobile web edit
  • curprev 16:3316:33, 24 April 2026 Desideratum talk contribs 14,157 bytes +44 Created page with "Por supuesto, sería tedioso tener que escribir estas 4 líneas de código Python cada vez que queramos crear un nuevo rectángulo paramétrico. Una forma muy sencilla de solucionarlo es colocar las 4 líneas anteriores dentro de nuestro archivo '''ParamRectangle.py''', al final, después del final de la clase '''ParametricRectange''' (podemos hacerlo desde el editor de macros)." undo
  • curprev 16:3316:33, 24 April 2026 Desideratum talk contribs 14,113 bytes +31 Created page with "Todavía no aparecerá nada en pantalla, ya que las propiedades '''Length''' y '''Width''' son 0, lo que activará nuestra condición de "no hacer nada" dentro de execute. Solo necesitamos cambiar los valores de '''Length''' y '''Width''', y nuestro objeto aparecerá mágicamente y se recalculará sobre la marcha." undo
  • curprev 16:3216:32, 24 April 2026 Desideratum talk contribs 14,082 bytes +26 Created page with "* '''FreeCAD.ActiveDocument.recompute()''': Recalcula el documento para actualizar la geometría y reflejar los cambios en la interfaz gráfica de FreeCAD, haciendo que el nuevo objeto sea completamente visible y funcional." undo
  • curprev 16:3216:32, 24 April 2026 Desideratum talk contribs 14,056 bytes +33 Created page with "* '''myObj.ViewObject.Proxy = 0''': Restablece el atributo '''ViewObject.Proxy''' a 0, asegurando que el objeto utilice el manejo de vista predeterminado de FreeCAD. Este paso es necesario a menos que defina un '''ViewProvider''' personalizado para gestionar la representación visual del objeto." undo
  • curprev 16:3016:30, 24 April 2026 Desideratum talk contribs 14,023 bytes +11 Created page with "* '''ParamRectangle.ParametricRectangle(myObj)''': Inicializa el objeto asociándolo con la clase '''ParametricRectangle''' del módulo o script '''ParamRectangle'''. Esto vincula la lógica personalizada definida en Python con el objeto, lo que le permite actuar como un objeto paramétrico." undo
  • curprev 16:3016:30, 24 April 2026 Desideratum talk contribs 14,012 bytes +52 Created page with "* '''myObj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Rectangle")''': Crea un nuevo objeto '''Part::FeaturePython''' llamado '''Rectangle''' en el documento FreeCAD activo. Este objeto está diseñado específicamente para un comportamiento paramétrico personalizado, lo que permite que la lógica definida en Python gestione sus propiedades y comportamiento." undo
  • curprev 16:3016:30, 24 April 2026 Desideratum talk contribs 13,960 bytes +7 Created page with "Aquí tenéis un breve resumen de los comandos anteriores:" undo
  • curprev 16:3016:30, 24 April 2026 Desideratum talk contribs 13,953 bytes +41 Created page with "Para crear un nuevo objeto paramétrico usando nuestra clase '''ParametricRectangle''', utilizaremos el siguiente código. Observe que usamos '''Part::FeaturePython''' en lugar de '''Part::Feature''', que hemos estado usando en los capítulos anteriores (la versión de Python permite definir nuestro propio comportamiento paramétrico):" undo
  • curprev 16:2916:29, 24 April 2026 Desideratum talk contribs 13,912 bytes +15 Created page with "Al explorar el contenido de '''ParamRectangle''', podemos verificar que contiene nuestra clase '''ParametricRectangle'''." undo
  • curprev 16:2916:29, 24 April 2026 Desideratum talk contribs 13,897 bytes +6 Created page with "Una vez hecho esto, podemos hacerlo ahora en la consola de Python:" undo
  • curprev 16:2816:28, 24 April 2026 Desideratum talk contribs 13,891 bytes +120 Created page with "En lugar de pegar el código anterior en la consola de Python, es mejor guardarlo en algún lugar para poder reutilizarlo y modificarlo más adelante. Por ejemplo, en una nueva macro (menú '''Macro -> Macros -> Crear'''). Nómbrela, por ejemplo, '''ParamRectangle'''. Sin embargo, las macros de FreeCAD se guardan con la extensión '''.FCMacro''', que Python no reconoce al usar la importación. Por lo tanto, antes de usar el código anterior, tendremos que cambiar el nomb..." undo
  • curprev 16:2616:26, 24 April 2026 Desideratum talk contribs 13,771 bytes +99 Created page with "Le daremos a nuestro objeto dos propiedades: Longitud y Anchura, que utilizaremos para construir un rectángulo. Luego, como nuestro objeto ya tendrá una propiedad de Posicionamiento predefinida (todos los objetos geométricos la tienen por defecto, no es necesario que la agreguemos nosotros mismos), desplazaremos el rectángulo a la posición/rotación establecida en la propiedad de posicionamiento, de modo que el usuario podrá mover el rectángulo a c..." undo
  • curprev 16:2416:24, 24 April 2026 Desideratum talk contribs 13,672 bytes +40 Created page with "A continuación, realizaremos un pequeño ejercicio: construir un objeto paramétrico que consiste en una simple cara rectangular paramétrica. Encontrará ejemplos más complejos en el ejemplo de objeto paramétrico y en el propio [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/TemplatePyMod/FeaturePython.py código fuente de FreeCAD]." undo
  • curprev 16:2316:23, 24 April 2026 Desideratum talk contribs 13,632 bytes +89 Created page with "La forma más sencilla de garantizar esto es guardar el código Python en un archivo de macro. Al distribuir su archivo de FreeCAD, puede incluir la macro junto con él. Como alternativa, puede compartir la macro en el repositorio de macros de FreeCAD (Macros FreeCAD), permitiendo que otros la descarguen y utilicen fácilmente. Este método garantiza que tus objetos paramétricos personalizados sigan funcionando en otros sistemas, a la vez que se manti..." undo
  • curprev 16:2116:21, 24 April 2026 Desideratum talk contribs 13,543 bytes 0 No edit summary undo
  • curprev 16:2116:21, 24 April 2026 Desideratum talk contribs 13,543 bytes +53 Created page with "Todas las clases de Python suelen tener un método '''__init__'''. Este método se ejecuta cuando se instancia una clase, es decir, cuando se crea un objeto Python a partir de la clase. Se puede pensar en una clase como una "plantilla" o plano que se utiliza para crear instancias vivas de sí misma. Cada instancia de la clase se convierte en un objeto independiente con sus propios atributos y métodos. En nuestro método '''__init__''', realizamos dos tareas cruciales:" undo
  • curprev 16:1816:18, 24 April 2026 Desideratum talk contribs 13,490 bytes −4 No edit summary undo

18 April 2026

  • curprev 12:1412:14, 18 April 2026 Desideratum talk contribs 13,494 bytes +79 Created page with "Es fundamental recordar que, al crear objetos paramétricos en un documento de FreeCAD, el código Python utilizado para definirlos no se guarda en el archivo. Esta es una medida de seguridad intencionada. Si se permitiera que los archivos de FreeCAD almacenaran código Python, se podría abrir la puerta a que personas malintencionadas distribuyeran archivos con scripts dañinos que podrían perjudicar el ordenador de alguien. Por lo tanto, al compartir un archivo de Fre..." undo
  • curprev 12:1312:13, 18 April 2026 Desideratum talk contribs 13,415 bytes +32 Created page with "* El método '''execute''' se invoca siempre que sea necesario actualizar el objeto. * Este método se encarga de recalcular la forma y asignarla al atributo '''Shape''' del objeto. * El argumento '''obj''' proporciona acceso al objeto del documento de FreeCAD, lo que permite realizar cambios mediante programación. Con este sistema, FreeCAD se encarga del resto, asegurando que el objeto se actualice correctamente en el documento y se muestre adecuadamente en la inter..." undo
  • curprev 12:1112:11, 18 April 2026 Desideratum talk contribs 13,383 bytes +41 Created page with "La segunda parte clave de nuestra clase es el método '''execute'''. Este método se activa automáticamente cuando el objeto se marca para recálculo, lo que ocurre al modificarse una de sus propiedades. En el método '''execute''' se realizan todos los recálculos del objeto, asegurando que su forma y comportamiento se actualicen para reflejar cualquier cambio. Dentro del método '''execute''', se llevan a cabo todas las operaciones necesarias para generar la nueva geo..." undo
  • curprev 12:1012:10, 18 April 2026 Desideratum talk contribs 13,342 bytes +31 Created page with "FreeCAD ofrece una gran variedad de propiedades, desde números en coma flotante hasta cadenas de texto e incluso tipos especializados para geometría y materiales. Para explorar la lista completa de los tipos de propiedades disponibles, puede escribir el siguiente código en la consola de Python:" undo
  • curprev 12:0912:09, 18 April 2026 Desideratum talk contribs 13,311 bytes +57 Created page with "* Cree todas las propiedades que necesite el objeto: Mediante el método '''addProperty''', definimos las propiedades personalizadas que requiere el objeto. Las propiedades actúan como parámetros o variables del objeto y se pueden acceder, modificar y visualizar en el editor de propiedades de FreeCAD. En el ejemplo, añadimos una propiedad de punto flotante llamada '''MyLength'''. Esta propiedad influirá posteriormente en la forma o el comportamiento del objeto." undo
  • curprev 12:0812:08, 18 April 2026 Desideratum talk contribs 13,254 bytes +29 Created page with "Almacene la clase en el atributo '''Proxy''' del objeto de un documento de FreeCAD: Al asignar '''self''' al atributo '''Proxy''' del objeto de documento de FreeCAD, vinculamos la lógica de nuestra clase Python con el objeto de FreeCAD. Esto significa que el objeto de documento "contendrá" el código de la clase Python en su interior, lo que le permite comportarse según la lógica definida en la clase. Esta conexión permite a FreeCAD saber cómo interactuar con el ob..." undo
  • curprev 12:0312:03, 18 April 2026 Desideratum talk contribs 13,225 bytes +30 Created page with "* Declara las propiedades necesarias para el objeto. * Define el comportamiento cuando se modifica cualquiera de estas propiedades. La estructura de un objeto paramétrico de este tipo es tan simple como esto:" undo
  • curprev 12:0312:03, 18 April 2026 Desideratum talk contribs 13,195 bytes +6 Created page with "FreeCAD ofrece un sistema fácil para crear objetos paramétricos completos usando Python. Estos objetos se definen mediante una clase de Python, que:" undo
  • curprev 12:0112:01, 18 April 2026 Desideratum talk contribs 13,189 bytes +60 Created page with "A lo largo de este manual, hemos visto cómo los objetos paramétricos abordan este problema permitiendo actualizaciones dinámicas. Al modificar una sola propiedad, la forma se recalcula automáticamente, eliminando la necesidad de actualizaciones manuales. Este proceso de recálculo permite un modelado más eficiente y aporta adaptabilidad a los diseños. Internamente, los objetos paramétricos funcionan de forma similar a lo que ya hemos visto: recalculan el contenido..." undo
  • curprev 12:0012:00, 18 April 2026 Desideratum talk contribs 13,129 bytes +29 Created page with "En el Capítulo anterior, exploramos cómo crear geometría '''Pieza''' y visualizarla en pantalla adjuntándola a un objeto de documento "mudo" (no paramétrico). Si bien este método es efectivo, se vuelve engorroso cuando se necesita modificar la forma. Cada cambio requiere crear una nueva forma y reasignarla al objeto, lo que se traduce en flujos de trabajo repetitivos e ineficientes." undo
  • curprev 11:5811:58, 18 April 2026 Desideratum talk contribs 13,100 bytes +19 Created page with "{{Docnav |Creación y manipulación de geometría |Creación de herramientas de interfaz |Inicio manual |IconC=Crystal Clear manual.png }}" undo
  • curprev 11:5611:56, 18 April 2026 Desideratum talk contribs 13,081 bytes +13,081 Created page with "Manual: Creación de objetos paramétricos"