Various updates
This commit is contained in:
@@ -0,0 +1 @@
|
||||
This thing was created by Thingiverse user doommeister, and is licensed under GNU - GPL
|
||||
@@ -0,0 +1,4 @@
|
||||
Fan Mount/Duct - OpenSCAD Library by doommeister on Thingiverse: https://www.thingiverse.com/thing:18273
|
||||
|
||||
Summary:
|
||||
An openSCAD library to make a mounting surround or duct for a DC fan of specified size and length. Use in you own openSCAD fan mount designs or specify a longer length to draw a section of ducting or a make-up piece.Dimensions of DC fan included are 25mm, 30mm, 40mm, 45mm, 60mm, 80mm, and 120mm. Of course you can define your own too.**V2 adds cutter option
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,156 @@
|
||||
/*
|
||||
OPENSCAD Library file by the DoomMeister
|
||||
Mounting surround for small DC fans (25 - 120mm)
|
||||
|
||||
Data taken from various places around the internet.
|
||||
http://www.qwikflow.com/dc_fans.html
|
||||
|
||||
//Released under the terms of the GNU GPL v3.0
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
//uncomment this for example
|
||||
//fan_mount(size=60,thick=3);
|
||||
|
||||
module fan_mount(size=40,thick = 4)
|
||||
{
|
||||
if(size == 25)
|
||||
{
|
||||
_fan_mount(
|
||||
fan_size = 25,
|
||||
fan_mounting_pitch = 20,
|
||||
fan_m_hole_dia = 3,
|
||||
holder_thickness = thick
|
||||
);
|
||||
}
|
||||
if(size == 30)
|
||||
{
|
||||
_fan_mount(
|
||||
fan_size = 30,
|
||||
fan_mounting_pitch = 24,
|
||||
fan_m_hole_dia = 3,
|
||||
holder_thickness = thick
|
||||
);
|
||||
}
|
||||
|
||||
if(size == 40)
|
||||
{
|
||||
_fan_mount(
|
||||
fan_size = 40,
|
||||
fan_mounting_pitch = 32,
|
||||
fan_m_hole_dia = 3.5,
|
||||
holder_thickness = thick
|
||||
);
|
||||
}
|
||||
if(size == 45)
|
||||
{
|
||||
_fan_mount(
|
||||
fan_size = 45,
|
||||
fan_mounting_pitch = 37,
|
||||
fan_m_hole_dia = 4.3,
|
||||
holder_thickness = thick
|
||||
);
|
||||
}
|
||||
if(size == 60)
|
||||
{
|
||||
_fan_mount(
|
||||
fan_size = 60,
|
||||
fan_mounting_pitch = 50,
|
||||
fan_m_hole_dia = 4.4,
|
||||
holder_thickness = thick
|
||||
);
|
||||
}
|
||||
if(size == 80)
|
||||
{
|
||||
_fan_mount(
|
||||
fan_size = 80,
|
||||
fan_mounting_pitch = 71.5,
|
||||
fan_m_hole_dia = 4.4,
|
||||
holder_thickness = thick
|
||||
);
|
||||
}
|
||||
|
||||
if(size == 120)
|
||||
{
|
||||
_fan_mount(
|
||||
fan_size = 120,
|
||||
fan_mounting_pitch = 105,
|
||||
fan_m_hole_dia = 4.4,
|
||||
holder_thickness = thick
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//inner module
|
||||
module _fan_mount(
|
||||
fan_size, //nominsl size of fan
|
||||
fan_mounting_pitch, //pitch between mounting holes
|
||||
fan_m_hole_dia, //mounting hole diameter
|
||||
holder_thickness //user defined thickness
|
||||
)
|
||||
{
|
||||
|
||||
offset1 = (fan_size-(fan_mounting_pitch + fan_m_hole_dia))/2;
|
||||
offset2 = (fan_size-(fan_mounting_pitch))/2;
|
||||
offset3 = offset2 + fan_mounting_pitch;
|
||||
thickness = (fan_size-fan_mounting_pitch)/2;
|
||||
|
||||
//difference()
|
||||
//{
|
||||
linear_extrude(height = holder_thickness)
|
||||
union()
|
||||
{
|
||||
difference()
|
||||
{
|
||||
translate([fan_m_hole_dia/2,fan_m_hole_dia/2,0])
|
||||
minkowski()
|
||||
{
|
||||
square([fan_size - fan_m_hole_dia,fan_size - fan_m_hole_dia]);
|
||||
circle(r= fan_m_hole_dia/2, $fn=20);
|
||||
}
|
||||
|
||||
translate([offset1,offset1,0])
|
||||
square([fan_mounting_pitch + fan_m_hole_dia,fan_mounting_pitch + fan_m_hole_dia]);
|
||||
}
|
||||
translate([offset2,offset2,0])
|
||||
rotate([0,0,0])_corner_hole();
|
||||
translate([offset3,offset2,0])
|
||||
rotate([0,0,90])_corner_hole();
|
||||
translate([offset2,offset3,0])
|
||||
rotate([0,0,90])_corner_hole();
|
||||
translate([offset3,offset3,0])
|
||||
rotate([0,0,0])_corner_hole();
|
||||
}
|
||||
|
||||
module _corner_hole()
|
||||
{
|
||||
difference(){
|
||||
union(){
|
||||
difference(){
|
||||
square([fan_m_hole_dia + thickness,fan_m_hole_dia + thickness],center=true);
|
||||
square([(fan_m_hole_dia + thickness)/2,(fan_m_hole_dia + thickness)/2],center=false);
|
||||
translate([-(fan_m_hole_dia + thickness)/2,-(fan_m_hole_dia + thickness)/2])
|
||||
square([(fan_m_hole_dia + thickness)/2,(fan_m_hole_dia + thickness)/2],center=false);
|
||||
}
|
||||
circle(r=(fan_m_hole_dia + thickness)/2, $fn=20);
|
||||
}
|
||||
circle(r=(fan_m_hole_dia)/2, $fn=20);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
echo(offset1,offset2,thickness);
|
||||
}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 56 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
Reference in New Issue
Block a user