From a277a0272036983f7530b66e153a052b0cef467b Mon Sep 17 00:00:00 2001 From: LooseTooth Date: Tue, 15 Dec 2020 14:00:31 +0100 Subject: [PATCH] more designs --- CNC_T_nut.scad | 44 +++++++++++++++++++++++ cnc_controller_mount.scad | 37 +++++++++++++++++++ cnc_feet.scad | 19 ++++++++++ cutlery_divider.scad | 35 ++++++++++++++++++ mesh_knit_bag.scad | 53 ++++++++++++++++++++++++++++ ratchet_wrench_extension_holder.scad | 36 +++++++++++++++++++ rod.scad | 9 +++++ rod_cap.scad | 11 ++++++ temp.scad | 6 ++++ 9 files changed, 250 insertions(+) create mode 100644 CNC_T_nut.scad create mode 100644 cnc_controller_mount.scad create mode 100644 cnc_feet.scad create mode 100644 cutlery_divider.scad create mode 100644 mesh_knit_bag.scad create mode 100644 ratchet_wrench_extension_holder.scad create mode 100644 rod.scad create mode 100644 rod_cap.scad create mode 100644 temp.scad diff --git a/CNC_T_nut.scad b/CNC_T_nut.scad new file mode 100644 index 0000000..8698623 --- /dev/null +++ b/CNC_T_nut.scad @@ -0,0 +1,44 @@ +printer_offset = 0.5; +top_slot_width = 8; +top_slot_height = 2; +middle_slot_width = 14; +middle_slot_height = 7; + +length = 20; + +module T_nut(){ + translate([-middle_slot_width/2, length/2, middle_slot_height-printer_offset]) + rotate([90, 0, 0]) + linear_extrude(length) + offset(delta = -printer_offset/3) + polygon( + [ + [0,0], + [0, -middle_slot_height], + [middle_slot_width, -middle_slot_height], + [middle_slot_width, 0], + [middle_slot_width - (middle_slot_width - top_slot_width)/2, 0], + [middle_slot_width - (middle_slot_width - top_slot_width)/2, top_slot_height], + [middle_slot_width - (middle_slot_width - top_slot_width)/2 - top_slot_width, top_slot_height], + [middle_slot_width - (middle_slot_width - top_slot_width)/2 - top_slot_width, 0] + ] + ); +} + +module cylinder_outer(height,radius,fn){ + fudge = 1/cos(180/fn); + cylinder(h=height,r=radius*fudge, center=true, $fn=fn);} + +module hex(size, height){ + cylinder_outer(height, size/2, 6); +} + +difference(){ + T_nut(); + cylinder(r=3+printer_offset/2, h=100, center=true, $fn=30); + + translate([0,0,-0.3]) + rotate([0,0,30]) + hex(10, 10); +} + diff --git a/cnc_controller_mount.scad b/cnc_controller_mount.scad new file mode 100644 index 0000000..9282a9e --- /dev/null +++ b/cnc_controller_mount.scad @@ -0,0 +1,37 @@ +small_dist = 0.1; + +depth = 20; +width = 340; +height = 152; +thickness = 3; +tab_width = 20; +tab_hole_r = 2.5; + +mount(depth, width, height, thickness); + +module mount(depth, width, height, thickness){ + union(){ + tab(depth, tab_width, thickness, tab_hole_r); + translate([(width+tab_width)/2, 0, -height]) + U(width, height, depth, thickness); + translate([width+tab_width, 0, 0]) + tab(depth, tab_width, thickness, tab_hole_r); + } +} + +module tab(depth, width, thickness, hole_r) { + difference(){ + cube([width, depth, thickness], center=true); + cylinder(r=hole_r, h=thickness+small_dist, center=true); + } +} + +module U(width, height, depth, thickness){ + union(){ + cube([width+2*thickness, depth, thickness], center=true); + translate([-(width+thickness)/2, 0, height/2]) + cube([thickness, depth, height], center=true); + translate([(width+thickness)/2, 0, height/2]) + cube([thickness, depth, height], center=true); + } +} \ No newline at end of file diff --git a/cnc_feet.scad b/cnc_feet.scad new file mode 100644 index 0000000..03066c5 --- /dev/null +++ b/cnc_feet.scad @@ -0,0 +1,19 @@ + + +//**************************************************************** +//* Name : Jack Feet * +//* Author : Robert Joseph Korn * +//* Notice : Copyright (c) 2015 Open Valley Consulting Corp * +//* : All Rights Reserved * +//* Date : 3/12/15 * +//* Version : 1.0 * +//* Notes : Simple feet to protect CNC table * +//* : * +//**************************************************************** + +bolt_dia = 6; + +difference(){ + cylinder (r1=10,r2=(bolt_dia+2)/2,h=10, $fn=8); + translate(v=[0,0,4]) cylinder(r=bolt_dia/2,h=8, $fn=50); +} diff --git a/cutlery_divider.scad b/cutlery_divider.scad new file mode 100644 index 0000000..c040360 --- /dev/null +++ b/cutlery_divider.scad @@ -0,0 +1,35 @@ +wedge_thickness = 2; +slots_x = 4; +slots_y = 4; + +x_outside = 56; +y_outside = 68; + +outside_offset = 2; +outside_offset_seat = 1; +seat_width = 1; + +union(){ + linear_extrude(2){ + difference(){ + slot_width = (x_outside - 2 * outside_offset - (slots_x-1)*wedge_thickness) / slots_x; + slot_height = (y_outside - 2 * outside_offset - (slots_y-1)*wedge_thickness) / slots_y; + square(size=[x_outside, y_outside], center=false); + translate([outside_offset, outside_offset, 0]) + for (i =[0:slots_y-1]){ + for (j = [0:slots_x-1]){ + translate([j*(slot_width+wedge_thickness), i*(slot_height+wedge_thickness), 0]) + square(size=[slot_width, slot_height], center=false); + } + } + } + } + linear_extrude(5){ + translate([outside_offset_seat, outside_offset_seat]) + difference(){ + square(size=[x_outside-2*outside_offset_seat, y_outside-2*outside_offset_seat], center=false); + translate([outside_offset_seat, outside_offset_seat, 0]) + square(size=[x_outside-2*outside_offset_seat-2*seat_width, y_outside-2*outside_offset_seat-2*seat_width], center=false); + } + } +} \ No newline at end of file diff --git a/mesh_knit_bag.scad b/mesh_knit_bag.scad new file mode 100644 index 0000000..e6034dd --- /dev/null +++ b/mesh_knit_bag.scad @@ -0,0 +1,53 @@ + +linear_extrude(1) +pattern(1000, 1, 4){ + // square(size=[50, 50], center=true); + scale_uniform(3){ + import("/home/bart/Downloads/laura_bag_1.svg"); + } +} + +module pattern(mesh_size, line_width, spacing){ + union(){ + intersection(){ + mesh(mesh_size, line_width, spacing); + children(0); + } + // calculate border + difference(){ + children(0); + offset(r=-line_width){ + children(0); + } + } + } +} + +module mesh(size, line_width, spacing){ + // Note that mesh always has to be even. + // This translates into the first lines being perfectly centered. + + // Start by calculating amount of spacings + n_size = (size-line_width)/(line_width+spacing); + + step = line_width + spacing; + for(i=[0:n_size/2]){ + // vertical lines + translate([i*step, 0, 0]) + square(size=[line_width, size], center=true); + translate([-i*step, 0, 0]) + square(size=[line_width, size], center=true); + + // horizontal lines + translate([0, i*step, 0]) + square(size=[size, line_width], center=true); + translate([0, -i*step, 0]) + square(size=[size, line_width], center=true); + } +} + +module scale_uniform(my_scale){ + scale([my_scale, my_scale]){ + children(0); + } +} \ No newline at end of file diff --git a/ratchet_wrench_extension_holder.scad b/ratchet_wrench_extension_holder.scad new file mode 100644 index 0000000..ed28cd3 --- /dev/null +++ b/ratchet_wrench_extension_holder.scad @@ -0,0 +1,36 @@ +angle = 120; +thickness = 4; +diam_offset = 1; +$fn=100; + +module arm(inner_radius, angle, thickness){ + rotate_extrude(angle=angle){ + translate([inner_radius+thickness/2,0,0]) square(size=[thickness, thickness], center=true); + } +} + +module grasp(inner_radius, angle, thickness){ + arm(inner_radius, angle, thickness); + mirror([0, 1, 0]) { + arm(inner_radius, angle, thickness); + } +} + +grasp(8+diam_offset/2, angle, thickness); +translate([1.5, 25,0]) grasp(6.12+diam_offset/2, angle, thickness); +translate([3, 46,0]) grasp(4.25+diam_offset/2, angle, thickness); + +translate([16,23,15-thickness/2]) +difference(){ + cube(size=[thickness, 60, 30], center=true); + + translate([0,10,0]) + rotate([0,90,0]) + cylinder(r=2, h=10, center=true); + translate([0,-10,0]) + rotate([0,90,0]) + cylinder(r=2, h=10, center=true); +} + +translate([12, 23, 0]) +cube(size=[thickness, 60, 4], center=true); \ No newline at end of file diff --git a/rod.scad b/rod.scad new file mode 100644 index 0000000..911e79e --- /dev/null +++ b/rod.scad @@ -0,0 +1,9 @@ +diam = 12.5; +difference() +{ + translate([0,0,4.5]) + rotate([90,0,0]) + cylinder(r=diam/2, h=200, center=true, $fn=100); + translate([0,0,-250]) + cube(size=[500, 500, 500], center=true); +} \ No newline at end of file diff --git a/rod_cap.scad b/rod_cap.scad new file mode 100644 index 0000000..1fad8da --- /dev/null +++ b/rod_cap.scad @@ -0,0 +1,11 @@ +thickness = 2; +inside = 12.5; +$fn=100; + +union(){ + difference(){ + cylinder(r=inside/2+thickness, h=10, center=true); + translate([0,0,thickness]) + cylinder(r=inside/2, h=10, center=true); + } +} \ No newline at end of file diff --git a/temp.scad b/temp.scad new file mode 100644 index 0000000..805b10b --- /dev/null +++ b/temp.scad @@ -0,0 +1,6 @@ +linear_extrude(30){ + difference(){ + circle(r=13.5); + circle(r=10); + } +} \ No newline at end of file