Skip to content

Instantly share code, notes, and snippets.

@patmandenver
Created April 24, 2022 17:09
Show Gist options
  • Save patmandenver/7f296896d8f8530916581bacbb739bee to your computer and use it in GitHub Desktop.
Save patmandenver/7f296896d8f8530916581bacbb739bee to your computer and use it in GitHub Desktop.
//
// Created by Patrick Bailey iQless.com
//
////////////////////////////////////////
$fn=200;
thickness = 7;
bevel_thickness = 1;
bevel = 1.1;
mirror([1,0,0]){
color("blue", 0.5){
translate([-18.7,18.67]){
//import("DH006.STL", center=true, convexity=3);
}
}
translate([0,0,-.1]){
scale([1,1,1.03]){
create_latch(thickness, bevel_thickness, bevel);
gate_hook(thickness, bevel_thickness, bevel);
in_between_space(thickness);
}
}
}
module in_between_space(thickness){
color("purple", 0.8){
linear_extrude(thickness){
difference(){
union(){
translate([-4.83, 43]){
rotate(84.5){
translate([-11+3, 0]){
square([11,3]);
}
}
}
hull(){
translate([1.5, 34.39]){
rotate(84.5){
square(8);
}
}
difference(){
translate([0,6.55,0]){
square(2*6.55, center=true);
}
translate([-15,0]){
square([14,14]);
}
}
}
}
circle(6.55);
}
}
}
}
module gate_hook(thickness, bevel_thickness, bevel){
color("green", 0.8){
linear_extrude(thickness){
create_hook();
}
translate([0,0, thickness - bevel_thickness]){
create_hook_bevel(bevel_thickness, bevel);
}
translate([0,0,bevel_thickness]){
mirror([0,0,1]){
create_hook_bevel(bevel_thickness, bevel);
}
}
}
}
module create_hook_bevel(thickness, scale_it){
translate([-2.86,47.86]){
linear_extrude(thickness, scale=scale_it){
translate([2.86,-47.86]){
create_hook();
}
}
}
}
module create_hook(){
hull(){
translate([-2.86,47.86]){
circle(2);
}
translate([-4.2,46.17]){
circle(.2);
}
}
hull(){
translate([-4.2,46.17]){
circle(.2);
}
translate([-4.6,45.5]){
rotate(40){
square(1);
}
}
}
difference(){
hull(){
translate([-4.6,45.5]){
rotate(40){
square(1);
}
}
translate([-5.2,46.2]){
rotate(-5){
square([2,5]);
}
}
}
translate([-2.6,51.35]){
circle(1.5);
}
}
}
module create_latch(thickness, bevel_thickness, bevel){
color("red"){
linear_extrude(thickness){
create_oval();
}
translate([0,0, thickness - bevel_thickness]){
create_oval_bevel(bevel_thickness, bevel);
}
translate([0,0,bevel_thickness]){
mirror([0,0,1]){
create_oval_bevel(bevel_thickness, bevel);
}
}
}
}
module create_oval_bevel(thickness, scale_it){
rotate(255){
translate([7.9/2,0]){
linear_extrude(thickness, scale=scale_it){
translate([-7.9/2,0]){
rotate(-255){
create_oval();
}
}
}
}
}
}
module create_oval(){
hull(){
circle(4);
rotate(255){
translate([7.9,0]){
circle(4);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment