Generatore di fori concentrici per griglie ventole

post

Un semplice script parametrico OpenSCAD in grado di generare un oggetto solido esportabile ed utilizzabile nel proprio sistema CAD per praticare fori/anelli concentrici idonei a ventole di raffreddamento

Scopo dello script

A volte capita, durante la progettazione di un dispositivo, di dovere aggiungere allo stesso una o più ventole di raffreddamento. Poiché le ventole devono potere soffiare l’aria da/verso l’ambiente esterno, è necessario praticare dei fori sulla superficie del case che si va a disegnare. Esistono, di norma, due soluzioni:

  1. Praticare un banale foro circolare di diametro leggermente inferiore a quello del rotore della ventola, predisponendo i necessari fori laterali per potere agganciare una griglia di protezione;
  2. Ricavare una serie di molti, piccoli fori o fenditure di passaggio dell’aria direttamente sulla scocca del case, evitando quindi di dovere prevedere i fori per montare la griglia di protezione, e l’uso della griglia stessa.

Naturalmente, sia per ragioni di costi che di assemblaggio, la soluzione (2) è spesso preferibile. Lo script che segue consente appunto di generare il “negativo” di tali fori/fenditure. Esso costruisce una serie di oggetti solidi di dimensioni e caratteristiche parametriche, che possono essere poi usati per “forare” la superficie del case in questione.

Esempio applicativo

Di seguito un esempio pratico su come utilizzare gli oggetti generati dallo script. Si supponga di dovere praticare dei fori in questo case:

Come prima cosa, è necessario generare gli oggetti con i parametri desiderati:

In seguito è sufficiente posizionarli sul case in modo da avere una intersezaione completa con le superfici da forare, e tramite il proprio CAD eseguire una operazione booleana di tipo “difference” o “combine”

Una volta fatto, è sufficiente rimuovere gli oggetti di foratura e gli eventuali “sfridi” rimanenti dall’operazione “difference”, ed ecco i fori di ventilazione pronti per l’uso.

Lo script

/* [FAN FEATURES] */

// How large is the fan rotor ? (mm)
OuterDiameter=38;
// How large is the inner part of the fan rotator ? (mm)
InnerDiameter=5;

/* [RINGS] */

// How many concentric rings should be generated ?
NumberOfRings = 3; // [1:20]
// The height of the extruded rings (mm)
Height = 10;
// The number of faces on each ring perimeter
Resoultion=45; // [3:100]

/* [CONNECTORS] */

// With of the solid connectors that keeps the rings attached to the surface (mm)
ConnectorsWidth=2;
// Generate a pair of solid orthogonal connectors ?
AddOrtogonalConnectors=”YES”; // [YES,NO]
// Generate a pair of solid diagonal connectors ?
AddDiagonalConnectors=”YES”; // [YES,NO]

// VARIABLES INITIALIZATION
echo(“OuterDiameter=”,OuterDiameter);
echo(“InnerDiameter=”,InnerDiameter);
echo(“NumberOfRings=”,NumberOfRings);
echo(“Height=”,Height);
echo(“Resoultion=”,Resoultion);

OuterRadius = OuterDiameter/2;
echo(“OuterRadius=”,OuterRadius);
InnerRadius = InnerDiameter/2;
echo(“InnerRadius=”,InnerRadius);

DeltaRadius = OuterRadius-InnerRadius;
echo(“DeltaRadius=”,DeltaRadius);
RingRadiusStep =DeltaRadius/(NumberOfRings*2-1);
echo(“RingRadiusStep=”,RingRadiusStep);

difference()
{
for (i=[0:2:(NumberOfRings*2-1)])
{
echo(i,” – Outer radius=”,OuterRadius-(RingRadiusStep*(i)));
echo(i,” – Inner radius=”,OuterRadius-(RingRadiusStep*(i+1)));
difference()
{
cylinder(h=Height,r=OuterRadius-(RingRadiusStep*(i)), center = true, $fn=Resoultion);
cylinder(h=Height,r=OuterRadius-(RingRadiusStep*(i+1)), center = true, $fn=Resoultion);
}
}

if(AddOrtogonalConnectors==”YES”)
{
cube(size = [OuterDiameter*1.1,ConnectorsWidth,Height], center = true);
cube(size = [ConnectorsWidth,OuterDiameter*1.1,Height], center = true);
}

if(AddDiagonalConnectors==”YES”)
{
rotate([0,0,45])
{
cube(size = [OuterDiameter*1.1,ConnectorsWidth,Height], center = true);
cube(size = [ConnectorsWidth,OuterDiameter*1.1,Height], center = true);
}
}

}

I parametri dello script

Come è possibile notare, in testa allo script sono dichiarare le variabili che regolano il funzionamento dello script:

  • OuterDiameter=38; // il diametro esterno dell’anello più grande
    InnerDiameter=5; // il diametro interno dell’anello più piccolo
    NumberOfRings = 3; // numero di anelli concentrici da generare
    ConnectorsWidth=2; // larghezza dei connettori (vedi sotto) che vengono creati per sostenere gli anelli
    Height = 3; // altezza di estrusione della forma
    Resoultion=45; // risoluzione del perimetro degli anelli. Il numero rappresenta le faccie degli anelli
    AddOrtogonalConnectors=true; // indica se generare o meno i connettori/supporti ortogonali agli assi
    AddDiagonalConnectors=true; // indica se generare o meno i connettori/supporti diagonali rispetto agli assi

Gli esempi che seguono dimostrano il funzionamento dello script con diversi valori di questi parameri.

Per un esempio “live” di questo script, fare riferimento a http://www.thingiverse.com/thing:458670, oppure usare direttamente il “customizer” di Thingiverse a questo indirizzo http://www.thingiverse.com/apps/customizer/run?thing_id=458670

Esempio 1

Diametro esterno: 38mm
Diametro interno: 10mm
Numero anelli: 2
Larghezza supporti a croce: 2mm

Modello 1

