Skip to content

Instantly share code, notes, and snippets.

@SharpCoder
Created June 30, 2022 14:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SharpCoder/02438da011c843ae5ff996b016219565 to your computer and use it in GitHub Desktop.
Save SharpCoder/02438da011c843ae5ff996b016219565 to your computer and use it in GitHub Desktop.
2-way telescope splitter
$fn=100;
mount_base_w = 32.4;
mount_top_w = 23.8;
mount_depth = 10.0;
splitter_stem = 7;
splitter_height = 30;
platform_length = 45;
platform_angle = 22.5;
module trapezoid(lower_base, upper_base, depth) {
polygon([
[-lower_base/2,-depth/2],
[lower_base/2,-depth/2],
[upper_base/2,depth/2],
[-upper_base/2,depth/2]
]);
};
module screw_bottom() {
bore = 3.75 + .2;
color("yellow")
rotate([-15,90,0])
translate([-10,-1,10])
linear_extrude(20)
circle(d=bore);
}
module screw_top() {
bore = 3.75 + .2;
color("yellow")
rotate([-15,90,0])
translate([-30,-1,10])
linear_extrude(20)
circle(d=bore);
}
module hex_top() {
color("yellow")
rotate([-15,90,0])
translate([-30,-1, 10+3])
linear_extrude(4)
circle(d=7.75+.5, $fn=6);
}
module hex_bottom() {
color("yellow")
rotate([-15,90,0])
translate([-10,-1,10+2.8])
linear_extrude(4)
circle(d=7.75+.5, $fn=6);
}
module finder_mount() {
base = 35;
top = 24;
height = 9.5;
margin = 7.4;
color("red")
difference() {
linear_extrude(39.5)
difference() {
trapezoid(base+margin*2, top+margin, height+margin);
trapezoid(base, top, height);
translate([0,5,0])
square([top,10], center=true);
}
// Screw bore
screw_bottom();
screw_top();
hex_top();
hex_bottom();
}
}
module orient_platform(rotation) {
translate([0,mount_depth + splitter_height, 0])
rotate([0,0,rotation])
children();
}
module part() {
translate([-splitter_stem/2, -10,0])
orient_platform(0)
square([splitter_stem,15], center=false);
translate([-(splitter_stem/2),mount_depth/2,0])
square([splitter_stem, splitter_height]);
trapezoid(mount_base_w, mount_top_w, mount_depth);
}
linear_extrude(39.5)
part();
rotate(-platform_angle)
translate([splitter_stem,mount_depth+splitter_height+6.8,0])
finder_mount();
rotate(platform_angle)
translate([-splitter_stem,mount_depth+splitter_height+6.8,0])
translate([0,0,39.5])
rotate([0, 180, 0])
finder_mount();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment