Customizable Fan Grill Cover - Hacks
thingiverse
Use scad library from: https://www.thingiverse.com/thing:2802474 Add a random pattern module: module random_pattern(size, line_size, line_space) diff = (line_space / 10); seed=17; min_rad = (line_space / 2 * sqrt(3)) / 2 + line_size / 2; y_offset = sqrt(min_rad * min_rad * 4 - min_rad * min_rad); num_x = ceil(size / min_rad / 2) * 1.42; num_y = ceil(size / y_offset) * 1.42; difference() square([size * 1.42, size * 1.42], center=true); for(y=[floor(-num_y / 2) : ceil(num_y / 2)]) odd = (y % 2 == 0) ? 0 : min_rad; for(x=[floor(-num_x / 2) : ceil(num_x / 2)]) translate([x * min_rad * 2 + odd, y * y_offset]) rotate(30) single_rand = rands(4,9,1)[0]; circle(d=line_space-diff, $fn=single_rand); Add a free pattern module: module free_pattern(size, line_size, line_space, fn_pattern) diff = (line_space / 10); min_rad = (line_space / 2 * sqrt(3)) / 2 + line_size / 2; y_offset = sqrt(min_rad * min_rad * 4 - min_rad * min_rad); num_x = ceil(size / min_rad / 2) * 1.42; num_y = ceil(size / y_offset) * 1.42; difference() square([size * 1.42, size * 1.42], center=true); for(y=[floor(-num_y / 2) : ceil(num_y / 2)]) odd = (y % 2 == 0) ? 0 : min_rad; for(x=[floor(-num_x / 2) : ceil(num_x / 2)]) translate([x * min_rad * 2 + odd, y * y_offset]) rotate(30) circle(d=line_space-diff, $fn=single_rand); and modify fan_cover module adding new pattern modules: if(grill_pattern == "random") random_pattern(cover_size, line_size, line_space); else if(grill_pattern == "honeycomb") .... ... else free_pattern(cover_size, line_size, line_space, grill_pattern); For use free_pattern, grill_pattern var will be a number >= 3 (not a string) Another interesting hack is introduce spherical projection to the pattern: // scale intersection (projection) with the sphere scale([1,1,0.2]) intersection() { difference() { sphere(d=cover_size - min_border_size ); sphere(d=cover_size - min_border_size * 3); }; } // add cover_size to original linear_extrude height linear_extrude(height = grill_pattern_h+cover_size, convexity = 20) { .... } With the spherical projection, you can apply some scale on linear_extrude + eliminate the second sphere (which eliminate the hole) and you obtain funnels for air dispersion (Example 11,12 or 13) difference() { sphere(d=cover_size - min_border_size ); *sphere(d=cover_size - min_border_size * 3); // eliminate the hole }; linear_extrude(height = grill_pattern_h+cover_size, convexity = 20 , scale=1.5) // add scale for dispersion {.... Finally, add some twist effects and get something like example 14: linear_extrude(height = grill_pattern_h+cover_size, convexity = 20, scale=1.5 , twist = -50, slices=100) // add twist efect {
With this file you will be able to print Customizable Fan Grill Cover - Hacks with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on Customizable Fan Grill Cover - Hacks.