uniwersalny divider
This commit is contained in:
parent
03a716ea44
commit
0567c0e92e
1 changed files with 89 additions and 0 deletions
89
Jan/Customizeable_Drawer_Divider.scad
Normal file
89
Jan/Customizeable_Drawer_Divider.scad
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
//!OpenSCAD
|
||||||
|
// https://www.thingiverse.com/thing:2764423/files
|
||||||
|
|
||||||
|
//The length of the divider
|
||||||
|
Divider_Length = 130;
|
||||||
|
//Wether to create a linear connector on the left/top end
|
||||||
|
Left_Top_Connector = true;
|
||||||
|
//Wether to invert the left/top connector
|
||||||
|
Left_Top_Connector_Inverted = false;
|
||||||
|
//Wether to create a linear connector on the right/bottom end
|
||||||
|
Right_Bottom_Connector = true;
|
||||||
|
//Wether to invert the right/bottom connector
|
||||||
|
Right_Bottom_Connector_Inverted = true;
|
||||||
|
//The positions to create a slit of Divider_Thickness width for perpendicular connections at
|
||||||
|
Positions_Connectors = [30, 65, 100];
|
||||||
|
|
||||||
|
//The height of the divider
|
||||||
|
Divider_Height = 50;
|
||||||
|
//The thickness of the divider (Should give an even number if diveded by layer height)
|
||||||
|
Divider_Thickness = 2;
|
||||||
|
//The length of overlap regions for connecting
|
||||||
|
Overlap_Length = 20;
|
||||||
|
//The diameter of the holes and knobs for connecting (Sould be smaller than Overlap_Length
|
||||||
|
Diameter_Connectors = 10;
|
||||||
|
//The amount of connectors per overlap region (Must be smaller than Divider_Height divided by Diameter_Connectors
|
||||||
|
Amount_Connectors = 2;
|
||||||
|
//Wether to ignore problems that could result in a failing print
|
||||||
|
Ignore_Problems = false;
|
||||||
|
|
||||||
|
//Circle Resolution
|
||||||
|
$fn = 32;
|
||||||
|
|
||||||
|
//Internal Calculations
|
||||||
|
Reduced_Divider_Length = Divider_Length - (Left_Top_Connector ? Overlap_Length / 2 : 0) - (Right_Bottom_Connector ? Overlap_Length / 2 : 0);
|
||||||
|
Left_Top_Offset = Left_Top_Connector ? Overlap_Length / 2 : 0;
|
||||||
|
|
||||||
|
if (!Ignore_Problems
|
||||||
|
&& ( (Overlap_Length < Diameter_Connectors)
|
||||||
|
|| ((Divider_Height / Diameter_Connectors) < Amount_Connectors)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
translate([0, Divider_Height, 0])
|
||||||
|
text("Warning! Print might not give a good result", halign="center", valign="center");
|
||||||
|
difference() {
|
||||||
|
cube([Reduced_Divider_Length, Divider_Height, Divider_Thickness], center=true);
|
||||||
|
|
||||||
|
for (x = Positions_Connectors)
|
||||||
|
translate([-Reduced_Divider_Length/2+x-Left_Top_Offset, Divider_Height/4 + 0.01, 0])
|
||||||
|
cube([Divider_Thickness, Divider_Height/2, Divider_Thickness+0.02], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Left_Top_Connector) {
|
||||||
|
translate([-(Reduced_Divider_Length+Overlap_Length)/2, 0, 0]) {
|
||||||
|
if (Left_Top_Connector_Inverted)
|
||||||
|
mirror([0,0,1])
|
||||||
|
Connector();
|
||||||
|
else
|
||||||
|
Connector();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Right_Bottom_Connector) {
|
||||||
|
translate([(Reduced_Divider_Length+Overlap_Length)/2, 0, 0]) {
|
||||||
|
rotate([180,0,0]) {
|
||||||
|
if (Right_Bottom_Connector_Inverted)
|
||||||
|
mirror([0,0,1])
|
||||||
|
Connector();
|
||||||
|
else
|
||||||
|
Connector();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module Connector() {
|
||||||
|
union(){
|
||||||
|
difference(){
|
||||||
|
translate([0, 0, -Divider_Thickness/4])
|
||||||
|
cube([Overlap_Length, Divider_Height, Divider_Thickness/2], center=true);
|
||||||
|
|
||||||
|
for (i = [0 : 2 : Amount_Connectors - 1])
|
||||||
|
translate([0, -Divider_Height/2 + ((i+0.5)*Divider_Height/Amount_Connectors), -Divider_Thickness/4 + 0.01])
|
||||||
|
cylinder(h=Divider_Thickness/2 + 0.03, r1=(Diameter_Connectors-Divider_Thickness/2)/2, r2=(Diameter_Connectors+Divider_Thickness/2)/2, center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = [1 : 2 : Amount_Connectors - 1])
|
||||||
|
translate([0, -Divider_Height/2 + ((i+0.5)*Divider_Height/Amount_Connectors), Divider_Thickness/4 + 0.01])
|
||||||
|
cylinder(h=Divider_Thickness/2 + 0.03, r1=(Diameter_Connectors+Divider_Thickness/2)/2, r2=(Diameter_Connectors-Divider_Thickness/2)/2, center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue