Diferencia entre revisiones de «Obijuan:Notas sobre programación en python en Freecad»

De WikiRobotics
Saltar a: navegación, buscar
(Hito 0: Leer)
(Hito 1: programa "hola mundo")
Línea 17: Línea 17:
  
 
== Hito 1: programa "hola mundo" ==
 
== Hito 1: programa "hola mundo" ==
 +
 +
Visualizar un cilindro genérico (el mismo que cuando se le da al botón de cilindro en el workbench part)
 +
 +
import FreeCAD
 +
import Part
 +
 +
doc = App.ActiveDocument
 +
cyl = doc.addObject("Part::Cylinder","Cylinder")
 +
cyl.Label = "Cylinder"
 +
doc.recompute()
 +
 +
Otro ejemplo, con la función cilindro definida, donde se le pasan los parámetros de altura y diámetro
 +
 +
import FreeCAD
 +
import Part
 +
 +
def cylinder(h = 8, d = 56):
 +
    doc = App.ActiveDocument
 +
    cyl = doc.addObject("Part::Cylinder","Cylinder")
 +
    cyl.Label = "Cylinder"
 +
    cyl.Height = h
 +
    cyl.Radius = d / 2.0 <br>
 +
cylinder()
 +
cylinder(h = 20, d =10)
 +
App.ActiveDocument.recompute()

Revisión del 10:07 28 ago 2014

Introducción

Quiero aprender a programar piezas en Freecad, al estilo openscad, para poder hacer piezas paramétricas.

Empezaremos con ruedas paramétricas para printbots

Roadmap

  • Hello world: programar un cilindro simple, con los parámetros h (grosor) y diámetro (d)
  • Script que permita cambiar los parámetros desde una GUI en freecad
  • Programar la rueda del miniskybot, pero con esos mismos parametros variables
  • Incluir 2 coronas: pequeña y grande y permitir que se puedan seleccionar una u otra para la rueda
  • ¿Como crear un boton que al pulsarlo se abra el menú y permita meter una rueda definiendo sus parametros?
  • ¿Cómo programar un workbench de printbots? que incluya botones con piezas: ruedas, portapilas, chásis...

Hito 0: Leer

Hito 1: programa "hola mundo"

Visualizar un cilindro genérico (el mismo que cuando se le da al botón de cilindro en el workbench part)

import FreeCAD
import Part

doc = App.ActiveDocument
cyl = doc.addObject("Part::Cylinder","Cylinder")
cyl.Label = "Cylinder"
doc.recompute()

Otro ejemplo, con la función cilindro definida, donde se le pasan los parámetros de altura y diámetro

import FreeCAD
import Part

def cylinder(h = 8, d = 56):
    doc = App.ActiveDocument
    cyl = doc.addObject("Part::Cylinder","Cylinder")
    cyl.Label = "Cylinder"
    cyl.Height = h
    cyl.Radius = d / 2.0 
cylinder() cylinder(h = 20, d =10) App.ActiveDocument.recompute()