Learning the hard way

When I was a CNC girl, I thought things like “Once you make one, you can do thousands, easily!”, “Acetal is the perfect plastic for precision parts and cuts like butter!”. OMG I was so naive. Making these parts were really a pain in the ass. That’s why.

IMG_2782


IMG_2774

Acetal has internal stresses. This mean that if you remove a significant mass from a block of acetal, the final shape will warp a bit. I knew that. But what I didn’t know was that sometimes this natural “stress relief” can take hours. So one day I was turning a lot of these parts, everyone having a perfect bearing fit. But then, on the next day, the bearing fit was really tight; the parts have had shrank a little bit. May be acetal I got wasn’t annealed? Or may be I should anneal these parts? (yes, plastic annealing is a topic).

BTW, in this specific case, a bearing housing should, ideally, not divert more than 5-7um from the nominal size: 10um less and the bearing will not fit; 10um more and the bearing fit will be too loose.

Now the other issue: long aluminum crosslide = noticeable thermal expansion. So the table temperature will change after stepper warm-up. And, it will change again after some machined parts. From what I remember a machined radius can easily divert 0.03um because of thermal expansion. And rehomming after temperature changes can be a bit misleading.

The good thing is that, once you understand these issues, making something to avoid or reduce them is not too hard. The bad is that now I have a full bag of black plastic decoracion parts (not the ones in the pictures, of course).

i3lib – native gcode CAM subroutines

One of the things I’ve been working is a set of gcode subroutines meant to make easy to write gcode. Well, in the end you write very little gcode if you use it. Here are some examples:

gcode

