Showing posts with label time. Show all posts
Showing posts with label time. Show all posts

Saturday, 22 April 2017

Two years on

I have failed to update this blog for two years.

I have no excuse, I am now retired and am active in a number of ways on Amateur Radio and Light engineering.

I am playing with in no particular order:-
  • WSPR
  • SDR Receivers and Transmitters
  • Raspberry Pi's
  • Encrypted Internet Links
  • Remote Web-servers
  • Laser Cutters (Solid state)
  • CNC Milling (Small scale)
  • 3D Printing
These all interact in interesting ways, for instance I am using 3D printing to make parts to improve my Laser Cutter which I intend to use for PCB etch resist removal which gives me small circuit boards cut and drilled by the CNC Mill to make RF  circuits for my electronic and radio experiments!

So not of interest to many but an early attempt at creating a support component for this tangled chain I used OPENSCAD to produce a replacement carriage for the laser cutter with tighter tolerances to reduce the side slip that was affecting the reliability and repeat-ability of the laser cutter.

OpenSCAD uses a simple language to define 3 Dimension shapes mathematically. So in this case a source code of :-

/* Plate

units mm

*/

$fn=45;

PlateType = 2;


Toplen = 114.5;
Thick = 6.7;
Height = 112.75;
ShaftH = 5.2;
Hole3 = 4.6;
Hole4 = Hole3;
Hole5 = 24;
Hole6 = 4;
Hole7 = Hole6;
Hole8 = 3.6;
Hole9 = Hole8;
Hole10 = Hole8;
HoleS1 = Hole8;
HoleS2 = Hole8;
KHole1a = 6;
KHole1b = KHole1a;
KHole2 = KHole1a;
HoleRow = 5.6;
HoleRow2 = 62;
HoleRow3 = 22;
HoleRow4 = 45.7;
HoleRow5 = 88;
HoleRow6 = HoleRow5-31/2 ; /* Nema17 */
HoleRow7 = HoleRow5+31/2 ;
HoleRow8 = 16.4;
HoleRow9 = 56.3;
HoleRow10 = 95;
HoleSLen = 1.6;
HoleS1a = 37.7;
HoleS1b = HoleS1a + HoleSLen;
HoleSS = 33.5;
HoleS2a = HoleS1a +HoleSS;
HoleS2b = HoleS1b +HoleSS;
KHoleR1 = 31;
KHoleR2 = 70.5;
HoleIn = 11.3;
HoleIn2 = 19;
HoleSep3 = 17;
HoleSep4 = HoleSep3;
HoleSep6 = 31;
HoleSep7 = 31;
HoleSep8 = 20;
HoleSep9 = HoleSep8;
HoleSep10 = HoleSep8;
HoleSSep = 50;
KHole1Sep = 15;
KHoleBH = 6;
KHoleBW = 3.3;


difference() {
     union(){
        cube([Toplen, Height,Thick],center=true);
}
     union(){
        
    /* Wheels */    
         translate([0,(Height/2) - HoleRow,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=ShaftH, true) ;
        
         translate([0- (Toplen / 2) + HoleIn ,(Height/2) - HoleRow,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=ShaftH, true) ;
        
         translate([ (Toplen / 2) - HoleIn ,(Height/2) - HoleRow,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=ShaftH, true) ;
        
         translate([0- (Toplen / 2) + HoleIn2 ,(Height/2) - HoleRow2,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=ShaftH, true) ;
        
         translate([ (Toplen / 2) - HoleIn2 ,(Height/2) - HoleRow2,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=ShaftH, true) ;
      
     if (PlateType == 1){
        
         translate([ HoleSep3/2 ,(Height/2) - HoleRow3,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole3, true) ;
        
         translate([ 0 - HoleSep3/2 ,(Height/2) - HoleRow3,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole3, true) ;
     
        
         translate([ HoleSep4/2 ,(Height/2) - HoleRow4,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole4, true) ;
        
         translate([ 0 - HoleSep4/2 ,(Height/2) - HoleRow4,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole4, true) ;
      
 /* NEMA17 */
       translate([0,(Height/2) - HoleRow5,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole5,true);

      
              
         translate([ HoleSep6/2 ,(Height/2) - HoleRow6,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole6, true) ;
        
         translate([ 0 - HoleSep6/2 ,(Height/2) - HoleRow6,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole6, true) ;
      
         translate([ HoleSep7/2 ,(Height/2) - HoleRow7,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole7, true) ;
        
         translate([ 0 - HoleSep7/2 ,(Height/2) - HoleRow7,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole7, true) ;
      
        
        }
        else
        {
           
      /* Holes */
           
                   
         translate([ HoleSep8/2 ,(Height/2) - HoleRow8,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole8, true) ;
        
         translate([ 0 - HoleSep8/2 ,(Height/2) - HoleRow8,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole8, true) ;
     
        
         translate([ HoleSep9/2 ,(Height/2) - HoleRow9,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole9, true) ;
        
         translate([ 0 - HoleSep9/2 ,(Height/2) - HoleRow9,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole9, true) ;
  
        
         translate([ HoleSep10/2 ,(Height/2) - HoleRow10,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole10, true) ;
        
         translate([ 0 - HoleSep9/2 ,(Height/2) - HoleRow10,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole10, true) ;
        
      /* Key Holes */
           
         translate([ KHole1Sep/2 ,(Height/2) - KHoleR1,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=KHole1a, true) ;
        
               translate([ KHole1Sep/2 ,(Height/2) - KHoleR1 - KHoleBH + 1 ,0]) rotate([0,0,0]) cube([KHoleBW,KHoleBH,3*Thick],true) ;
        
         translate([ 0 - KHole1Sep/2 ,(Height/2) - KHoleR1,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=KHole1b, true) ;
   
             translate([0- KHole1Sep/2 ,(Height/2) - KHoleR1 - KHoleBH + 1 ,0]) rotate([0,0,0]) cube([KHoleBW,KHoleBH,3*Thick],true) ;
   
          translate([ 0 ,(Height/2) - KHoleR2,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=KHole2, true) ;
         
          
            translate([0 ,(Height/2) - KHoleR2 - KHoleBH + 1 ,0]) rotate([0,0,0]) cube([KHoleBW,KHoleBH,3*Thick],true) ;
     
      /* Slots */     
     
       translate([ HoleSSep/2 ,(Height/2) - HoleS1a,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS1, true) ;
        
         translate([ 0 - HoleSSep/2 ,(Height/2) - HoleS1a,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS1, true) ;
     
        
         translate([ HoleSSep/2 ,(Height/2) - HoleS1b,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS1, true) ;
        
         translate([ 0 - HoleSSep/2 ,(Height/2) - HoleS1b,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS1, true) ;
  
                translate([ HoleSSep/2 ,(Height/2) - HoleS2a,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS2, true) ;
        
         translate([ 0 - HoleSSep/2 ,(Height/2) - HoleS2a,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS2, true) ;
     
        
         translate([ HoleSSep/2 ,(Height/2) - HoleS2b,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS2, true) ;
        
         translate([ 0 - HoleSSep/2 ,(Height/2) - HoleS2b,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS2, true) ;
  
       translate([ HoleSSep/2 ,(Height/2) - (HoleS1a+HoleS1b) / 2,0]) rotate([0,0,0]) cube([HoleS1,HoleSLen,3*Thick], true) ;
        
      translate([ 0 - HoleSSep/2 ,(Height/2) - (HoleS1a+HoleS1b) /2 ,0]) rotate([0,0,0]) cube([HoleS1,HoleSLen,3*Thick], center=true) ;
   
      translate([ HoleSSep/2 ,(Height/2) - (HoleS2a+HoleS2b) / 2,0]) rotate([0,0,0]) cube([HoleS2,HoleSLen,3*Thick], true) ;
        
      translate([ 0 - HoleSSep/2 ,(Height/2) - (HoleS2a+HoleS2b) /2 ,0]) rotate([0,0,0]) cube([HoleS2,HoleSLen,3*Thick], true) ;   
           
     }
}
}



Can generate two different 3D shapes depending on the value of  Platetype.

For Platetype = 1
 


For Platetype = 2

 

 These are of course simpler than the original parts that had shaping for clearance and minor style reasons.

Comparing these with the Clear Acrylic originals shows the disadvantages of the PLA I used to print it being opaque and prettier than my new test replacements, however the big advantage is that the slop is now gone from the mechanism so I will use these simple replacements for further experimentation.

(For interest the Laser Cutter is an  

EleksMaker® EleksLaser-A3 Pro 2500mW Laser Engraving Machine CNC Laser Printer )



 

Friday, 8 May 2009

Time Lapse

Well this blog has suffered the way of many others.

Created with enthusiasm - then left with no postings.

Things have changed at work that means I "may" have more time to do this sort of thing?

One thing I will comment on is "Spotify" a "new" means of streaming music to PCs. This seems to be a succesful idea and I hope it continues. The range of music is wide and caters for all musical tastes.

I may even pay for the premium version in a while.

--
Peter G4DCP