Macro Solid Sweep/it

=Macro Solid Sweep - Percorso solido=

Questa macro crea un solido estrudendo un profilo 2D lungo una traiettoria precedentemente selezionata nella vista 3D.

Gli elementi 2D possono essere creati attraverso i normali strumenti della GUI di FreeCAD.

Notare che il solido risultante non è parametrico. Se si decide di modificare il profilo o il percorso, si deve nuovamente eseguire la macro.

Nella seguente figura tutte le estrusioni sono realizzate utilizzando la stessa sagoma, ma tre percorsi diversi.



Come si usa

 * Creare due elementi 2D del tipo indicato sotto, uno per la sezione e uno per la traiettoria.
 * Selezionare, nella struttura del progetto o nella vista 3D, prima la traiettoria e poi il profilo. L'ordine è importante!
 * Aprire Gestione Macro, selezionare la macro e fare clic su "Esegui".
 * Nella struttura del progetto viene creato un oggetto Sweep.

Elementi 2D supportati

 * Contorni polilinee
 * [[Image:Sketcher_NewSketch.png|32px]] Schizzi
 * [[Image:Draft_BSpline.png]] BSpline
 * Primitive 2D del menu Parametriche → Crea Primitive... (circonferenza, elica)

Avvertenze

 * La sezione deve essere un profilo chiuso o il risultato non sarà un solido.
 * Non è necessario che la sezione sia posizionata sulla traiettoria, ma è preferibile che sia normale (perpendicolare) alla traiettoria.
 * La traiettoria può essere sia un profilo aperto che chiuso (cerchi, o segmenti e archi), ma tutti gli elementi devono essere tangenti o la forma risultante è inaspettata. Ad esempio, una traiettoria con angoli retti come un rettangolo non produce un solido.
 * Se il solido diventa contorto, modificare la macro e impostare il valore isFrenet a 0 (zero) e riprovare.
 * L'impostazione nella macro della variabile makeSolid a 0 (zero) produce un insieme di superfici con le estremità aperte.

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 "Scelta sbagliata"
 * 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

Crediti
Grazie a Wmayer per il suo aiuto nella stesura di questo script.

Due esempi di utlizzo si trovano in questa sezione del forum, dove si trovano anche i collegamenti per scaricare i file FCStd.

Utilizzando un elica come traiettoria, tramite uno sweep solido si può creare la filettatura di bullone.