Close



Results 1 to 10 of 12

Threaded View

  1. #8
    Super Moderator Roxy's Avatar
    Join Date
    Apr 2014
    Location
    Lone Star State
    Posts
    2,182
    Quote Originally Posted by Gamble View Post
    Thanks, but I'll stick with the free stuff for now.
    The RepRap printers all use OpenScad. Its different than the graphical design tools. But a lot of people (myself included) gravitate to it.

    Paste this into OpenScad... I'm making a TakerBot Robot that lets you scale the size:

    (The real MakerBot Robot doesn't scale. As you change the size, the joints fuse and the different limbs can't move. This code lets you set the size and the amount of clearance you want on the joints. You might have a failed print, but you will know what number to change to make it print right the next time on your printer! And... You can edit in your text to print on it. )

    Code:
    //square_ring( x=10, y=10, z=2, thickness=4);
    
    
    Size = 1.00;
    S=Size;
    
    
    Clearance = 1.00;
    
    
    main_body();
    
    
    //foot();
    //shin();
    //thigh( Open_Joint=1 );
    //leg();
    //translate([0,-2,0]) mirror([0,1,0]) leg();
    
    
    
    
    
    
    module main_body() {
            union() {
                difference() {
                    translate([-16*S,0,3*S]) scale([S,S,S]) minkowski() {
                        cube([22.3,27,17.8]);    
                        sphere(r=3, $fn=20);
                    }
    // Cut out and form hip joint
                    translate([15*S,17*S,0]) minkowski() {
                        thigh( Open_Joint=1 );
                        translate([-Clearance/2,-Clearance/2,-Clearance/2]) cube([Clearance,Clearance,Clearance]);
                    }
                    translate([15*S,13*S,0]) minkowski() {
                        translate([0,-2,0]) mirror([0,1,0]) thigh(Open_Joint=1);
                        translate([-Clearance/2,-Clearance/2,-Clearance/2]) cube([Clearance,Clearance,Clearance]);
                    }
    
    
    // make the indented belt
                    translate([-20*S,-3*S,10.0*S]) rotate([45,0,0]) scale([S,S,S]) cube([48,2,2]);
                    translate([-20*S,29.9*S,10.0*S]) rotate([45,0,0]) scale([S,S,S]) cube([48,2,2]);
                    translate([-19*S,-4*S,10.0*S]) rotate([0,-45,0]) scale([S,S,S]) cube([2,48,2]);
                    translate([9.6*S,-4*S,10.0*S]) rotate([0,-45,0]) scale([S,S,S]) cube([2,48,2]);
    
    
    // make the Emblem indent
                    translate([S*(8.0-.15),14*S,12.0*S])    rotate([0,90,0]) scale([S,S,S]) cylinder( r1=7, r2=9.5, h=2.00);
                }
    
    
                translate([15*S,17*S,0]) leg();
                translate([15*S,13*S,0]) translate([0,-2,0]) mirror([0,1,0]) leg();
    
    
              translate([8.5*S,13.9*S,11.5*S]) scale([S,S,S]) minkowski() {  rotate([90,0,90]) linear_extrude(height=.1, convexity=4)
                    text("T", size=7, font="Bitstream Vera Sans",
                         halign="center",
                         valign="center");
            sphere(r=1, $fn=20);
            }
    
    
            }
    }
    
    
    
    
    
    
    module leg() {
    
    
        difference() {
            thigh();
            minkowski() {
                shin( Open_Joint=1 );
                translate([-Clearance/2,-Clearance/2,-Clearance/2]) cube([Clearance,Clearance,Clearance]);
            }
        }
    
    
        difference() {
            shin();
            minkowski() {
                foot();
                translate([-Clearance/2,-Clearance/2,-Clearance/2]) cube([Clearance,Clearance,Clearance]);
            }
        }
        foot();
    }
    
    
    
    
    module thigh( Open_Joint=0 ) {
        translate([-4*S,0,0]) scale([S,S,S])
            difference() {
                union() {
                    hull() {
                        translate([0,1,0]) cube([1,8.5,10]);
                        translate([10,1,0]) cube([1,9,11]);
                    }
    
    
                    translate([-8,6.0,0]) cube([10.00,3.5,8.0]);
                    translate([-8,6.0,8.0/2]) rotate([-90,0,0]) cylinder(r=8.0/2, h=3.5, $fn=25);
                    if ( Open_Joint==1 ) 
                        translate([-12,6.0,0]) cube([8.00,3.5,8.0]);
                }
                translate([9,-1,-2]) rotate([0,20,0]) cube([10,20,10]);
                translate([-8,0,8.0/2]) rotate([-90,0,0]) cylinder(r=8.0/3.5, h=15.0, $fn=25);
            }
    }
    
    
    module shin( Open_Joint=0 ) {
        translate([8*S,0,0]) scale([S,S,S])
            difference() {
                union() {
                    hull() {
                        translate([0,0,0]) cube([1,13,13]);
                        translate([10,0,0]) cube([1,16,16]);
                    }
                    translate([-6,3.0,0]) cube([7.00,3.5,8.0]);
                    translate([-6,3.0,8.0/2]) rotate([-90,0,0]) cylinder(r=8.0/2, h=3.5, $fn=25);
                    if ( Open_Joint==1 ) 
                        translate([-10,3.0,0]) cube([8.00,3.5,8.0]);
                }
                translate([9,-1,0]) rotate([0,20,0]) cube([10,20,10]);
                translate([-6,0,8.0/2]) rotate([-90,0,0]) cylinder(r=8.0/3.5, h=15.0, $fn=25);
            }
    }
    
    
    module foot() {
        translate([20*S,0,0]) scale([S,S,S])
            difference() {
                union() {
                    cube([5.25,18.25,23.75]);
                    translate([-6,6.0,0]) cube([7.00,3.5,8.0]);
                    translate([-6,6.0,8.0/2]) rotate([-90,0,0]) cylinder(r=8.0/2, h=3.5, $fn=25);
                }
                translate([-5,21,18]) rotate([ 45,0,0]) cube([20,20.,23.75]);
                translate([-5,-24,25]) rotate([-45,0,0]) cube([20,20.,23.75]);
                translate([-21,-1,18]) rotate([0,20,0]) cube([20,20.,23.75]);
    
    
                translate([-5,-24,-5]) rotate([-55,0,0]) cube([20,20.,23.75]);
                translate([-5,33,-18]) rotate([55,0,0]) cube([20,20.,23.75]);
    
    
                translate([-6,3.0-.001,8.0/2]) rotate([-90,0,0]) cylinder(r=8.0/3.5, h=15.0, $fn=25);
            }    
    }
    
    
    
    
    module square_ring( x=10, y=10, z=2, thickness=4) {
        difference() {
            cube([x,y,z]);
            translate([thickness/2, thickness/2, -.001]) 
                cube(x-thickness, y-thickness, z*2); 
        }
    }
    I still have to do the Head and Arms. The arms are going to use the same joint making code as the legs.
    Last edited by Roxy; 05-03-2015 at 01:11 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •