Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $fn=96;
- // dispenser2();
- // syringe_body();
- // support();
- //piston();
- handle();
- //knob();
- module dispenser()
- {
- syringe_body();
- translate([0, 0, 52]) rotate([180,0,0]) support();
- translate([0, 0, -10]) handle();
- translate([0, 0, 60]) rotate([0,180,0]) piston();
- translate([0, 0, -30]) rotate([0,180,0]) knob();
- }
- module dispenser2()
- {
- // # syringe_body();
- translate([50, 50, 15]) rotate([-90,0,0]) support();
- // translate([0, 0, 5]) rotate([0,90,0]) handle();
- // translate([0, 80, 20]) rotate([180,0,0]) piston();
- // translate([0, 53, 0]) rotate([0,0,0]) knob();
- }
- module knob()
- {
- height=10;
- diameter=30;
- difference()
- {
- cylinder(d=diameter,h=height);
- translate([0,0,-1]) cylinder(d=6,h=height+2);
- translate([0,0,height-5]) cylinder(d=13,h=6, $fn=6);
- //top champfer
- translate([0,0,height]) rotate_extrude() translate([diameter/2,0,0]) circle(r=1.6,$fn=4);
- //bottom champfer
- rotate_extrude() translate([diameter/2,0,0]) circle(r=1.6,$fn=4);
- //knurls
- for(i=[0:29])
- rotate([0,0,i*12]) linear_extrude(height=height+0.1,twist=height/45*120) translate([diameter/2,0]) circle(r=1.1,$fn=4);
- //more knurls
- for(i=[0:29])
- rotate([0,0,i*12]) linear_extrude(height=height+0.1,twist=height/45*-120) translate([diameter/2,0]) circle(r=1.1,$fn=4);
- }
- }
- module piston()
- {
- difference()
- {
- union()
- {
- cylinder(d=10, h=8.4);
- translate([0, 0, 8.4]) cylinder(d=13.6, h=2);
- translate([0, 0, 10.4]) cylinder(d=15, h=10);
- }
- translate([0, 0, 4]) cylinder(d=5.4, h=20);
- }
- }
- module handle()
- {
- thickness = 10;
- difference()
- {
- minkowski()
- {
- difference()
- {
- union()
- {
- hull()
- {
- translate([0, -3, -3]) cube([thickness,34,13],true);
- translate([-thickness/2, 0, 0]) rotate([0,90,0]) cylinder(d=16, h=thickness);
- translate([-thickness/2, -20, -2.5]) rotate([0,90,0]) cylinder(d=14, h=thickness);
- }
- difference()
- {
- hull()
- {
- translate([0, 24.5, 13/2-9.5]) cube([thickness,13,13],true);
- translate([-thickness/2, 30, 4-9.5]) rotate([0,90,0]) cylinder(d=8, h=thickness);
- translate([-thickness/2, 21, 86-9.5]) rotate([0,90,0]) cylinder(d=6, h=thickness);
- translate([-thickness/2, 31, 86-9.5]) rotate([0,90,0]) cylinder(d=6, h=thickness);
- }
- translate([-6, 118, 45-9.5]) rotate([0,90,0]) cylinder(d=180, h=12, $fn=192 );
- }
- translate([0, 21, 17/2-9.5]) cube([thickness,14,17],true);
- }
- translate([-6, 14, 7.5]) rotate([0,90,0]) cylinder(d=8, h=12);
- }
- cylinder(r=1,h=1);
- }
- union()
- {
- translate([-10, 0, 0]) rotate([0,90,0]) cylinder(d=10.4, h=20);
- translate([-15, -20.5, -3]) rotate([0,90,0]) cylinder(d=3.5, h=30);
- hull()
- {
- cylinder(d=6.5, h=25, center=true);
- rotate([15,0,0]) cylinder(d=6.5, h=25, center=true);
- }
- }
- }
- }
- module support()
- {
- r_inner = 9;
- ring_height = 15;
- r_ball = 2;
- difference()
- {
- union()
- {
- minkowski()
- {
- hull()
- {
- translate([0, 19, (ring_height+12)/2+2]) cube([22,10,ring_height+12],true);
- translate([0, 20.5, 29]) rotate([0,90,0]) cylinder(d=10, h=22, center=true);
- }
- sphere(r=2);
- }
- rotate([0,0,4]) translate([12, 15-8, ring_height/2]) cube([4,13.0,ring_height],true);
- rotate([0,0,-4]) translate([-12, 15-8, ring_height/2]) cube([4,13.0,ring_height],true);
- rotate([0,0,0]) translate([-0, 12, ring_height/2]) cube([5+ring_height, 5, ring_height],true);
- }
- union()
- {
- translate([0, 20, 32]) cube([12.6, 30,30],true);
- translate([-15, 20.5, 29]) rotate([0,90,0]) cylinder(d=3.5, h=30);
- translate([12, 20.5, 29]) rotate([0,90,0]) cylinder(d=6.5, h=30);
- translate([-13, 20.5, 29]) rotate([0,90,0]) cylinder(d=6.5, h=2, $fn=6);
- }
- }
- difference()
- {
- cylinder(r=r_inner+5, h=ring_height);
- translate([0, 0, -1]) cylinder(r=r_inner, h=ring_height+2);
- # translate([0, -0.75-ring_height/2, ring_height/2 ]) cube ([6,1.5, ring_height],true);
- # translate([0, 0.75+ring_height/2, ring_height/2 ]) cube ([6,1.5, ring_height],true);
- }
- }
- module syringe_body()
- {
- diameter = 18.8;
- wall = 1;
- handle = 35;
- height = 73;
- radius=diameter/2;
- difference()
- {
- union()
- {
- cylinder(r=radius, h=height);
- translate([0, 0, height]) scale([1,1,0.8]) sphere(r = radius);
- translate([0, 0, 87-10]) cylinder(d=10.4, h=10);
- hull()
- {
- translate([0, 0, wall/2]) cube([12,diameter+4,wall],true);
- translate([handle/2-8, 0, 0]) cylinder(r=8, h=wall);
- translate([-handle/2+8, 0, 0]) cylinder(r=8, h=wall);
- }
- }
- union()
- {
- translate([0, 0, -wall]) cylinder(r=(radius-wall), h=height);
- cylinder(d=10.4-2*wall, h=88);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement