FreeCAD Logo FreeCAD 1.0
  • Inglés Africano Árabe Bielorruso Catalán Checo Alemán Griego Español Español Euskera Finlandés Filipino Francés Gallego Croata Húngaro Indonesio Italiano Japonés Cabilio Coreano Lituano Neerlandés bokmal de Noruega Polaco Portugués Portugués Rumano Ruso Eslovaco Esloveno Serbio Sueco Turco Ucraniano Valenciano Vietnamita Chino Chino
  • Características
  • Descarga
  • Blog
  • Documentación
    Índice de documentación Primeros pasos Documentacion para el usuario El manual de FreeCAD Documentación de entornos de trabajo Documentación sobre FreeCAD + Python Documentación de codificación de C++ Tutoriales Preguntas frecuentes Política de privacidad Acerca de FreeCAD
  • Contribuir
    ¿Cómo puedo ayudar? Sponsor Informar de un error Hacer un pull request Trabajos y financiación Pautas de contribución Manual de desarrolladores Traducciones
  • Comunidad
    Código de conducta Foro The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Calendario
  • ♥ Donate

Donate

$
Información de SEPA
Configure su transferencia bancaria SEPA a:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Agencia bancaria: BNP Paribas Fortis
Dirección: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!

Creating renderings
Creating and manipulating geometry
Manual start
  • Introducción
  • Descubriendo FreeCAD
    • ¿Qué es FreeCAD?
    • Instalación
      • Instalando en Windows
      • Instalando en Linux
      • Instalación en Mac OS
      • Desinstalación
      • Configuración de preferencias básicas
      • Instalar contenido adicional
    • La interfaz de FreeCAD
      • Ambientes de trabajo
      • La interfaz
      • Personalizar la interfaz
    • Navegar en la vista 3D
      • Una palabra sobre el espacio 3D
      • La vista 3D de FreeCAD
      • Seleccionando objetos
    • El documento de FreeCAD
    • Objetos paramétricos
    • Importar y exportar a otros tipos de archivos
  • Trabajar con FreeCAD
    • Todos los ambientes de trabajo de un vistazo
    • Modelado tradicional, a la manera de CSG
    • Dibujo tradicional en 2D
    • Modelado para el diseño de productos
    • Preparación de modelos para la impresión 3D
      • Exportar a slicers
      • Convertir objetos en mallas
      • Usar Slic3r
      • Usando el complemento Cura
      • Generando G-code
    • Generación de dibujos 2D
    • Modelado BIM
    • Uso de hojas de cálculo
      • Lectura de propiedades
      • Escribiendo propiedades
    • Crear análisis MEF
    • Creación de renders
  • Guiones en Python
    • Una introducción suave
      • Escribir código Python
      • Manipulando objetos de FreeCAD
      • Vectores y colocaciones
    • Crear y manipular geometría
    • Creación de objetos paramétricos
    • Creación de herramientas de interfaz
  • La comunidad

Python es un popular lenguaje de programación de código abierto, muy a menudo incrustado en aplicaciones como lenguaje de guionización, como es el caso de FreeCAD. Tiene una serie de características que lo hacen adecuado para nosotros los usuarios de FreeCAD: Es muy fácil de aprender, especialmente para la gente que nunca ha programado antes, y está incrustado en muchas otras aplicaciones. Esto hace que sea una herramienta valiosa para aprender, ya que podrás utilizarla en otros programas, como Blender, Inkscape o GRASS.

Python ofrece varias ventajas que lo hacen especialmente adecuado para los usuarios de FreeCAD. Es fácil de usar para principiantes, con una sintaxis clara e intuitiva que facilita el aprendizaje, incluso para personas sin experiencia previa en programación. Esta accesibilidad es especialmente valiosa en la comunidad de FreeCAD, donde muchos usuarios provienen de diversos ámbitos, como la ingeniería, la arquitectura y el diseño, y carecen de amplia experiencia en programación.

Además, la amplia adopción de Python en otras aplicaciones, como Blender para modelado 3D, Inkscape para gráficos vectoriales y GRASS GIS para análisis geoespacial, lo convierte en una característica esencial para quienes buscan ampliar sus capacidades de programación. Dominar Python en FreeCAD no solo mejora la capacidad de crear herramientas y macros personalizadas, sino que también proporciona habilidades transferibles que se pueden aplicar en diversas plataformas de software.

En FreeCAD, la programación en Python le permite:

  • Automatice tareas repetitivas para ahorrar tiempo y reducir errores.
  • Cree objetos paramétricos personalizados que se adapten dinámicamente a los cambios.
  • Desarrolle macros y herramientas personalizadas adaptadas a flujos de trabajo específicos.
  • Interactúe con la interfaz de programación de aplicaciones (API) de FreeCAD para acceder y manipular geometría, escenas y elementos de la interfaz de usuario mediante programación.

Al aprovechar Python, los usuarios de FreeCAD pueden liberar todo el potencial del software, transformándolo en una herramienta potente y flexible adaptada a sus necesidades específicas.

FreeCAD incluye una consola Python avanzada, accesible a través de Ver → Paneles → Consola Python. Esta herramienta permite a los usuarios realizar operaciones más allá de la interfaz gráfica, como acceder a funciones avanzadas, solucionar problemas de geometría y automatizar tareas. También registra los comandos Python para las acciones de la interfaz gráfica si la opción Mostrar comandos de script en la consola Python está habilitada en Editar → Preferencias → Python → Macro). Al mantener la consola abierta, puede observar cómo se ejecuta el código Python mientras trabaja, lo que ofrece una forma intuitiva de aprender el lenguaje mientras explora las capacidades de FreeCAD. Por último, FreeCAD también cuenta con un sistema de macros system que permite grabar acciones para reproducirlas posteriormente. Este sistema también utiliza la consola Python, simplemente registrando todo lo que se hace en ella.


Archivo:FreeCAD Python Console.png

En este capítulo, descubriremos de forma general el lenguaje Python. Si le interesa aprender más, la wiki de documentación de FreeCAD tiene una sección extensa relacionada con la programación en Python (Python programming).

Escribiendo código Python

En FreeCAD, puedes escribir código Python de dos maneras principales: a través de la consola de Python (View → Panels → Python Console) o usando el editor de macros (Macro → Macros → Create). La consola de Python te permite introducir comandos uno a uno, que se ejecutan inmediatamente al pulsar Intro, lo que la hace perfecta para pruebas rápidas o exploración interactiva. El editor de macros, por otro lado, se utiliza para escribir y guardar scripts más complejos que constan de varias líneas de código. Estas macros se pueden ejecutar completas posteriormente desde la ventana Macros, lo que proporciona una forma eficaz de automatizar tareas repetitivas y ampliar la funcionalidad de FreeCAD. En este capítulo, podrás usar ambos métodos, pero se recomienda encarecidamente usar la consola de Python, ya que te informará inmediatamente de cualquier error que cometas al escribir.

Si es la primera vez que usa Python, considere leer esta breve introducción a la programación en Python antes de continuar, ya que le ayudará a comprender mejor los conceptos básicos de Python.

Manipulación de objetos de FreeCAD

Comencemos creando un nuevo documento vacío:

doc = FreeCAD.newDocument()

En la consola de Python de FreeCAD, al escribir FreeCAD. (la palabra "FreeCAD" seguida de un punto), aparece una ventana de autocompletado. Esta función no solo agiliza tu flujo de trabajo, al sugerir los comandos disponibles, sino que también te ayuda a descubrir nuevas funciones y características de FreeCAD. Cada entrada de la lista incluye una información sobre herramientas explicando su propósito, lo que facilita la comprensión y exploración de la funcionalidad disponible. Esta función de autocompletado es especialmente útil para quienes se inician en la programación con Python y para usuarios avanzados que navegan con eficiencia por la extensa API de FreeCAD. Tómate un momento para explorar las opciones en la ventana de autocompletado: podrías descubrir comandos que simplifiquen tu flujo de trabajo o te abran nuevas posibilidades.

Al escribir FreeCAD.newDocument() se crea un documento nuevo y vacío en FreeCAD, al igual que al hacer clic en el botón Nuevo documento de la barra de herramientas. Al ejecutar doc = FreeCAD.newDocument(), el nuevo objeto del documento se asigna a la variable doc, lo que permite manipularlo mediante programación. Con doc, puede añadir objetos, cambiar propiedades o guardar el documento.

