La programación en Python es una de las poderosas funciones de freecad. No es necesario compilar freecad, solo instale freecad. Después de estudiar https://wiki.freecadweb.org/Python_scripting_tutorial, inmediatamente sentí que había dominado el desarrollo en Python de freecad, así que he compilado este artículo. Todas las operaciones en freecad se pueden implementar con python. También hay una herramienta para grabar operaciones en Macro, que se puede guardar en un archivo, y la operación se puede repetir la próxima vez que la llames. Por supuesto, puedes editarla para completar operaciones más complejas.
Listo para trabajar:
Inicie freecad.
Antes de comenzar la programación de Python, debe configurar la interfaz:
Editar → Preferencias → General → Ventana de salida 勾选 :
Redirigir la salida interna de Python a la vista de informes .
Redirigir los errores internos de Python a la vista de informes .
Luego, menú: Ver → Paneles y verifique la vista Informe .
Escribe el código de Python
Hay 2 formas de escribir código Python:
Ver → Paneles → Consola Python
Macro → Macros ...
Esta es la primera forma
Probemos el código
doc = FreeCAD.newDocument()
Presione Enter, el efecto es crear un nuevo documento, menú: archivo-> Nuevo o Nuevo en la barra de herramientas, o presione Ctrl + N
box = doc.addObject("Part::Box", "myBox")
No pasó nada. ¿Por qué? Porque FreeCAD nació para la situación general. Algún día, manejará cientos de objetos complejos, que dependen unos de otros. Hacer un pequeño cambio en alguna parte puede tener un gran impacto y puede llevar mucho tiempo. Por lo tanto, casi ningún comando actualizará automáticamente la escena. Debe realizarse manualmente. Dicho esto, todavía puedes verlo aquí:
doc.recompute()
De esta forma, se puede ver en la interfaz gráfica.
box.Height
Altura de la pantalla
box.Height=5
Cambia la altura a 5
Puede ver que los gráficos han cambiado.
Vector y posición
Experimente el vector y sus cálculos.
myvec = FreeCAD.Vector(2, 0, 0)
myvec.x
myvec.y
othervec = FreeCAD.Vector(0, 3, 0)
sumvec = myvec.add(othervec)
Luego mire la ubicación:
box.Placement
box.Placement.Base
box.Placement.Base = sumvec
otherpla = FreeCAD.Placement()
box.Placement = otherpla
Aplicación y Gui
FreeCAD está diseñado para que pueda usarse como una aplicación de línea de comandos sin una interfaz de usuario. Por lo tanto, casi todos los objetos en FreeCAD constan de dos partes: un objeto (su componente "geométrico") y un ViewObject (su componente "visual"). Cuando se trabaja en el modo de línea de comando, hay una parte geométrica, pero la parte visible está deshabilitada.
Para ilustrar este concepto, echemos un vistazo a nuestro objeto cubo. Las propiedades geométricas del cubo (como su tamaño, posición, etc.) se almacenan en el objeto. Y sus atributos visuales (como su color, grosor de línea, etc.) se almacenan en ViewObject. Esto corresponde a las pestañas "Datos" y "Ver" del editor "Propiedades". El método de acceso del objeto de vista del objeto es el siguiente:
vo = box.ViewObject
Ahora puede cambiar las propiedades de la Vista:
vo.Transparency = 80
vo.hide()
vo.show()
Módulo
El verdadero poder de FreeCAD radica en sus módulos. La aplicación básica de FreeCAD es solo un contenedor vacío. Sin su módulo, solo puede realizar el trabajo de crear un nuevo documento vacío. Cada módulo no solo agrega un nuevo banco de trabajo a la interfaz, sino que también agrega nuevos comandos de Python y nuevos tipos de objetos. En el mismo documento pueden coexistir varios tipos de objetos diferentes o incluso completamente incompatibles. Aquí hay una introducción a los módulos más importantes de FreeCAD: partes, cuadrículas, bocetos y dibujos de ingeniería.
Tanto el "Dibujante" como el "Borrador" utilizan el módulo "Piezas" para crear y procesar su geometría. La cuadrícula es completamente independiente y maneja sus propios objetos. A continuación se proporciona más información.
Puede verificar todos los tipos de objetos base disponibles del documento actual de esta manera:
doc.supportedTypes()
Los módulos no se importan automáticamente a la consola de Python. Cuando sea necesario, debe importarlos usted mismo para evitar un inicio lento. Por ejemplo, importar parte
import Part
Después de importar, puede
Part. Tiene muchos consejos de funciones. Aquí P es mayúscula.
Malla
Una cuadrícula es un objeto 3D muy simple. Por ejemplo, Sketchup, Blender y 3D Studio Max usan una cuadrícula. Se componen de 3 elementos: puntos (también llamados vértices), líneas (también llamadas aristas) y caras. En muchas aplicaciones (incluido FreeCAD), las caras solo pueden tener 3 vértices. Por supuesto, una superficie más grande puede estar compuesta por múltiples triángulos coplanares.
La cuadrícula es muy simple, debido a su simplicidad, es fácil tener millones de cuadrículas en un documento. En FreeCAD no se usa mucho, en la mayoría de los casos los objetos se importan en formato grid (.stl, .obj) desde otras aplicaciones.
Los objetos de malla y los objetos de FreeCAD son cosas diferentes. Puede pensar en los objetos FreeCAD como contenedores para los objetos Mesh (lo mismo ocurre con los objetos Part). Para agregar un objeto de malla a FreeCAD, primero debe crear un objeto de FreeCAD y un objeto de malla, y luego agregar el objeto de malla al objeto de FreeCAD:
import Mesh
mymesh = Mesh.createSphere()
mymesh.Facets
mymesh.Points
meshobj = doc.addObject("Mesh::Feature", "MyMesh")
meshobj.Mesh = mymesh
doc.recompute()
La explicación de este código es: importar malla, crear una malla (mymesh), ver la superficie y el punto, agregar un objeto de malla en el documento, asignar mymesh, mostrar el cálculo.
Parte
El módulo de piezas es el módulo más importante de todo FreeCAD. Te permite crear y manipular objetos BRep. BRep significa "Representación de límites". A diferencia de las mallas, los objetos BRep pueden tener múltiples componentes que van desde superficies planas hasta superficies NURBS muy complejas.
El módulo de pieza se basa en la potente librería OpenCasCade, que permite realizar diversas operaciones complejas sobre estos objetos, como operaciones booleanas, redondeos, replanteos, etc.
El módulo "Parte" funciona de la misma manera que el módulo "Malla": cree un objeto FreeCAD, un objeto "Parte" y luego agregue el objeto "Parte" al objeto FreeCAD:
import Part
myshape = Part.makeSphere(10)
myshape.Volume
myshape.Area
shapeobj = doc.addObject("Part::Feature", "MyShape")
shapeobj.Shape = myshape
doc.recompute()
De hecho, el siguiente código también se puede simplificar a:
Part.show (myshape)
Lo mismo ocurre con la cuadrícula.
Sequía
FreeCAD tiene más módulos, como Sketcher y Draft, que también pueden crear objetos de pieza. Estos módulos agregan parámetros adicionales a los objetos creados e incluso implementan una nueva forma de manejar la geometría de la pieza. El ejemplo de cuadro anterior es un ejemplo de un objeto de parámetro. Todo lo que necesita hacer para definir el cuadro es especificar los parámetros alto, ancho y largo. En base a estos, el objeto calculará automáticamente la forma de su pieza.
El módulo Borrador agrega tipos de objetos paramétricos 2D como líneas y círculos (todos los objetos de parte) y también proporciona algunas funciones comunes, que son aplicables a los objetos de Borrador y aplicables a cualquier objeto de Parte. Realice las siguientes operaciones para practicar sus manos:
import Draft
rec = Draft.makeRectangle(5, 2)
mvec = FreeCAD.Vector(4, 4, 0)
Draft.move(rec, mvec)
Draft.move(box, mvec)
Interfaz
La interfaz de usuario de FreeCAD consta de un potente sistema de interfaz gráfica Qt, que se encarga de dibujar y procesar todos los controles, menús, barras de herramientas y botones alrededor de la vista 3D. Qt proporciona un módulo PySide que permite a Python acceder y modificar la interfaz Qt, como FreeCAD. Usemos la interfaz Qt para generar un cuadro de diálogo simple:
from PySide import QtGui
QtGui.QMessageBox.information(None, "Apollo program", "Houston, we have a problem")
Tenga en cuenta que hay un icono de FreeCAD en la barra de herramientas del cuadro de diálogo que aparece, lo que significa que Qt sabe que la Orden se emitió desde la aplicación FreeCAD. Puede manipular cualquier parte de la interfaz de FreeCAD.
Qt es un sistema de interfaz muy poderoso que puede realizar cosas muy complejas. También tiene algunas herramientas fáciles de usar, como Qt Designer, puede usar esta herramienta para diseñar gráficamente cuadros de diálogo y luego usar algunas líneas de código Python para agregarlo a la interfaz de FreeCAD.
Macros
Ahora que tenemos una buena comprensión de los conceptos básicos, ¿dónde guardaremos los scripts de Python y cómo iniciarlos en FreeCAD? Existe un mecanismo simple llamado macro. Las macros son scripts de Python que se pueden agregar a la barra de herramientas y ejecutar haciendo clic con el mouse. FreeCAD le proporciona un editor de texto simple (Macro → Macro ... → Crear) en el que puede escribir o pegar scripts. Una vez completado el script, use Herramientas → Personalizar ... → Macro para definir un botón para él, que se puede agregar a la barra de herramientas.
Ahora, se pueden realizar scripts de FreeCAD más detallados. ¡Visite el Centro de usuarios avanzados !
mas contenido
Después de aprender, comience a buscar en https://wiki.freecadweb.org/Power_users_hub, que es como un directorio o una descripción de rama de enlace.
La personalización de la interfaz consiste en cambiar la barra de herramientas y las teclas de acceso directo: https://wiki.freecadweb.org/Interface_Customization
Herramientas-> Personalizar
Macros
https://wiki.freecadweb.org/Macros
Todas las operaciones se pueden realizar con comandos de Python, una serie de operaciones se pueden registrar como archivos de Python y luego se usará una macro para hacer el mismo trabajo más adelante.
https://wiki.freecadweb.org/Macros_recipes
Instalación automática de macros:
administrador de complementos: Herramientas → Administrador de complementos
Instalación manual:
menú : Macro → Macros
Crear botón, dar un nombre, copiar el código de Python, guardar y luego abrir y seleccionar su macro, Ejecutivo
Agregue una nueva macro a la barra de herramientas, herramienta-> ccpersonalizar, seleccione Macro
https://wiki.freecadweb.org/Customize_Toolbars
Instalar bancos de trabajo
https://wiki.freecadweb.org/Installing_more_workbenches
Charla: Centro de desarrolladores
https://wiki.freecadweb.org/Developer_hub
Eso es todo para la introducción.