Empezando a desarrollar FreeCad con python

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.

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/leon_zeng0/article/details/114243027
Recomendado
Clasificación