En Python, el punto (.) se utiliza para indicar que un elemento está contenido dentro de otro. Por ejemplo, newDocument es una función dentro del módulo FreeCAD, por lo que escribimos FreeCAD.newDocument. La ventana de autocompletado que aparece muestra todo lo disponible dentro del módulo FreeCAD. Si escribieras un punto después de newDocument (sin añadir los paréntesis), se mostraría todo lo que pertenece a la función newDocument. Esto describe cómo Python organiza y accede a los objetos y sus componentes. Es importante tener en cuenta que los paréntesis son obligatorios al llamar a una función de Python, ya que indican la ejecución de la función.

Ahora volvamos a nuestro documento. Veamos qué podemos hacer con él. Teclea lo siguiente y explora las opciones disponibles:

doc.

En FreeCAD, las convenciones de nomenclatura para los comandos de Python pueden ayudarte a comprender su propósito:

  • Los nombres que comienzan con mayúscula suelen ser atributos, que almacenan valores o datos, como las propiedades de un objeto.
  • Los nombres que comienzan con minúscula suelen ser funciones (también llamadas métodos), que realizan acciones u operaciones, como crear o modificar objetos.
  • Los nombres que comienzan con un guion bajo (_) generalmente se utilizan internamente dentro del módulo y suelen ignorarse.

Esta distinción te ayuda a navegar por la API de FreeCAD y seleccionar el comando adecuado para tus necesidades. Por ejemplo, podrías usar un método para agregar un nuevo objeto a un documento. El método realiza la acción de crear y agregar el objeto, mientras que los atributos almacenan las propiedades del objeto. Comprender esta estructura facilita la exploración de la funcionalidad disponible, especialmente al usar la función de autocompletar o leer las sugerencias de herramientas. Agreguemos un cuadro.

box = doc.addObject("Part::Box", "myBox")

El comando box = doc.addObject("Part::Box", "myBox") agrega un nuevo objeto de caja 3D al documento. Aquí hay una explicación sencilla:

  • doc.addObject: Indica a FreeCAD que añada un nuevo objeto al documento.
  • Part::Box: Especifica el tipo de objeto a crear; en este caso, una caja 3D.
  • myBox: Asigna un nombre al nuevo objeto, facilitando su identificación y referencia posterior.

El resultado de este comando es que aparece un cuadro en el documento activo, y la variable `box` almacena una referencia al mismo para que puedas modificarlo o interactuar con él posteriormente. Nuestro cuadro se añade a la vista de árbol, pero aún no ocurre nada en la vista 3D, ya que al trabajar con Python, el documento nunca se recalcula automáticamente. Debemos hacerlo manualmente cuando sea necesario.

doc.recompute()

Ahora nuestra caja ha aparecido en la vista 3D. Muchos de los botones de la barra de herramientas para añadir objetos en FreeCAD realizan dos acciones: añadir el objeto y recalcular. Intente ahora añadir una esfera con el botón correspondiente en el Entorno de trabajo (Part Workbench) de piezas y verá cómo se ejecutan las dos líneas de código Python una tras otra.

Archivo:FreeCAD python Sphere.png

Puedes obtener una lista de todos los tipos de objetos posibles como Part::Box:

doc.supportedTypes()

Ahora vamos a explorar el contenido de nuestra caja:

box.

Enseguida verás un par de cosas muy interesantes, como por ejemplo:

box.Height

Esto imprimirá la altura actual de nuestra caja. Ahora intentemos cambiarla:

box.Height = 5

Si selecciona el cuadro con el ratón, verá que en el panel de propiedades, en la pestaña Datos, aparece nuestra propiedad Altura con el nuevo valor. Todas las propiedades de un objeto FreeCAD que aparecen en las pestañas Datos y Vista también son directamente accesibles desde Python, por sus nombres, como hicimos con la propiedad Altura. Se accede a las propiedades de datos directamente desde el propio objeto, por ejemplo:

box.Length

En FreeCAD, las propiedades visuales se gestionan mediante un objeto de vista (ViewObject). Cada objeto de FreeCAD tiene un ViewObject asociado, que almacena información sobre cómo se muestra el objeto en la interfaz gráfica, como el color, la transparencia o la visibilidad. Sin embargo, el ViewObject solo es accesible cuando FreeCAD se ejecuta con su interfaz gráfica. Si FreeCAD se inicia en modo no gráfico, por ejemplo, desde una terminal con la opción de línea de comandos -c o cuando se utiliza como biblioteca de Python en un script externo, el ViewObject no está disponible. Esto se debe a que en estos modos no hay una representación visual del objeto, ya que la interfaz gráfica no está cargada.

Pruebe el siguiente ejemplo para acceder al color de la línea de nuestra caja:

box.ViewObject.LineColor

Vectores y ubicaciones

Los vectores son un concepto fundamental en cualquier aplicación 3D. Un vector es, esencialmente, una lista de tres números (x, y, z) que describen un punto, una posición o una dirección en el espacio tridimensional. Los vectores son esenciales para definir la geometría, las transformaciones y las interacciones en el entorno 3D. Sirven como elementos básicos para operaciones como traslaciones, rotaciones y escalados.

En FreeCAD, los vectores se utilizan ampliamente para crear y manipular objetos. Permiten realizar una amplia gama de operaciones matemáticas, como suma, resta, producto vectorial, producto escalar y proyecciones. Estas operaciones permiten calcular distancias, ángulos y direcciones, así como definir relaciones entre objetos en el espacio.

Comprender los vectores y su funcionamiento es fundamental para la creación de scripts y la eficaz personalización en FreeCAD. Por ejemplo, los vectores se utilizan para referenciar y ubicar objetos, definir su orientación o incluso calcular las trayectorias para operaciones complejas como barridos o superficies de transición.

En FreeCAD, los vectores se representan mediante la clase Vector, que proporciona diversos métodos y propiedades para realizar operaciones y acceder a sus componentes. Dominar estas capacidades mejorará significativamente su habilidad para interactuar de manera programada con el entorno 3D de FreeCAD. En FreeCAD, los vectores funcionan de la siguiente manera:

myvec = FreeCAD.Vector(2, 0, 0)
print(myvec)
print(myvec.x)
print(myvec.y)
othervec = FreeCAD.Vector(0, 3, 0)
sumvec = myvec.add(othervec)
Creación Renderización
Creación y manipular geometría
Inicio manual
Creación Renderización
Creación y manipular geometría
Inicio manual
print(box.Placement)
print(box.Placement.Base)
box.Placement.Base = sumvec
otherpla = FreeCAD.Placement()
otherpla.Base = FreeCAD.Vector(5, 5, 0)
box.Placement = otherpla

Aquí tienes un breve desglose de los comandos anteriores:

  • print(box.Placement): Imprime la ubicación de la caja, incluyendo su posición, rotación y orientación en el espacio 3D.
  • print(box.Placement.Base): Imprime la posición (Base) de la caja, que es un vector que representa su ubicación en el espacio 3D.
  • box.Placement.Base = sumvec: Establece la posición base (ubicación) de la caja al vector sumvec, moviendo la caja a esta nueva posición.
  • otherpla = FreeCAD.Placement(): Crea un nuevo objeto de ubicación llamado otherpla.
  • otherpla.Base = FreeCAD.Vector(5,5,0): Establece la posición base de otherpla a un vector en las coordenadas (5, 5, 0).
  • box.Placement = otherpla: Aplica otherpla a la caja, actualizando su ubicación a la nueva posición y orientación definidas por otherpla.

Leer más

  • Python
  • Macros
  • Introducción_a_Python
  • Tutorial de scripting en Python
  • Centro de usuarios avanzados


Creación de renderizados
Creación y manipulación de geometría
Inicio del manual

Esta página ha sido recuperada de https://wiki.freecad.org/Manual:A_gentle_introduction

¡Contáctanos!
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© El equipo de FreeCAD. Créditos de imagen de la página principal (de arriba a abajo): ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

Este proyecto es apoyado por: , KiCad Services Corp. y otros patrocinadores

GitHubMejora esta página en GitHub