Main > Everything Else
3D Printing : Arcade Edition Thread
<< < (31/63) > >>
Howard_Casto:

--- Quote from: yotsuya on March 09, 2018, 08:10:35 pm ---
--- Quote from: Nephasth on March 09, 2018, 08:03:02 pm ---
--- Quote from: yotsuya on March 09, 2018, 07:54:21 pm ---
--- Quote from: Nephasth on March 09, 2018, 07:52:06 pm ---
--- Quote from: yotsuya on March 09, 2018, 07:03:15 pm ---
--- Quote from: Slippyblade on March 09, 2018, 06:57:21 pm ---Is it a jig to measure rounded corners?  I'm actually cutting myself several in different sizes.

--- End quote ---

Very close, brother.

It’s a jig to help me re-Bondo and putty the rounded corners on my Dynamo cab. I’ll apply the putty, then press down on the round part, let it dry, then sand. Beats shaping it by hand.

--- End quote ---

You expected us to guess THAT!?!

--- End quote ---

Put the yayo down and actually LOOK at it.... ;)

--- End quote ---

LOL... Yeah, cuz my guess of it being a tool to press t-molding into a corner is nothing like it being a tool to shape bondo into a corner... ::)

Dude, I stared at that ---smurfing--- thing for far too long.

But kudos on making the 3D printer to the ---steaming pile of meadow muffin--- work.

--- End quote ---

Yeah, I’m all about printing functional items. No tugboats for me!

--- End quote ---

See this is why we get along so well... you totally get me man.  Work smarter, not harder.  :)
yotsuya:

--- Quote from: Howard_Casto on March 09, 2018, 11:26:02 pm ---
--- Quote from: yotsuya on March 09, 2018, 08:10:35 pm ---
--- Quote from: Nephasth on March 09, 2018, 08:03:02 pm ---
--- Quote from: yotsuya on March 09, 2018, 07:54:21 pm ---
--- Quote from: Nephasth on March 09, 2018, 07:52:06 pm ---
--- Quote from: yotsuya on March 09, 2018, 07:03:15 pm ---
--- Quote from: Slippyblade on March 09, 2018, 06:57:21 pm ---Is it a jig to measure rounded corners?  I'm actually cutting myself several in different sizes.

--- End quote ---

Very close, brother.

It’s a jig to help me re-Bondo and putty the rounded corners on my Dynamo cab. I’ll apply the putty, then press down on the round part, let it dry, then sand. Beats shaping it by hand.

--- End quote ---

You expected us to guess THAT!?!

--- End quote ---

Put the yayo down and actually LOOK at it.... ;)

--- End quote ---

LOL... Yeah, cuz my guess of it being a tool to press t-molding into a corner is nothing like it being a tool to shape bondo into a corner... ::)

Dude, I stared at that ---smurfing--- thing for far too long.

But kudos on making the 3D printer to the ---steaming pile of meadow muffin--- work.

--- End quote ---

Yeah, I’m all about printing functional items. No tugboats for me!

--- End quote ---

See this is why we get along so well... you totally get me man.  Work smarter, not harder.  :)

--- End quote ---

I still owe you a drink of choice for introducing me to the Anet A8...
PL1:

--- Quote from: BadMouth on December 10, 2017, 09:15:33 pm ---
--- Quote from: Howard_Casto on December 10, 2017, 04:28:11 pm ---The ones that I'm aware of don't print the outer part of the wheel, they just do the teeth.  Post a link if you know of one that does that outer ring.

--- End quote ---

Been years, but a quick google search turned up this one:


This download link looks legit, but I haven't verified.
http://www.societyofrobots.com/downloads/

EDIT: now get on that 3D printed 720° controller with it's unique encoder wheel

--- End quote ---
If anyone wants to make a custom 720°-style encoder wheel, I've remixed the OpenSCAD Customizable Optical Encoder generator here to include a 6mm (d=6) indexing hole.

Inserted this code just before the last line. (new lines 281 and 282)

--- Code: ---   translate ([0, outer_diameter/2 - rim_width - slit_length * 2, 0])
    cylinder (wheel_height + 1 ,d=6,center=true);
--- End code ---

Translate means move, so if you want to move the index hole along the Y-axis, add to or subtract from the Y-axis value.

Current Y-axis location value:     "outer_diameter/2 - rim_width - slit_length * 2"
Move 3mm closer to the rim:     "outer_diameter/2 - rim_width - slit_length * 2 + 3"
Move 5mm closer to the center: "outer_diameter/2 - rim_width - slit_length * 2 - 5"

Full remix code:

--- Code: ---//customizable optical encoder
// James Wickware - 7/18/2016

// preview[view:north east, tilt:top diagonal]

