Finallizing RosTrap (and discarding it)

Spending a few days at home I printed in the bedroom by day and in the kichten by night to get the parts together and finally re-build the mechanics. The new slides finally seemed to work with both the “alfer combitech” profiles and the downloaded Delta-Pi parts.

IMG_20140429_121833

OpenSCAD contained complete spaghetti code by then…

// Alfer-Profil
color („SteelBlue“,5){
translate([0,0,50]){
cube ([23.5,23.5,100],center=true);
}
}//********************
//* Ab hier spiegeln *
//********************// Delta-Pi „Arm Pivot“ Aufnahme
color („Khaki“,5){
rotate([0,0,-180]){
translate([-(43+4.75),10,40]){
rotate([0,0,-45]){
difference(){
union(){
translate([-3,43+(2*4.75),0]){
translate([0,-4.75,-6]){
translate([3,0,-3]){ rotate ([45,0,0]) {cube ([18,4.75,4.75]);}}
translate([12,-6,3]){cube ([9,9,9]);}
translate([0,-0.25,0]){cube ([21,4,12]);} }
rotate([90,90,0]){
translate([0,0,1]){
cylinder (r=6,h=4,$fn=50); }}
}
}
translate([-3,42+(2*4.75),0]){
rotate([90,90,0]){
cylinder (r=3.3/2,h=5,$fn=50);} }
}
difference(){
translate([0,47.75,-6]){
rotate([90,45,0]){
cube ([27.5,4.75+10,4.75]);
}}
translate([28,41,-30]){
rotate([0,0,45]){
cube([10,10,30]); }}
}
}}}}// Halteblock Arm Pivot Aufnahme:
color („OrangeRed“,5){
difference(){
union(){
translate([-1,-21,0]){
rotate([0,0,-45]){
cube ([11,10,80]); }}
translate([-1,-30,0]){
cube ([12,10,80]);
}}
translate ([8,-(22/2)-(23.5/2),40]){
rotate (a=[90,0,90]){
cylinder (r=15/2,h=6,$fn=6); }}
}translate([18.5,-30,0]){
rotate([0,0,45]){
difference(){
cube ([8,16,30]);
translate([-0.5,5,10]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-0.5,5,20]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-0.5,5,10]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
translate([-0.5,5,20]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
}}}
translate([18.5,-30,50]){
rotate([0,0,45]){
difference(){
cube ([8,16,30]);
translate([0,-2,-12]){
rotate([45,0,0]){
cube ([9,16,21]);}}
translate([-5,-1,-8]){
rotate([0,45,0]){
cube ([9,17,21]);}}
translate([-0.5,5,10]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-0.5,5,20]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-0.5,5,10]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
translate([-0.5,5,20]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
}}}
}// Halteblock Kugellager:
color („Maroon“,5){
translate([-29,-29,0]){
cube ([16,16,80]);
}
}
// 608ZZ-Kugellager:
color („YellowGreen“,5){
// Unten:
translate ([(-22/2)-(23.5/2),-4,(22/2)+2]){
rotate (a=[90,0,0]){
difference(){
cylinder (r=22/2,h=7,$fn=50);
cylinder (r=8/2,h=7,$fn=50);
}
}
}
// Mitte:
translate ([-23.5/2+1,-(22/2)-(23.5/2),40]){
rotate (a=[90,0,90]){
difference(){
cylinder (r=22/2,h=7,$fn=50);
cylinder (r=8/2,h=7,$fn=50);
}
}
}
// Oben:
translate ([(-22/2)-(23.5/2),-4,80-(22/2)-2]){
rotate (a=[90,0,0]){
difference(){
cylinder (r=22/2,h=7,$fn=50);
cylinder (r=8/2,h=7,$fn=50);
}
}
}
}
//Achse unten:
translate ([(-22/2)-(23.5/2),-2,(22/2)+2]){
rotate (a=[90,0,0]){
cylinder (r=8/2,h=30,$fn=50);
}
}
// Achse Mitte:
translate ([-32,-(22/2)-(23.5/2),40]){
rotate (a=[90,0,90]){
cylinder (r=8/2,h=46,$fn=50);
}
}
//Achse oben:
translate ([(-22/2)-(23.5/2),-2,80-(22/2)-2]){
rotate (a=[90,0,0]){
cylinder (r=8/2,h=30,$fn=50);
}
}
// Verbindungen:
// Unten:
translate([-13,-21,0]){
cube ([26,8,26.5]);
}
// Oben:
translate([-13,-21,53.5]){
cube ([26,8,26.5]);
}
// Mitte:
translate([-24.5,-13,26.5]){
cube ([11,27,27]);
}// Block Rückseite:
color („Maroon“,5){
translate([-19,8,0]){
rotate([0,0,45]){
difference(){
cube ([8,16,80]);
translate([-1,8,10]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-1,8,20]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-1,8,60]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-1,8,70]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-1,8,10]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
translate([-1,8,20]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
translate([-1,8,60]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
translate([-1,8,70]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
}}}
}difference(){// Führung
translate([31,-14,3]){
rotate([0,0,-45]){
cube ([15,8,6],center=true);
}}// Zahnriemen
color („Aqua“,5){
translate([34,-17,45]){
rotate([0,0,-45]){
cube ([9,3,100],center=true);
}}
}}

mirror([ 1, 1, 0 ]) {

//**************
//* Spiegelung *
//**************

// Delta-Pi „Arm Pivot“ Aufnahme
color („Khaki“,5){
rotate([0,0,-180]){
translate([-(43+4.75),10,40]){
rotate([0,0,-45]){
difference(){
union(){
translate([-3,43+(2*4.75),0]){
translate([0,-4.75,-6]){
translate([3,0,-3]){ rotate ([45,0,0]) {cube ([18,4.75,4.75]);}}
translate([12,-6,3]){cube ([9,9,9]);}
cube ([21,4.2,12]); }
rotate([90,90,0]){
translate([0,0,0.5]){
cylinder (r=6,h=4.2,$fn=50); }}
}
}
translate([-3,43+(2*4.75),0]){
rotate([90,90,0]){
cylinder (r=3.3/2,h=4.75,$fn=50);} }
}
difference(){
translate([0,47.75,-6]){
rotate([90,45,0]){
cube ([27.5,4.75+10,4.75]);
}}
translate([28,41,-30]){
rotate([0,0,45]){
cube([10,10,30]); }}
}
}}}}

// Halteblock Arm Pivot Aufnahme:
color („OrangeRed“,5){
difference(){
union(){
translate([-1,-21,0]){
rotate([0,0,-45]){
cube ([11,10,80]); }}
translate([-1,-30,0]){
cube ([12,10,80]);
}}
translate ([8,-(22/2)-(23.5/2),40]){
rotate (a=[90,0,90]){
cylinder (r=15/2,h=6,$fn=6); }}
}

translate([18.5,-30,0]){
rotate([0,0,45]){
difference(){
cube ([8,16,30]);
translate([-0.5,5,10]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-0.5,5,20]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-0.5,5,10]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
translate([-0.5,5,20]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
}}}
translate([18.5,-30,50]){
rotate([0,0,45]){
difference(){
cube ([8,16,30]);
translate([0,-2,-12]){
rotate([45,0,0]){
cube ([9,16,21]);}}
translate([-5,-1,-8]){
rotate([0,45,0]){
cube ([9,17,21]);}}
translate([-0.5,5,10]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-0.5,5,20]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-0.5,5,10]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
translate([-0.5,5,20]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
}}}
}

// Halteblock Kugellager:
color („Maroon“,5){
translate([-29,-29,0]){
cube ([16,16,80]);
}
}
// 608ZZ-Kugellager:
color („YellowGreen“,5){
// Unten:
translate ([(-22/2)-(23.5/2),-4,(22/2)+2]){
rotate (a=[90,0,0]){
difference(){
cylinder (r=22/2,h=7,$fn=50);
cylinder (r=8/2,h=7,$fn=50);
}
}
}
// Mitte:
translate ([-23.5/2+1,-(22/2)-(23.5/2),40]){
rotate (a=[90,0,90]){
difference(){
cylinder (r=22/2,h=7,$fn=50);
cylinder (r=8/2,h=7,$fn=50);
}
}
}
// Oben:
translate ([(-22/2)-(23.5/2),-4,80-(22/2)-2]){
rotate (a=[90,0,0]){
difference(){
cylinder (r=22/2,h=7,$fn=50);
cylinder (r=8/2,h=7,$fn=50);
}
}
}
}
//Achse unten:
translate ([(-22/2)-(23.5/2),-2,(22/2)+2]){
rotate (a=[90,0,0]){
cylinder (r=8/2,h=30,$fn=50);
}
}
// Achse Mitte:
translate ([-32,-(22/2)-(23.5/2),40]){
rotate (a=[90,0,90]){
cylinder (r=8/2,h=46,$fn=50);
}
}
//Achse oben:
translate ([(-22/2)-(23.5/2),-2,80-(22/2)-2]){
rotate (a=[90,0,0]){
cylinder (r=8/2,h=30,$fn=50);
}
}
// Verbindungen:
// Unten:
translate([-13,-21,0]){
cube ([26,8,26.5]);
}
// Oben:
translate([-13,-21,53.5]){
cube ([26,8,26.5]);
}
// Mitte:
translate([-24.5,-13,26.5]){
cube ([11,27,27]);
}

// Block Rückseite:
color („Maroon“,5){
translate([-19,8,0]){
rotate([0,0,45]){
difference(){
cube ([8,16,80]);
translate([-1,8,10]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-1,8,20]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-1,8,60]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-1,8,70]){
rotate([0,90,0]){
cylinder (r=3.5/2,h=18,$fn=50);}}
translate([-1,8,10]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
translate([-1,8,20]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
translate([-1,8,60]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
translate([-1,8,70]){
rotate([0,90,0]){
cylinder (r=7.5/2,h=3,$fn=6);}}
}}}
}

difference(){

// Führung
translate([31,-14,3]){
rotate([0,0,-45]){
cube ([15,8,6],center=true);
}}

// Zahnriemen
color („Aqua“,5){
translate([34,-17,45]){
rotate([0,0,-45]){
cube ([9,3,100],center=true);
}}
}

}

//**************
//* Spiegelung *
//**************
};

The effector received some LEDs, so I could finally get rid of the flashlight at the printer.

IMG_20140430_121646 IMG_20140430_123225

The motor mounts were mounted after all.

P1040706 P1040705 P1040716

The most effective way to attach the timing belt to the slides was… Hotmelt! And linesman pliers of course – the hotmelt will soften the PLA. 😉

P1040709 P1040713  P1040689

I did some tuning to properly hit the limit switches. And to get a snug fit I used some washers as spacers.

P1040720 P1040724 P1040727

The mechanics were moving, but I ordered an E3D Hotend (V5 by then), which still needed to arrive…

There it was: beautifully made. Polished. The complete opposite of the scrubbed „Sumpod“-parts I already had seen by then. And everything is carefully documented: http://wiki.e3d-online.com/wiki/

P1040733 P1040734 P1040736 P1040737

As the clear PLA was quite tricky I put it aside for some neon-yellow-translucent PLA – which was not easier to print by any means. And the clear spool got bittle in the meantime.

=> I won’t go back to any see-though-stuff in the near future.

P1040740

But first: some new Idlers. 608 Idler Pulley v2 by hoeken to be exact. As I was still not printing perfect circles by then I had to establish rotational symmetry another way.

IMG_0283 IMG_0315

I combined the idlers with 608 Idler Pulley with Stand by gineer, modified this way:

translate([0,0,19.5])
{
rotate([0,90,0])
{
difference()
{
union()
{
// 608-Innenseite
cylinder(r=4, h=7.2+3.5, $fn = 30);
cylinder(r=5,h=3.5, $fn = 30);
translate([-1,-11,-0])
{
// Flansch
cube([24.5,22,3]);
}
translate([17.5,-11,-8])
{
// Bodenplatte
cube([6,22,10]);
}
translate([7.5,-1,-8])
{
// Steg
cube([10,2,10]);
}
}
translate([0,0,-1])
{
// Bohrung in 608-Innenseite
cylinder(r=3,h=8+5, $fn = 30);
}
rotate([0,0,-18.3])
{
translate([0,-25,-0.5])
{
// Flansch zuschneiden 1
cube([22,20,4]);
}
}
rotate([0,0,18.3])
{
translate([0,5,-0.5])
{
// Flansch zuschneiden 2
cube([22,20,4]);
}
}
translate([1.25,-1.5,-8.25])
{
rotate([0,37,0])
{
cube([15,3,10]);
}
}
translate([7,5.5,-4])
{
rotate([0,90,0])
{
// Befestigungsborung
cylinder(r=1.5,h=35, center=true, $fn = 30);
}
}
translate([7,-5.5,-4])
{
rotate([0,90,0])
{
// Befestigungsborung
cylinder(r=1.5,h=35, center=true, $fn = 30);
}
}
}
}
}

Calibration then took weeks. Until I finally read (in some Google-Group I can’t find anymore) that you first have to get the build platform right-angled to the pillars of your Rostock Delta machine. Only then the squares were (nearly) squared.

IMG_20140519_161405 IMG_0375

Next flaw of the „Delta“ design: the 8bit Atmel controller was working to capacity. In the first version of Rostock Marlin I customized to fit my mechanics I had left the #define DELTA_SEGMENTS_PER_SECOND at „200“ – but that was too much for some objects (e.g. Iron Man cookie cutter v2 by bluedynno). In Kossel Marlin, which I adapted then, it was alread 160 segments per second. And I reduced that to 120 to keep the Sanguinolulu running the steppers smoothly.

IMG_0730

Next problem: I had drilled the holes for the M3 screws serving as joints with a 3mm (rather than 2.9mm or 2.8mm) drill. So they hat lots of play. mhackney’s „Z-InfillCalibrationThing.stl“ (downloadable at http://forum.seemecnc.com/viewtopic.php?f=42&t=1106&start=75#p5334) clearly demontrates the problem.

IMG_0388 IMG_0321

I had two approaches to fix it: using epoxy resin on the holes and re-drilling on one hand and heat shrink tubing on the other.

IMG_0391 IMG_0392

Both failed in the end. Maybe  in the Delta-Pi shaft screws were cut to length – but as I did not do this the thread chewed through the effector again and again. After a while. First I got the SR-71 cookie cutter right (which was absolutely essential as a result of my childhood). 😉

IMG_20140528_172918

Some more 3D-printer-surgery: not only did the position of the hot end waste printing volume – it was also suboptimal for cooling purposes. I needed something else.

IMG_20140509_105318

(The large hexagonal holes are meant for accepting nuts as there are no M3 screws in this enormous length available.)

difference() {
// Grundkörper:
cylinder (r=34,h=40.8, center=true, $fn=100);// Vorne abziehen:
translate([0,30,0]){
cube ([65,30,50],center=true);}
// Hinten abziehen:
translate([0,-28,0]){
cube ([65,30,50],center=true);}
// Luft-Auslass:
translate([0,-5,0]){
cube ([20,20,50],center=true);}// Schraubenlöcher Platte und Effektor:
for(x=[-1,1]) rotate([0,0,x*90]) translate([0, 25, 0]) {
cylinder(r=3.8/2, h=100, center=true, $fn=50);}
translate([25, 0, 0]) {
rotate([90,0,0]){
cylinder(r=5,h=35,$fn=6,center=true);}}
translate([-25, 0, 0]) {
rotate([90,0,0]){
cylinder(r=5,h=35,$fn=6,center=true);}}// Schraubenlöcher Lüfter:
translate([-16,6,-16]) {
rotate([90,90,0]){
cylinder(r=1.4,h=20,$fn=6,center=true);}}
translate([16,6,-16]) {
rotate([90,90,0]){
cylinder(r=1.4,h=20,$fn=6,center=true);}}
translate([-16,6,16]) {
rotate([90,90,0]){
cylinder(r=1.4,h=20,$fn=6,center=true);}}
translate([16,6,16]) {
rotate([90,90,0]){
cylinder(r=1.4,h=20,$fn=6,center=true);}}// Loch für Kühlkörper (Trichter):
cylinder(r1=14, r2=12.7, h=(41), center=true, $fn=100);
// Loch für Lüfter (Trichter):
rotate([90,0,0]){
translate([0,-0.8,-0.6]){
cylinder(r1=38/2, r2=15/2, h=29, center=true, $fn=100);}}} // difference()

IMG_20140509_094323 IMG_20140509_111542IMG_20140509_112806

 

 

More optimization: 120mm Fan Grille by maxman and a nozzle fan output stage.

IMG_0422 IMG_0736IMG_0735

The nozzle fan, of course, had to be strapped to the effector. In my case by a 75% scaled version of Rostock Max fan shroud by dsnettleton. Because it was too large and I had a 30mm-fan at hand anyway. I still had to give it a bump via „hot knife“.

IMG_0792 IMG_0825 IMG_0827 IMG_0830

As I had alread learned you need spare parts in case some of the plastic fails. So I prtined a whole set.

IMG_0398 IMG_20140616_121616

And then I printed PolyCup by WickedAndy as a stress test (5h). Quality was quite good as soon as the nasty initial overhangs where done. To be sure it sticked to the heated bed I hot-melted it in place.

IMG_0846 IMG_0854

IMG_0859

IMG_0875 P1050192

You cannot see the structure being quite distinct at the front and bland at the rear. This is because the mechanics had developed play again.

IMG_20140509_113605 IMG_20140618_150125

After both epoxy resin and heat shrink tubing failed I searched for a fortuitous matching. I went as far as compairing metric to imperial parts as well as trying out M3.5-screws in combination with 6mm² wire-end sleeves / bootlace ferrules – to no avail.

IMG_20151022_145354 IMG_20151022_141541

Meanwhile the Sumpod was up and running. And the „cartesian-XY-head“ setup was just so much easier to live with every day. So I abandoned the „RoStrap“ at this point and will re-use it’s parts a new, more Ultimaker-like, design next year.

(Original posts: www.metalforum-owl.de/viewtopic.php?f=21&t=2008&start=80#p64481, April 30th 2014, et seqq.)

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s