Thread for Screw Tutorial/it

Introduzione
Questo tutorial è un insieme di tecniche per modellare le filettature in FreeCAD.

This tutorial is a collection of techniques to model screw threads in FreeCAD. It was updated for v0.19, although the overall process has been essentially the same since v0.14, when the tutorial was originally written. The updated content focuses on the PartDesign Workbench to create the thread, but does not use the  PartDesign AdditiveHelix tool as this was introduced later.

La modellazione delle filettature è sconsigliata, perché carica notevolmente il kernel di modellazione, e anche il rendering. Le forme filettate occupano molta memoria e anche una sola filettatura in un progetto FreeCAD può facilmente far balzare le dimensioni del file nella gamma dei megabyte. Tuttavia, ci sono alcune situazioni, in cui è indispensabile modellare la filettatura con tutti i suoi dettagli, e questo è il motivo per cui viene prodotto questo tutorial.

Many of the techniques presented here have been collected from different forum threads:
 * Gathering thread modeling techniques
 * Creating a thread: Unexpected results

See also helpful videos:
 * Introducing a strategy for designing a bolt without the commonly found problems.

Remember that thread shapes take a lot of memory, and having just one thread in a document can increase the file size significantly, so the user is advised to create threads only when absolutely necessary.



Metodo 0. Procurarsi una filettatura dalla libreria delle parti
Utilizzare i modelli prodotti da altri utenti è semplice e fa risparmiare tempo. Consultare la Macro BOLTS, che è un'interfaccia per l'inserimento di parti standard dalla libreria BOLTS.

Using utilities and parts that other people have created is easy and saves time. See the external workbenches page for information on external tools.

In particular, three resources are recommended that can be installed from the Addon Manager:
 * Fasteners Workbench, to add/attach various fasteners to parts. The screws and nuts don't show a thread by default, but this can be controlled with an option.
 * BOLTSFC Workbench, to place fasteners from the BOLTS library.
 * ThreadProfile Workbench, to create common threads.





Metodo 1. Usare le macro
C'è la famosa macro Screw Maker, creata da ulrich1a, e un intero Fasteners Workbench creato da shaise (link to GitHub). Queste macro hanno la possibilità di generare un filetto. Esse creano dei profili di filettatura standard (triangolare-ish).


 * In the past, the Macro BOLTS was used to insert the parts from the BOLTS library. This is now deprecated. Use the BOLTSFC Workbench instead.


 * In the past the stand-alone Screw Maker macro, by ulrich1a, was used to create individual bolts, screws, and washers. This is now deprecated. The Fasteners workbench, by shaise, includes the complete screw maker macro, together with a GUI to select the right component.



Metodo 2. Simulare accatastando dei dischi
Questo è un ottimo modo per visualizzare le filettature, pur mantenendo semplice la geometria.

In many cases we don't need real threads, we just need a visual indication that the threads will be there.

L'idea è quella di creare una filettatura non elicoidale (cioè che sia solo la rivoluzione di un profilo a dente di sega, o una pila di dischi con i bordi rastremati). Solo a vista, è difficile distinguere tale falsa filettatura da quella reale elicoidale. Questo può funzionare anche per FEM. Purtroppo, se si desidera stamparla in 3D, questo metodo non funziona.



Revolving sawtooth profile

 * 1) Click on.
 * 2) Click on . Select.
 * 3) Draw a closed sketch with the required inner diameter, outer diameter around , pitch , number of teeth , and total height.
 * 4) Select the sketch, then click on . Select, and press.





Stacking discs

 * 1) Repeat the first two steps from the previous section.
 * 2) Draw a closed sketch with the required inner diameter, outer diameter around , and pitch , but draw only a single tooth of the sawtooth.
 * 3) Select the sketch, then click on . Select, and press.
 * 4) Select the, then click on . Select . For a fake thread with a pitch of , set the  to , and  to , then press . This will create two discs, one on top of the other.
 * 5) You can add more discs by increasing the value of  in the linear pattern, and by raising the, which is the total length of the fake thread.

The and  are related. If the length is too large, but the number of occurrences is not high enough, you will have disconnected discs, and the Body computation will fail, as the resulting object must always be a single contiguous solid. For example, to get a total height of, set to  and  to.