So, for example, here the code for the hexagon pocket milling:

    #<s> = 30
    #<h> = [SQRT[3] * #<s>]
    o<i3_c_new_group> call [80] [0]
    o<i3_v_add_vertex> call [#<s> / 2] [0]
    o<i3_v_add_vertex> call [#<s>] [#<h> / 2]
    o<i3_v_add_vertex> call [#<s> / 2] [#<h>]
    o<i3_c_mirror> call [0] [1] [0] [1]
    o<i3_do_cut_mill_by_layer> call [19] [10] [0] [-1] [0] [0]

Most of hard work has been done, there’s some cleanup and documentation left. At some point I would like to release this code as open source. It makes really easy to create paths for simple parts (please note all the generated paths account for tool compensation, not G4X).

Aluminum Sheet Cutting

My actual cutting parameters for aluminum sheet:

  • Material: 1100 aluminum (I’ve cut 1mm and 2.5mm sheets)
  • Feed: 600mm-min or 24IPM (I’ve used 800mm-min, but now I’m being conservative)
  • End-mill: 4-flute 1.5mm carbide. I’ve used 2-flute and 3-flute; the more flutes, the more quiet the cut.
  • DOC: 0.2mm
  • Spindle speed: max (2800 rpm)
  • Lubricant: some WD40
  • Finish pass required.

sheet_cutting-01sheet_cutting-02sheet_cutting-03

A lot of peoples says 1100 is a nightmare to machine, but as always, you just need to know it. I settle in these parameters by a test-error process, but I don’t now if these are the optimal ones. I just know these values work for me. And of course these small carbide end-mill would enjoy more rpm.

For 5052 I’ve used the same parameters, but you need to lower the feed a bit; a friend broke some end-mills at 800mm-min because of my speed thirst (nevertheless that was fun).

One last thing… the part in the photos is 2.5mm thick, so it was strong enough to withstand all the cutting with just a few screws. If that were a 1mm sheet more screws would be required.

My first cnc part

I should say the hardest step in making this part was to press the start button (I’m a chicken).

linuxcncfirst_cnc_cut_01b first_cnc_cut_02This 1mm sheet was held to a mdf plate using Carnauba; that seems to work nicely. Badly I made a mistake and the DOC was about 0.5mm (hence two runs where required), so I’m still not sure if 7 IMP is ok for 1mm DOC.

Things I learn:

  • Finish was ok in round cuts, but not so good in slots. Next time I will separate roughing and finishing, so I can clean the chips before finishing passes. This is when hand coding gcodes pays.
  • I need to buy Acetone to clean Carnauba.
  • Regarding outside diameter, I find a max of 50.08 and a min of 49.90. May be this has to do with backlash (I have backlash compensation enabled btw).
  • TODO: a tool height setter artifact.
  • My cheap Canon photo camera sucks taking videos.

The next task will be to cut the definitive encoder wheel for the machine spindle.

Preparing the first cnc cut

Up to this point I’ve worked in the lathe and the mill without worrying too much about speed and rpm calculation, trusting in my own experience and “feeling”, as a lot of hobbyists, I guess. Tooling wearing wasn’t ever an issue  to me; carbide tools seemed to last almost forever. Until I grasp Machinery’s Handbook and read “tool life for milling… should be approximately 45 minutes” (!!). So clearly in the cnc world choosing the right cutting parameters matters.

The cutting setup of my first cnc project involves:

  • 5052 Aluminum sheet, 1mm thick
  • 2mm, 3 flute uncoated carbide end mill
  • 1mm DOC
  • 2800 RPM
  • No coolant, just a some WD40

This LMS table states a speed of 165 FPM for 6061 aluminum (I guess it’s for HSS). So RPM = (165 x 4) / 0.0787 = 8386. Now, according to this, 0.002 IPT (inches per tooth) is suggested for 0.05 DOC, 1/8″ hss end mill over aluminum (closets size); 0.0015 IPT for my 2mm endmill seems reasonable. So using the max rpm’s (2800) gives me a feed of 2800x 0.0015 x 3 = 12.6 IPM or 320 mm/min.

Of course, due to the complex nature of this topic, suggested parameters for material/end-mill can vary a lot. American-Carbide suggest a feed of 16.000 rpm / 11.8 IPM for this cutting setup. And Whitney Tool states a cutting speed of 600 FPM for hss and 1200 FPM for carbide. As always Practical Machinist is a good source of knowledge.

Now some real world experience in the Sherline world.  This guy  broke his 2mm carbide endmill at 8 IMP, 0.5mm DOC. This other guy broke his 1/8″ 4 fl endmill  at 6000 RPM 14 IMP, 1.27mm DOC. In a test in my manual mill three turns per second (7 IPM)  doesn’t seem to break the tool.

So i think I will stick to 7 IPM for now and see what happens, and maybe later I get a set of teen end mills to do some testing and push further. Also, It’s clear I need to order the 10.000 RPM pulley set.

Homing switches for the mill

My cnc mill itsn’t ready yet, but I hope it will be soon so I’ve been starting to learn a bit of gcode. Meanwhile here are my homing switches.

My approach here it’s very similar to the homing switches I did for the lathe some time ago. For X and Y axis I’d use the same type of micro optical switches; maybe RPI-131 from Rohm , maybe ee_sx1103 from Omron, not sure. For the Z axis I’d use a more typical H21A2 from Fairchild. Of course optical switches are only advisable when you can protect them from chips and debris.

home_swt_01 home_swt_02 home_swt_04home_swt_04After intalling and testing you should configure homing switch location and travel range for every axis (a trial-error process). Now I know the cutting envelope of my machine is 206 x 162 x 172 mm (8.1 x 6.37 x 6.77 inches).

Regarding to the nice spindle distribution box: I learn that doing deep pocket milling by hand in polyamide it’s a very unpleasant task (at least this 48x66x21 mm pocket).

home_swt_05Pleas note this is the only one polyamide part on the mill; other plastic parts are delrin made.

No THAT Monster

Here I will share some thoughts regarding Sherline milling machines.

First, Sherline mills are great machines.

  • Almost unbeatable price/quality.
  • Compact and lightweight.
  • Lots of accessories and even a cnc kit.

Second, these are nice machines, but not perfect. It seems most users are happy with their Sherline’s, but pointing most obvious weaknesses it’s healthy.

  • Weak column. A 10mm thicker column would be great.
  • Short throat. You need two spacer blocks on the headstock to be able to use the full Y travel.
  • No provision for delrin nuts.
  • Annoying motor location (inherited from the lathe, obviously).
  • No leadscrew/ways protection out of the box.
  • Gib system (it seems I’m the only one that hate the gib system, so ignore this).

Third. I think the “monster mill” philosophy it’s wrong. Basically, and this is my personal opinion, extending every axis and changing to ballscrews it’s not worth nor advisable. May be extending X axis and putting to ballscrew on Z axis, but a full monster mill it’s really ugly to me. I should also say that I prefer model  5000 over 2000, but I don’t think 2000 model be a bad deal.

So this:

column-headstock_2And still a lot of work ahead.

UPDATE: We are in 2015 and Sherline has a lot of new products and enhacements. Now they have a nice ways cover and a big spacer to give more throat.