[canvasio3D width=”600″ height=”600″ border=”1″ borderCol=”#F6F6F6″ dropShadow=”0″ backCol=”#FFFFFF” backImg=”…” mouse=”on” rollMode=”off” rollSpeedH=”0″ rollSpeedV=”0″ objPath=”..Concentric_Holes_38_10_2_2.” objScale=”1.5″ objColor=”56000″ lightSet=”4″ reflection=”off” refVal=”5″ objShadow=”off” floor=”off” floorHeight=”42″ lightRotate=”off” Help=”off”] [/canvasio3D]

Esempio 2

Diametro esterno: 38mm
Diametro interno: 10mm
Numero anelli: 3
Larghezza supporti a croce: 2mm

Modello 2

[canvasio3D width=”600″ height=”600″ border=”1″ borderCol=”#F6F6F6″ dropShadow=”0″ backCol=”#FFFFFF” backImg=”…” mouse=”on” rollMode=”off” rollSpeedH=”0″ rollSpeedV=”0″ objPath=”.Concentric_Holes_38_10_3_2..” objScale=”1.5″ objColor=”56000″ lightSet=”4″ reflection=”off” refVal=”5″ objShadow=”off” floor=”off” floorHeight=”42″ lightRotate=”off” Help=”off”] [/canvasio3D]

Esempio 3 – NO SUPPORTI DIAGONALI

Diametro esterno: 38mm
Diametro interno: 10mm
Numero anelli: 3
Larghezza supporti a croce: 2mm

Modello 3

[canvasio3D width=”600″ height=”600″ border=”1″ borderCol=”#F6F6F6″ dropShadow=”0″ backCol=”#FFFFFF” backImg=”…” mouse=”on” rollMode=”off” rollSpeedH=”0″ rollSpeedV=”0″ objPath=”.Concentric_Holes_38_10_3_2_NoDiagonals..” objScale=”1.5″ objColor=”56000″ lightSet=”4″ reflection=”off” refVal=”5″ objShadow=”off” floor=”off” floorHeight=”42″ lightRotate=”off” Help=”off”] [/canvasio3D]

Esempio 4 – NO SUPPORTI ORTOGONALI

Diametro esterno: 38mm
Diametro interno: 10mm
Numero anelli: 3
Larghezza supporti a croce: 2mm

Modello 4

[canvasio3D width=”600″ height=”600″ border=”1″ borderCol=”#F6F6F6″ dropShadow=”0″ backCol=”#FFFFFF” backImg=”…” mouse=”on” rollMode=”off” rollSpeedH=”0″ rollSpeedV=”0″ objPath=”.Concentric_Holes_38_10_3_2_NoOrtho..” objScale=”1.5″ objColor=”56000″ lightSet=”4″ reflection=”off” refVal=”5″ objShadow=”off” floor=”off” floorHeight=”42″ lightRotate=”off” Help=”off”] [/canvasio3D]

Esempio 5

Diametro esterno: 38mm
Diametro interno: 10mm
Numero anelli: 4
Larghezza supporti a croce: 2mm

Modello 5

[canvasio3D width=”600″ height=”600″ border=”1″ borderCol=”#F6F6F6″ dropShadow=”0″ backCol=”#FFFFFF” backImg=”…” mouse=”on” rollMode=”off” rollSpeedH=”0″ rollSpeedV=”0″ objPath=”.Concentric_Holes_38_10_4_2..” objScale=”1.5″ objColor=”56000″ lightSet=”4″ reflection=”off” refVal=”5″ objShadow=”off” floor=”off” floorHeight=”42″ lightRotate=”off” Help=”off”] [/canvasio3D]

Esempio 6

Diametro esterno: 38mm
Diametro interno: 10mm
Numero anelli: 5
Larghezza supporti a croce: 2mm

Modello 6

[canvasio3D width=”600″ height=”600″ border=”1″ borderCol=”#F6F6F6″ dropShadow=”0″ backCol=”#FFFFFF” backImg=”…” mouse=”on” rollMode=”off” rollSpeedH=”0″ rollSpeedV=”0″ objPath=”.Concentric_Holes_38_10_5_2..” objScale=”1.5″ objColor=”56000″ lightSet=”4″ reflection=”off” refVal=”5″ objShadow=”off” floor=”off” floorHeight=”42″ lightRotate=”off” Help=”off”] [/canvasio3D]

Esempio 7

Diametro esterno: 38mm
Diametro interno: 5mm
Numero anelli: 3
Larghezza supporti a croce: 2mm

Modello 7

[canvasio3D width=”600″ height=”600″ border=”1″ borderCol=”#F6F6F6″ dropShadow=”0″ backCol=”#FFFFFF” backImg=”…” mouse=”on” rollMode=”off” rollSpeedH=”0″ rollSpeedV=”0″ objPath=”.Concentric_Holes_38_5_3_2..” objScale=”1.5″ objColor=”56000″ lightSet=”4″ reflection=”off” refVal=”5″ objShadow=”off” floor=”off” floorHeight=”42″ lightRotate=”off” Help=”off”] [/canvasio3D]

Esempio 8

Diametro esterno: 38mm
Diametro interno: 7mm
Numero anelli: 5
Larghezza supporti a croce: 2mm

Modello 8

[canvasio3D width=”600″ height=”600″ border=”1″ borderCol=”#F6F6F6″ dropShadow=”0″ backCol=”#FFFFFF” backImg=”…” mouse=”on” rollMode=”off” rollSpeedH=”0″ rollSpeedV=”0″ objPath=”..Concentric_Holes_38_7_5_2.” objScale=”1.5″ objColor=”56000″ lightSet=”4″ reflection=”off” refVal=”5″ objShadow=”off” floor=”off” floorHeight=”42″ lightRotate=”off” Help=”off”] [/canvasio3D]

Esempio 9

Diametro esterno: 38mm
Diametro interno: 7mm
Numero anelli: 5
Larghezza supporti a croce: 2mm
Numero faccie: 4

Modello 9

[canvasio3D width=”600″ height=”600″ border=”1″ borderCol=”#F6F6F6″ dropShadow=”0″ backCol=”#FFFFFF” backImg=”…” mouse=”on” rollMode=”off” rollSpeedH=”0″ rollSpeedV=”0″ objPath=”..Concentric_Holes_38_5_3_4.” objScale=”1.5″ objColor=”56000″ lightSet=”4″ reflection=”off” refVal=”5″ objShadow=”off” floor=”off” floorHeight=”42″ lightRotate=”off” Help=”off”] [/canvasio3D]

Esempio 10

Diametro esterno: 38mm
Diametro interno: 7mm
Numero anelli: 5
Larghezza supporti a croce: 2mm
Numero faccie: 6

Modello 10

[canvasio3D width=”600″ height=”600″ border=”1″ borderCol=”#F6F6F6″ dropShadow=”0″ backCol=”#FFFFFF” backImg=”…” mouse=”on” rollMode=”off” rollSpeedH=”0″ rollSpeedV=”0″ objPath=”Concentric_Holes_38_5_3_6…” objScale=”1.5″ objColor=”56000″ lightSet=”4″ reflection=”off” refVal=”5″ objShadow=”off” floor=”off” floorHeight=”42″ lightRotate=”off” Help=”off”] [/canvasio3D]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.