If you wish, you may add a with a diameter equal to the inner diameter of the discs, and as high as the total thread height. This will join all discs into a single solid, thus guaranteeing that there will not be disconnected discs.







Idea
L'idea è piuttosto semplice: disegnare il profilo del filetto, e quindi eseguirne lo sweep lungo una elica. Quando si esegue lo sweep, accertarsi di spuntare le caselle di controllo Solido e Frenet. Solido è la chiave per poter eseguire delle operazioni di unione o di taglio su di esso. Frenet evita la torsione del profilo (ulteriori informazioni sono disponibili nella documentazione di Sweep).

PartDesign Workbench
A true thread consists of a closed profile sweeping a solid along a helical path.


 * 1) In the Workbench_Part.svg Part Workbench, click on  to create a . Give it the appropriate values for ,  , and.
 * 2) Move to the Workbench_PartDesign.svg PartDesign Workbench, and click on.
 * 3) Click on . Select.
 * 4) Draw a closed sketch with the required profile for the thread teeth, normally a triangular shape. In this case we will use a height of, which is slightly smaller than the  pitch used for the helix path. The profile must not create any self intersections when moved along the helix, neither between the turns nor in the middle, thus the sketch as shown for stacking disks cannot be used.
 * 5) Select the sketch, then click on . In, click on , and choose the helix object previously created. Then change  to  so that the profile sweeps the path without twisting; then press.
 * 6) When the dialog asks for a reference, choose.
 * 7) The helical coil is created, but there is no central body or shaft.
 * 8) Click on  with the appropriate   and   to touch the rest of the helical thread and automatically fuse to it.
 * 9) Additional boolean operations are needed to shape up the abrupt ends of the coil. For example, you can use additive features to provide a head to the screw, and a tip.







Part Workbench
This process can also be done with the tools of the Part Workbench.
 * 1) In the Workbench_Part.svg Part Workbench, click on  to create a . Give it the appropriate values for ,  , and.
 * 2) In this case, you don't need a . Switch to the Workbench_Sketcher.svg Sketcher Workbench, then click, and choose the global XZ plane.
 * 3) Then return to the Workbench_Part.svg Part Workbench, and use.
 * 4) Select the appropriate sketch from  and click the arrow to pass it to.
 * 5) Click, and choose all edges of the existing helix in the 3D view. Click.
 * 6) Make sure to tick  and . Obtaining a solid is the key to be able to perform Part Boolean operations with the resulting coil, otherwise only a surface will be produced.
 * 7) Click  to exit the dialog and create the coil.

Questo genera la spira del filetto, senza il supporto o il foro. Per effettuare una filettatura su un supporto o in un foro, si deve unire o tagliare questa spira con un cilindro. Ulteriori operazioni booleane sono necessarie per smussare le brutte estremità della spira che termina bruscamente.





Trucchi per avere successo

 * When the profile sweeps the helix, the resulting solid coil must not touch or self-intersect as it will be an invalid solid. This holds for the profile moving along the helix, as well as intersections in the center of the helix. Attempts to do boolean operations with it (fuse or cut) are very likely to fail. Check the quality of the coil with ; if self-intersections are reported, you must increase the pitch of the helix.

Regola 1. Lo sweep non deve auto-intersecarsi o toccarsi. Uno sweep auto-intersecante è un solido non valido. Molto probabilmente i tentativi di fonderlo o di tagliarlo sono destinati a fallire. Tuttavia, lasciando il filetto ed il cilindro non fusi, ma intersecati, questo può essere utile per la stampa 3d e la visualizzazione.


 * When a cylinder is added to a coil to form the main shaft of a screw, the cylinder must not be tangent to the coil profile. That is, the cylinder must not have the same radius as the inner radius of the thread, as this is very likely to fail a fuse operation. In general, avoid geometry coincident to elements of the sweep, such as tangent faces, or edges tangent to faces they are not connected to. In order to produce a good boolean union, the swept coil and the cylinder must intersect. Check the quality of the fusion with ; if coplanar faces are reported increase the cylinder's radius by a small amount.
 * If the coil and the cylinder are tangent, even if the first fusion succeeds, it may fail in subsequent boolean operations with a third solid.
 * This is a limitation of the OpenCASCADE Technology (OCCT) kernel; in general, it doesn't handle well operations between coplanar surfaces.

Regola 2. Ricordare che in FreeCAD un'elica è una cosa imprecisa. Di conseguenza, è molto probabile che la fusione del cilindro che deve accoppiarsi con la filettatura non vada a buon fine. In generale, evitare di far coincidere delle geometrie con gli elementi dello sweep, come facce tangenti, bordi tangenti alle facce a cui non sono connessi, bordi coincidenti e tangenti, etc.


 * The inner cylinder has a seamline. You should avoid placing the start of the helix along that seam. Either turn the helix or the cylinder by some degrees.

Suggerimento 1. Il raggio dell'elica non è importante (a meno che l'elica sia conica). Tutto ciò che conta è il passo e l'altezza della traiettoria elicoidale. Questo significa che è possibile utilizzare un elica generica per generare numerosi filetti con lo stesso passo.

Suggerimento 2. Mantenere il filetto corto (pochi giri). I filetti lunghi tendono a fallire nelle operazioni booleane. Se un filetto lungo si rivela problematico, considerare l'impilamento di filetti corti usando Draft Array.


 * For 3D visualization and 3D printing it may be okay to leave the cylinder and the thread unfused, that is, with intersections between the two solids. Reducing the amount the boolean operations results in less memory consumption and smaller files.



Pro e contro
+ Modo molto naturale di definire il profilo di una filettatura

+ facile da capire

- per l'invalidità degli sweep auto-intersecanti, è quasi impossibile generare un filetto senza lacune (cioè, senza facce cilindriche sui lati esterni o interni del filetto)



General
L'idea è quella di creare lo sweep di una sezione orizzontale del filetto lungo l'elica. Il problema principale è capire quale profilo si deve usare per ottenere un determinato filetto.



Se si usa un cerchio come profilo orizzontale (il cerchio deve essere posizionato scostato dall'origine, e questa distanza definisce la profondità del filetto), il profilo del filetto risulta sinusoidale.

Per ottenere un profilo standard a dente di sega, si devono fondere in un wire una coppia di spirali di Archimede riflesse. La figura risultante è una forma di cuore, che diventa a malapena distinguibile da un cerchio quando la profondità del filetto è piccola rispetto al suo diametro (è per questo motivo che nell'immagine sopra viene mostrato con una linea "spessa").



Generare il profilo
Non è facile capire qual è il profilo orizzontale necessario per ottenere un determinato profilo verticale. Per i casi semplici, come quello triangolare o trapezoidale, può essere costruito manualmente. In alternativa, può essere costruito creando un filetto corto con il metodo 3, e poi ricavando una sua sezione con una operazione Parte comune tra una faccia piana orizzontale e il filetto.

Figuring out the horizontal profile to obtain a certain vertical profile is not easy. For simple cases like triangular or trapezoidal it can be constructed manually. Alternatively, it can be constructed by creating a short thread with method 4, and getting a slice of it by doing a Part Common between a horizontal plane face and the thread.



Profilo per filetti triangolari

 * 1) Creare una spirale di Archimede nel piano XY.
 * 2) Impostare il numero di giri a 0.5,
 * 3) impostare il raggio interno del filetto (il raggio esterno è questo raggio + la profondità di taglio)
 * 4) e aggiungere il doppio della profondità di taglio del filetto.
 * 5) Riflettere la spirale sul piano XY
 * 6) Unire la spirale con la sua riflessione in modo da ottenere un contorno chiuso, a forma di cuore. Fatto!


 * 1) First create an Archimedian spiral in the XY plane.
 * 2) Set the number of turns to 0.5.
 * 3) Set the radius to the inner radius of the thread, the outer radius will be this plus the depth of the cut.
 * 4) Set the growth to double the depth of cut of the thread.
 * 5) Part Mirror the spiral against the XY plane
 * 6) Part Fuse the spiral and the mirror to obtain a closed wire, shaped like a heart.



Profilo per una sezione arbitraria




Fatto.
 * 1) Disegnare una sezione verticale del profilo. Assicurarsi che l'altezza del disegno corrisponda al passo della filettatura.
 * 2) Creare una elica1 con altezza identica al passo e il passo identico al passo della filettatura ed un raggio dell'elica di 0,42*diametro nominale della filettatura.
 * 3) Eseguire lo sweep del profilo della sezione lungo elica1. Impostare Solido e Frenet su true.
 * 4) Creare un cerchio con il raggio nominale della filettatura nel piano xy.
 * 5) Creare una faccia dal cerchio. (Ambiente Part: utilità avanzate per creare forme, oppure con Promuovi rendere MakeFace = true)
 * 6) Tagliare la faccia con il profilo dello sweep
 * 7) Fare un clone dal taglio (Ambiente Draft)
 * 8) Retrocedere il clone in modo da ottenere un wire (Ambiente Draft). Questo wire è il profilo orizzontale necessario per questo metodo.
 * 9) Creare una spirale con il raggio nominale, il passo e l'altezza  della filettatura desiderata.
 * 10) Eseguire lo sweep del wire lungo l'elica. Impostare Solido e Frenet su true.

Credito: guida passo-passo dal forum post by Ulrich1a, leggermente modificata.

I passaggi sono anche mostrati in azione in questo video di Gaurav Prabhudesai: http://www.youtube.com/watch?v=fxKxSOGbDYs



Pro e contro
+ Lo sweep crea la filettatura pronta per l'uso direttamente su una forma solida.


 * Edit_OK.svg a ready-to-use thread-on-a-rod solid shape is created by the sweep directly.
 * Edit_OK.svg fewer or even no boolean operations are required, so generation speed is very high compared to Method 4.
 * Edit_OK.svg thread ends are nicely cut straight away
 * Edit_OK.svg long threads are not a problem, unless a boolean operation is needed. Otherwise, it is not going to be much better than Method 4.
 * Edit_OK.svg threads without a gap are not a problem.

- È complicato definire il profilo del filetto.



Idea
Le Spline elicoidali estrudono delle facce coassiali che possono essere usate per un loft, mentre l'elica parametrica di FreeCAD no. Per definire una filettatura servono due spline elicoidali. Esse possono essere prelevate da una libreria di spline, poi posizionate ed estruse in modo appropriato per ottenere la giusta forma.

Le eliche parametriche di FreeCAD non sono veramente elicoidali, ma non è difficile tracciare delle b-spline elicoidali. Un metodo manuale consiste nel creare delle matrici dodecagonali (poligono di 12 lati) con 5mm di raggio, o 10mm di diametro, a intervalli z di 1/12mm (0.08333.mm) e tracciare una spline da vertice a vertice in ordine ascendente e rotazionale. Considerare di costruirle, ad esempio, per 10 giri, e poi archiviarle come file di una libreria in modo da poterle importare e riutilizzare. Per comodità di ridimensionamento, conviene usare un diametro di 10mm e un passo di 1mm. Fatto manualmente, è più facile disegnare una Dwire e poi convertirla in un b-spline che disegnare direttamente una spline. Nelle linee Dwire non viene calcolata la curvatura mentre vengono disegnate, quindi seguono meglio il cursore e obbediscono di più all'aggancio.

Once the splines are scaled to the right size and located so that the loft will have the right included angle between the thread flanks, they're extruded along their axis, a pitch length's worth for the inner spline, the outer pitch/8.



ISO e altri thread hanno alleviato, cioè bordi piatti, interni ed esterni piuttosto che affilati, il che si adatta agli utenti di FreeCAD con questo metodo, perché possiamo loft alla faccia elicoidale alla dimensione nominale del fissaggio, mentre una faccia interna non può essere loftata una spline del bordo esterno perché una faccia è un profilo chiuso, una spline è aperta. Lo standard ISO afferma che le dimensioni nominali dei filetti esterni hanno un passo della larghezza della faccia/8. L'immagine mostra come è organizzata la geometria e le facce elicoidali che ne risultano. Quindi, ai fili viene aggiunto un loft tra le facce e quindi un cilindro che dà la faccia elicoidale interna, che ISO mette a passo/4 di larghezza.



Questo metodo produce solidi affidabili che booleano correttamente. Sebbene non produca filettature "parametriche" in dimensioni standard nel senso di avere un accesso semplice alla forma in base alle dimensioni del dispositivo di fissaggio, è un modo semplice di produrre una libreria accurata per il riutilizzo e modelli di forme specializzate come ACME o viti Archimedian, sono anche semplici come one-offs.