colorlab
clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

montana-adapter.scad
text/plain

Download raw (2.1 KB)

outer_diameter = 11.5;
outer_radius = outer_diameter / 2;
handle_radius = (16.5 / 2);
handle_thickness_outer = 1.3;
handle_thickness_inner = 1.9;
handle_position = 0;
facets = 128;

module nut ()
{
    scale ([.98,.98,1]) import("montana-adapter-thread.stl");
}


// Base tube
intersection(){
    cylinder(d=11.5, h=10, $fn=128);
    nut ();
}

difference(){
    // Handle
    union(){
        // base
        translate([0, 0, handle_position])
        cylinder(h=handle_thickness_outer, r=handle_radius, $fn=facets);
        
        // angled top
        translate([0, 0, handle_position + handle_thickness_outer])
        cylinder(h=handle_thickness_inner - handle_thickness_outer, r1=handle_radius, r2=outer_radius, $fn=facets);
    }
    cylinder(d=11., h=handle_thickness_inner, $fn=facets);
}


// Angled middle
translate([0,0,10])
difference(){
    union(){
        cylinder(d=outer_diameter, h=5, $fn=facets);
        translate([0,0,5]) cylinder(d1=outer_diameter,d2=6.5, h=2, $fn=facets);
    }
    
    cylinder(d1=6.5, d2=4.5, h=7, $fn=facets);
    cylinder(d=10, h=1.5, $fn=facets);
    translate([0, 0, 1.5]) cylinder(d1=10, d2=5, h=3, $fn=facets); // h was 2.5
}


// Straight tip
module guide()
{
    translate ([0,2.25,3.5])
    rotate ([90,0,0])
    intersection(){
        translate ([0,30,0])
        rotate ([90,0,0])
        linear_extrude($fn=20, height = 60) polygon(  points=[[-.4,0],[-.4,.7],[.4,.7],[.4,0]] );

        rotate ([0,0,90])
        translate ([0,10,0])
        rotate ([90,0,0])
        linear_extrude($fn=20, height = 20) polygon(points=[[-2.5,0],[-1.5,1],[1.5,1],[2.5,0]] );
    }
}

translate([0,0,17]){
    difference(){
        cylinder(d1=6.5,d2=6.3, h=7, $fn=128);
        cylinder(d1=4.5, d2=4.2, h=7, $fn=128);
    }
    for (angle=[0:45:315]) rotate ([0,0,angle]) guide();
}

//intersection(){
//    for (angle=[0:45:315]) rotate ([0,0,angle]) translate ([5.75+0.5,0,0]) cube([10,0.4,1.5]);
//    cylinder (r1=5.75+0.5+5+5,r2=5.75+0.5+5+5-2, h=1.5, $fn=128);
//}

//difference(){
//    cylinder (r1=5.75+0.5+5+8,r2=5.75+0.5, h=0.7, $fn=128);
//    cylinder (r=5.75+1, h=1, $fn=128);
//}