diff --git a/Makefile b/Makefile index effc886..fdc6d69 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ all: frame_top.stl frame_motor.stl carriage.stl endstop.stl glass_tab.stl \ effector.stl retractable.stl power_supply.stl extruder.stl frame_extruder.stl \ -m5_internal.stl plate_3x.stl plate_1x.stl \ +glass_frame.stl m5_internal.stl plate_3x.stl plate_1x.stl \ switch_holder.stl hotend_fan.stl .SECONDARY: diff --git a/glass_frame.scad b/glass_frame.scad new file mode 100644 index 0000000..624c120 --- /dev/null +++ b/glass_frame.scad @@ -0,0 +1,51 @@ +include ; + +fsr_height = 1.0; +height = 25.4 / 4 + fsr_height; +glass_radius = 172 / 2; +outside_radius = glass_radius * 1.15; +triangle_radius = glass_radius * 2.13; + +module curve_slot(r, h) { + linear_extrude(h) minkowski() { + union() { + circle(r=r, h=2*height, center=true, $fn=12); + } + intersection() { + square([16, 3*glass_radius], center=true); + difference() { + circle(r=glass_radius+6.1, $fn=120); + circle(r=glass_radius+6, $fn=120); + } + } + } +} + +module glass_frame() { + difference() { + linear_extrude(height=height) { + difference() { + intersection() { + rotate([0, 0, 30]) circle(r=triangle_radius, $fn=3); + circle(r=outside_radius, $fn=120); + } + circle(r=glass_radius, $fn=120); + for (a = [0:120:359]) { + rotate([0, 0, a]) translate([0, glass_radius]) + square([glass_radius*0.6, glass_radius], center=true); + } + translate([0, glass_radius / 2]) + square([2*triangle_radius, triangle_radius], center=true); + } + } + for (a = [-35, 35]) rotate([0, 0, a]) { + translate([0, 0, -height/2]) # + curve_slot(r=m3_wide_radius, h=2*height); + translate([0, 0, thickness]) # + curve_slot(r=3, h=2*height); + } + } +} + +translate([0, 0, height/2]) +glass_frame(); diff --git a/glass_frame.stl b/glass_frame.stl new file mode 100644 index 0000000..ed0efef Binary files /dev/null and b/glass_frame.stl differ