Macro Solid Sweep/es

Esta macro crea un sólido barriendo un perfil 2D a lo largo de una trayectoria previamente seleccionada en la vista 3D. Los elementos 2D se pueden crear con las herramientas habituales de FreeCAD.

El sólido resultante no es paramétrico. Si cambias el perfil o la trayectoria, necesitarás ejecutar la macro de nuevo.



Como se utiliza

 * Crea dos elementos 2D, uno para la sección y otro para la trayectoria, de los tipos indicados abajo.
 * Selecciona, en el árbol del Proyecto o en la vista 3D, primero la trayectoria y después el perfil. El orden es importante!
 * Abre el gestor de macros, selecciona la macro y pulsa en "Ejecutar".
 * Se creará un sólido barrido en el árbol del Proyecto.

Elementos 2D soportados

 * Contornos
 * [[Image:Sketcher_NewSketch.png|32px]] Croquis
 * [[Image:Draft_BSpline.png]] BSplines
 * Primitivas 2D del menú Parametricas → Crear Primitivas... (circunferencia, hélice)

Trucos

 * La sección debe ser un perfil cerrado o el resultado no será un sólido.
 * La sección no necesita ubicarse en la trayectoria, pero es preferible que sea normal a ella.
 * La trayectoria puede ser un perfil abierto o cerrado (circunferencias, o líneas y arcos) pero todos los elementos deben ser tangentes o la forma resultante será inesperada. Por ejemplo, una trayectoria con esquinas rectas como un rectángulo no producirá un sólido.
 * Si el sólido se retuerce, edita la macro para cambiar el valor de isFrenet a cero y prueba de nuevo.
 * Configurar la variable makeSolid a cero en la macro producirá una colección de superficies con finales abiertos.

La macro
import Part, FreeCAD, math, PartGui, FreeCADGui from FreeCAD import Base

s = FreeCADGui.Selection.getSelection try: shape1=s[0].Shape shape2=s[1].Shape except: print "Wrong selection"
 * 1) pick selected objects, where 1st selection is the trajectory and the 2nd is the section to sweep

traj = Part.Wire([shape1]) section = Part.Wire([shape2])

myObject=App.ActiveDocument.addObject("Part::Feature","Sweep")
 * 1) create a Part object into the active document

makeSolid = 1 isFrenet = 1

Sweep = Part.Wire(traj).makePipeShell([section],makeSolid,isFrenet) myObject.Shape = Sweep
 * 1) Create the 3D shape and set it to the Part object

Créditos
Gracias a Wmayer por su ayuda al escribir esta macro.

Dos ejemplo de uso se pueden ver en este hilo del foro, así como enlaces para descargar archivos FCStd. Utilizando una hélice como trayectoria, un sólido barrido se puede utilizar para crear un tornillo.