/* [Encoder] */
// the outer diameter of the optical encoder in millimeters.
outer_diameter = 150; //[0:150]

// the height of the encoder wheel in millimeters.
wheel_height = 2; //[0.1:0.1:20]

// the length of the slits in millimeters.
slit_length = 6; //[0:0.5:75]

// the number of slits in the encoder.
slit_count = 72; // [2:100]

// the ratio of the slit opening to the solid section between the slits. (0.5 is equal )
slit_ratio = 0.5; // [0.05:0.05:0.95]

// the distance between the outer diameter and the opening of the slits in millimeters.
rim_width =  1.8; // [0:0.25:25]



/* [Hub] */
// the diameter of the inner hub in millimeters.
hub_diameter = 12; // [0:0.25:25]

// the length that the hub shaft extends from the encoder wheel in millimeters.
hub_height = 4; // [0:0.5:50]


/* [Shaft] */
// the type of shaft 0 for circular shaft, 1 d shaft (circular with 1 flat, 2 double d shaft (circular with 2 flats), 3 for square shaft 4 for hex shaft, 5 for octagonal shaft.
shaft_type =2; //[0:Cylindrical Shaft, 1:D Type Shaft,2:Double D type Shaft,3:Square Shaft, 4:Hexagonal Shaft, 5:Octagonal Shaft]

// the diameter of the hole for the shaft in millimeters.
shaft_diameter = 4.5; //[0:0.1:20]

// Choose whether or not you want the shaft to go all the way through the encoder wheel.
shaft_goes_through_encoder =0 ; // [0:False,1:True]

// the depth of the flat from the outside edge of the shaft in millimeters (for d and double d shaft type only).
shaft_flat_depth = 1; // [0:0.1:10]


/* [Set Screw] */
// choose whether to include a hole for a set screw
set_screw = 1; // [0:False,1:True]

// the size of the set screw in millimeters
set_screw_diameter = 3; // [0:0.5:10]

// choose whether to include a slot for a set screw nut (automatically disabled when there is not enough room for it).
set_screw_nut = 1; // [0:False,1:True]

// the set screw nut diameter in millimeters. (for hex nuts, the distance from one corner to the opposite corner)
set_screw_nut_diameter = 5; // [1:0.25:14]
 
//  the set screw nut thickness in millimeters
set_screw_nut_thickness = 2; //[0.25:0.25:10]

/* [Hidden] */

// the outer radius
outer_radius = max(outer_diameter/2, hub_diameter/2);

// the hub radius.
hub_radius = hub_diameter/2;
shaft_radius = shaft_diameter/2;

// the depth of the hole for the shaft in millimeters.
shaft_depth = hub_height + (wheel_height*shaft_goes_through_encoder); 

// calcuate whether or not the set screw and or nut can safely be included.
min_set_screw_nut_diameter = set_screw_diameter + 0.5;
max_set_screw_nut_diameter = (hub_diameter - shaft_diameter) * 0.6; // allow 60% of distance between shaft and hub
max_set_screw_nut_thickness = (hub_radius - shaft_radius) * 0.6; // allow 60% of distance between shaft and hub

can_have_screw =  (hub_height-0.99 > set_screw_diameter)  ? 1:0 ;
 
can_have_nut =  ((set_screw_diameter > 0) ? 1: 0)
                 * ((set_screw_diameter < set_screw_nut_diameter) ? 1:0)
                * ((set_screw_nut_thickness < max_set_screw_nut_thickness) ? 1:0)
                * set_screw_nut
                * can_have_screw;
echo(can_have_screw);
echo(can_have_nut);

set_screw_nut_offset = (((shaft_type == 0) ? 1:0) * .95)
                       +(((shaft_type == 1) ? 1:0) * .85)
                       +(((shaft_type == 2) ? 1:0) * .85)
                       +(((shaft_type == 3) ? 1:0) * .925)
                       +(((shaft_type == 4) ? 1:0) * .925)
                       +(((shaft_type == 5) ? 1:0) * .925)
                       +(((shaft_type == 6) ? 1:0) * .925)
                       +(((shaft_type == 7) ? 1:0) * .925)
                       +(((shaft_type == 8) ? 1:0) * .925)
                       ;
                       
                       
                       echo(set_screw_nut_offset);
// fudge factor to prevent coplanar boolean issues
fudge = 0.01;
difference(){
    union(){
 
        // Setup variables for wheel
        outer_rad = max((outer_radius - rim_width ) + fudge, hub_radius + fudge) ;
        inner_rad = max((outer_radius - rim_width - max(slit_length,0)) + fudge , hub_radius + fudge );
        step = 360/slit_count;
        half_step = step/2;
        qtr_step =  half_step / 2 ;       
       
        echo("step");
        echo (step);
        ratio_angle = (slit_ratio-0.5) * half_step;
        // don't create slits if some touch-hard has made the hub too big
        if(outer_rad > inner_rad){
            // create the wheel
            difference(){
                cylinder(r = outer_diameter/2, h= wheel_height, $fn = slit_count * 2, center = true);
             
                if( slit_count%2 == 0){

                    // create slits
                    for (i = [0 :  step : 360 - fudge  ])
                    {
                        points = [
                        [ sin(i +ratio_angle)*outer_rad, cos(i+ratio_angle)*outer_rad , -wheel_height ], 
                        [ sin(i +ratio_angle)*inner_rad, cos(i+ratio_angle)*inner_rad,  -wheel_height ],
                        [ sin(i+half_step - ratio_angle)*inner_rad , cos(i+half_step- ratio_angle)*inner_rad, -wheel_height ], 
                        [ sin(i+half_step - ratio_angle)*outer_rad,  cos(i+half_step- ratio_angle)*outer_rad, -wheel_height ],
                        [ sin(i+ratio_angle)*outer_rad, cos(i+ratio_angle)*outer_rad,  wheel_height ],
                        [ sin(i+ratio_angle)*inner_rad, cos(i+ratio_angle)*inner_rad,  wheel_height ],
                        [ sin(i+half_step - ratio_angle)*inner_rad , cos(i+half_step- ratio_angle)*inner_rad,  wheel_height ],
                        [ sin(i+half_step - ratio_angle)*outer_rad,  cos(i+half_step- ratio_angle)*outer_rad,  wheel_height ]
                        ];

                        faces = [
                        [0,1,2,3],   
                        [4,5,1,0],   
                        [7,6,5,4],   
                        [5,6,2,1],   
                        [6,7,3,2], 
                        [7,4,0,3]]; 

                        rotate(0,0,i)
                        polyhedron( points, faces ) ;
                    }
                }
                else{   
                    for (i = [0 :  step : 360  - fudge])
                    {
                        points = [
                        [ sin(i-qtr_step)*outer_rad, cos(i-qtr_step)*outer_rad , -wheel_height ], 
                        [ sin(i-qtr_step)*inner_rad, cos(i-qtr_step)*inner_rad,  -wheel_height ],
                        [ sin(i+qtr_step)*inner_rad , cos(i+qtr_step)*inner_rad, -wheel_height ], 
                        [ sin(i+qtr_step)*outer_rad,  cos(i+qtr_step)*outer_rad, -wheel_height ],
                        [ sin(i-qtr_step)*outer_rad, cos(i-qtr_step)*outer_rad,  wheel_height ],
                        [ sin(i-qtr_step)*inner_rad, cos(i-qtr_step)*inner_rad,  wheel_height ],
                        [ sin(i+qtr_step)*inner_rad , cos(i+qtr_step)*inner_rad,  wheel_height ],
                        [ sin(i+qtr_step)*outer_rad,  cos(i+qtr_step)*outer_rad,  wheel_height ]
                        ];

                        faces = [
                        [0,1,2,3],   
                        [4,5,1,0],   
                        [7,6,5,4],   
                        [5,6,2,1],   
                        [6,7,3,2], 
                        [7,4,0,3]]; 

                        rotate(0,0,i)
                        polyhedron( points, faces ) ;
                    }
                }
               
            }
        }
       
        // create hub
        if(hub_height > 0){
            if(set_screw == 1 && set_screw_diameter > 0 && can_have_screw == 1){
                difference(){
                  translate([0,0, ((hub_height/2) + (wheel_height /2))] )       
                  cylinder(r= min(hub_diameter/2, (outer_diameter/2)-fudge ), h = hub_height +(fudge*2), $fn = slit_count *2, center = true);
                   
                    // set screw hole
                    translate([0,0, ((hub_height/2) + (wheel_height/2 ))] )
                    rotate([-90,0,0])
                     cylinder(r=set_screw_diameter/2, h=hub_diameter, $fn=16);
                    if(can_have_nut == 1){
                    // set screw nut
                   translate([0,(hub_radius - ((hub_radius-shaft_radius)/2))*set_screw_nut_offset, ((hub_height/2) + (wheel_height/2 ))] )     
                    rotate([90,00,00])
                    cylinder(r=max(min_set_screw_nut_diameter/2,set_screw_nut_diameter/2), h=max(set_screw_nut_thickness,0.25) +fudge, $fn=6, center = true);
                   
                   translate([0,(hub_radius - ((hub_radius-shaft_radius)/2))*set_screw_nut_offset, ((hub_height/2) + (wheel_height/2 )) +
                    (((hub_height/2) + (wheel_height/2 )+set_screw_nut_diameter /2 )-fudge) /2] ) 
                    cube([max(min_set_screw_nut_diameter ,set_screw_nut_diameter ) ,max(set_screw_nut_thickness,0.25)-fudge,(((hub_height/2) + (wheel_height/2 )+max(min_set_screw_nut_diameter ,set_screw_nut_diameter ) /2 ))  ],center=true);
                    }
                   
                    }
            }
            else {
                translate([0,0, ((hub_height/2) + (wheel_height /2))] )       
                cylinder(r= min(hub_diameter/2, (outer_diameter/2)-fudge ), h = hub_height +(fudge*2), $fn = slit_count *2, center = true);       
            }
        }
    };
 
 // shaft
    // cylindrical shaft
    if(shaft_type == 0){
        translate([0,0, ((shaft_depth/2) + (wheel_height /2) + (hub_height ))]) // move shaft to the top of the hub
        translate([0,0,-min(shaft_depth, hub_height+wheel_height)]) // insert the shaft until it hits bottom >:)

        cylinder(r= shaft_diameter/2, h=shaft_depth + (fudge*4) , $fn = max(slit_count*2, 6) ,center = true);
    }
   
    // d type shaft
    if(shaft_type == 1)
    {
        translate([0,0, ((shaft_depth/2) + (wheel_height /2) + (hub_height ))]) // move shaft to the top of the hub
        translate([0,0,-min(shaft_depth, hub_height+wheel_height)]) // insert the shaft until it hits bottom >:)
   
        difference(){
            cylinder(r= shaft_diameter/2, h=shaft_depth + (fudge*4) , $fn = max(slit_count*2, 6) ,center = true);   
       
            translate([0, max( shaft_diameter - shaft_flat_depth , shaft_diameter/2),0  ])
            cube ( [shaft_diameter*2,shaft_diameter, shaft_depth*2 ], center = true)  ;
       } 
    }

    // double d type shaft -- double D = big breasts --
    if (shaft_type == 2)
    {
        translate([0,0, ((shaft_depth/2) + (wheel_height /2) + (hub_height ))]) // move shaft to the top of the hub
        translate([0,0,-min(shaft_depth, hub_height+wheel_height)]) // insert the shaft until it hits bottom >:)
   
        difference(){
            cylinder(r= shaft_diameter/2, h=shaft_depth + (fudge*4) , $fn = max(slit_count*2, 6) ,center = true);   
         
            translate([0, max( shaft_diameter - shaft_flat_depth , shaft_diameter/2),0  ])
            cube ( [shaft_diameter*2,shaft_diameter, shaft_depth*2 ], center = true);
         
            translate([0, min( -( shaft_diameter - shaft_flat_depth), -(shaft_diameter/2)),0  ])
            cube ( [shaft_diameter*2,shaft_diameter, shaft_depth*2 ], center = true);
        } 
    }
   
    // square shaft
    if (shaft_type == 3)
    {
        translate([0,0, ((shaft_depth/2) + (wheel_height /2) + (hub_height ))]) // move shaft to the top of the hub
        translate([0,0,-min(shaft_depth, hub_height+wheel_height)]) // insert the shaft until it hits bottom >:)
        rotate([0,0,45])
        cylinder(r= shaft_diameter/2, h=shaft_depth + (fudge*4) , $fn = 4 ,center = true);
    }
   
    // hex shaft
    if (shaft_type == 4)
    {
        translate([0,0, ((shaft_depth/2) + (wheel_height /2) + (hub_height ))]) // move shaft to the top of the hub
        translate([0,0,-min(shaft_depth, hub_height+wheel_height)]) // insert the shaft until it hits bottom >:)
   
        cylinder(r= shaft_diameter/2, h=shaft_depth + (fudge*4) , $fn =   6  ,center = true);
    }
   
    // octopus shaft
    if (shaft_type == 5)
    {
        translate([0,0, ((shaft_depth/2) + (wheel_height /2) + (hub_height ))]) // move shaft to the top of the hub
        translate([0,0,-min(shaft_depth, hub_height+wheel_height)]) // insert the shaft until it hits bottom >:)
      rotate([0,0,22.5])
        cylinder(r= shaft_diameter/2, h=shaft_depth + (fudge*4) , $fn =   8  ,center = true);
    }
    translate ([0, outer_diameter/2 - rim_width - slit_length * 2, 0])
    cylinder (wheel_height + 1 ,d=6,center=true);
}

--- End code ---


Scott
BadMouth:
Finally got around to making these:


My attempts at making larger threads failed, so I used a nut and bolt off thingiverse to just get it done.
I envisioned a larger threaded post, but this will do.
HaRuMaN:
Hope no one's standing underneath that when it shears off. 
Navigation
Message Index
Next page
Previous page

Go to full version