The Optional Stop newsletter
Home | More Issues | Contact Us
From our website:
Home
Products
Services
Resources
On-Line Classes
CD-Rom Courses
CNC Books
Software
CNC Jobs
CNC Schools
CNC Tips
Educator's Page
Tech Talk Forum

April 5, 2010

Dear Subscribers,

Welcome to Issue 82 of The Optional Stop newsletter. This issue places an emphasis on turning centers that have sub-spindles – both fixed and sliding headstock. I hope you enjoy it.

We’re also spotlighting our on-line classes in the product corner. They make a very affordable way to learn about CNC metal cutting equipment. If you know someone who could benefit from these classes, we’d appreciate it if you’d pass it on. Again, enjoy!

Mike Lynch

IN THIS ISSUE
Product Corner: On-Line CNC Classes
Instructor Note: Developing appropriate test questions
Manager's Insight: Why do machines sit idle?
G Code Primer: Running multiple parts from a bar with a sub-spindle machine
Macro Maven: A custom macro to safely check and position a cutoff tool
Parameter Preference: More on parameters that can be set by G10 commands
Safety First: Make all sizing adjustments with offsets

Product Corner: On-line CNC classes

To date we’ve had over 1,000 people attending our CNC on-line classes. We’ve received countless positive reviews, from people who are just wondering what working with CNC would be like through people that have used our materials as their only formal training about CNC.

Admittedly, many don’t actually finish the classes. Only about 600 completion certificates have been awarded. The price of these courses is low enough to allow people to get their feet wet with CNC. Obviously, some people won’t find this field to be their cup of tea. But at least they’ve been able to determine this without having spend too much time, money, or effort. And since the courses are on-going and self-paced, they don’t have to wait to begin.

We currently have six classes on-line:

Each class is made up of lessons. Students must complete all lesson activities for one lesson before they can move on to the next. Activities include downloading, printing and reading the lesson text, viewing a PowerPoint presentation, completing polls (in some lessons), doing assignments, and taking tests. There are also forums in which students can communicate with other students. If a student has a question or problem, they can call or email us.

Grading is done in percentage. Above about 92 percent would be equivalent to an A, 85 to 91 a B, and 75 to 84 a C. If a student scores less than 70 percent, they are asked to review the lesson material and retake the test or redo the assignment. When they do, their score will be updated. This way, they can’t fail the course – though they can give up without completing.

A certificate of completion is available for an additional price.

Read more about our on-line classes.

 

M01

Top of page

Instructor Note: Developing appropriate test questions

An important part of any learning environment is evaluation. Instructors must, of course, be able to fairly and accurately assess every student's understanding of presented material. Testing is an important part of the assessment process.
There are several obvious types of questions that can be included in any test. They include true/false, multiple choice, fill-in-the-blank/s, and long answer (essay). Some of these basic types can be categorized yet further. With a fill-in-the-blank question, for example, the student may be simply completing a sentence with a word or phrase – or they may be working out a problem before providing an answer.

From an instructor’s viewpoint – at least in my opinion – the easiest type of answers to grade are those for true/false and multiple choice questions. Since the student will simply check a box or draw a circle to answer, it is very easy to determine whether they’ve answered correctly – and if the question is developed properly, there should be no gray area related to whether the answer is correct. An instructor can grade these answers without having to think much. Indeed, the instructor is not even required in order to grade. Anyone can tell if an answer to a true/false or multiple choice question is correct.

Unfortunately, true/false and multiple choice questions can’t always accurately assess a student’s understanding. With a true/false question, for example, even if the student doesn’t know the answer – and they guess – there’s a fifty-fifty chance they’ll get it right. Though percentages drop with multiple choice questions, the same principle applies. And students can get pretty good at sniffing out the correct answer – just by studying the way a question is worded.

Though they require more effort from the instructor – and not just anyone can do the grading – questions that require an actual answer from the student are better at assessing understanding. Simply said, there’s no way to guess – at least not in a way that makes any sense. So important topics should included at least a few fill in the blanks or long answer (essay) questions.

Trick questions

In my experience, a student will consider just about any question they get wrong to be a trick question. With my online classes, for example, I’m constantly hearing that this question or that is poorly worded – or that I’m somehow trying to trick them into giving the wrong answer. When faced with these situations, I try to judge on a case-by-case basis (when time allows). If the student adequately demonstrates a firm understanding, I’ll often give them credit for the question. And if a large percentage of students are getting the question wrong – and especially when the are students doing very well in the class, I’ll consider rewording the question.

Real-world versus theory questions

During my machining center programming class, one of the tests requires students to calculate a series of coordinates for a milling cutter’s tool path. When I created the drawing, I didn’t draw it to scale. For four circular motion arcs, the centerlines of the arcs happened to be in line with the centerlines of four holes, meaning a student could use the (incorrect) hole center coordinates to calculate the starting and ending points for the circular motions.

While this may be considered somewhat unfair, it is a pretty good representation of what design engineers do in the real world (though I freely admit that it was more of a mistake on my part). When a student made this mistake for the first time, my first thought was that I should redo the drawing. But after I thought about it, I decided to leave it. If students consistently calculated coordinates using the hole centers (incorrectly), I don’t subtract much – but I do provide a lengthy explanation about what they’re in for in the real world. While a (very) few students have still thought this was unfair, the vast majority actually thanked me for providing such a good exercise.

So don’t be afraid to combine real-world questions with theory-type questions. Often a real-world question will leave a more lasting impression on the student than a theory question.

Extension questions

While it may not be fair to include these questions with those that are actually graded, I like to include a few questions in each test that push the student beyond what they’ve learned from the presented material. That is, I like to make them think for themselves about the topics being presented. In many cases, answers to these questions have not been presented. But based upon a student’s knowledge of presented material, they should be able to extrapolate or extend what they know to answer by applying what they’ve learned to the question.

Here’s a simple example. It has to do with tool length compensation on a machining center. With the method I recommend, the tool’s length is used as the tool length compensation offset value. The distance from the spindle nose to the program zero surface is used as the Z axis program zero assignment value. We discuss how sizing and trial machining are done – along with other important usage tips for using this important feature.

One of the extension questions I ask in the test for this material is “What do you think will happen if you forget to enter a tool length compensation value for a given tool – and its tool length compensation offset register is currently set to zero?” Again, this is not covered in the presented material. But by knowing that when an tool length compensation value is reduced, the tool will machine deeper into the part (discussed as part of sizing and trial machining), a student should be able to figure out that if the offset value is zero, the machine will think that the tool has a length of zero – and will bring the spindle nose to the programmed surface. This, of course, will crash the tool into the workpiece.

M01

Top of page

Manager's Insight: Why do machines sit idle?

Every time you walk the shop floor, you should take note of which machines are running and which ones aren’t. Ideally, you should find only two reasons why a machine is sitting idle (other than having no work for it). One: it’s in setup – and the setup person is actively working to complete the setup. Two: the operator is loading parts, and will be able to run the next cycle immediately after doing so.
If you find other reasons why machines sit idle, it should be taken as a signal that the machine is being under-utilized. That is, it could producing more. It is not living up to its full potential.

In the real world, this can be difficult to achieve. We tend to place personnel utilization (getting the most from our people) at a higher priority than machine utilization (getting the most from our machines). Machines often sit idle because their waiting on people. It’s as simple as that.

Why are machines waiting for people? We’ve probably heavily loaded setup people and operators with many responsibilities. They’ve got so much to do that they can’t keep up with the machines they run.

Operators, for example, probably have to load and unload parts, clean and debur parts, measure them, report to an SPC system, make offset adjustments, do paperwork, and perform preventive maintenance on the machine. Oh yeah – then we expect them to run two or more machines.

Setup people, on the other hand, may be responsible for several machines, and if two machines complete a production run at the same time, one of them – of course – will sit idle waiting for the setup person to complete the setup on the other.

If and when you’re faced with improving your company’s output (becoming more productive), one great – and usually easy – way to get better is to minimize or eliminate all but the two reasons just given regarding why machines sit idle.


 

M01

Top of page

G Code Primer: Running multiple parts from a bar with a sub-spindle machine

Suggested by Troy Hubert of Cox Manufacturing

In past issues of this newsletter, we have addressed this topic for chucker-type CNC turning centers. With very short workpieces (like washers), it is often advantageous to run several parts from a slug. That is, after loading the raw material long enough to run, say, five workpieces, the machine will run one workpiece and then cut it off. It will repeat this four more times.

Programming this kind of operation is pretty simple using the work shift function. A main program (which is the controlling program), simply sets the work shift value in Z to zero, then calls a subprogram with five repeats. The subprogram completely machines a part and then incrementally modifies the Z axis work shift by an amount equal to the workpiece length plus facing stock plus cutoff tool width. The main program will look like this:


O0001 (Main)
N005 G10 P0 Z0 (Set work shift Z to zero)
N010 M98 P1000 L5 (Run five parts)
N015 M30

At the end of the sub-program, this command will modify the work shift:

N205 G10 P0 W-0.285 (Modify work shift)
N210 M99 (End of sub-program)

W-0.285 incrementally changes the work shift Z value. Note that with some machines, this may have to be a positive value.
Again, this is pretty simple to do when the machine has only one spindle. But it gets much more complicated when the machine has a sub-spindle, and when there are operations to be performed on the sub-spindle side.
Consider these main programs for a Miyano fixed headstock machine (they machine ten workpieces per pull-out):

O0700( MAIN SPINDLE MAIN PROGRAM )

M900
G28U0
G30W0
M902

N101 G10P0Z0(WORK SHIFT CANCEL)

N1
T1111M8(OD FORM TOOL)
G0G99Z-1.229M28
X2.5M108

M904(WAIT FOR FEEDOUT)

M91(MAIN SPINDLE ENCODER ON)
G97M3S800
X.765
G1X.665F.003
G0X.685
X.67
G1X.645F.003
X.65
X.6406F.002
G0X.642
G4X.2
G1X.6406F.0015
G4X.02
G0X2.5
Z2.0

T0

N2
T0101M91(DRILL)
G97G99S4000M3
G0Z0.5
X-2.753(SPOT)
Z.02
G1Z-.075F.002
G0Z.1
X0(DRILL)
Z0.
G1Z-.875F.004
G0Z.1
Z-.855
G1Z-1.25F0.004
G0Z.5

T0

M906

M908(1ST PART)
M910
M98P1000

M912
N102 G10P0W.1229(2ND PART)
M914
M98P1000

M916
N103 G10P0W.1229(3RD PART)
M918
M98P1000

M920
N104 G10P0W.1229(4TH PART)
M922
M98P1000

M924
N105 G10P0W.1229(5TH PART)
M926
M98P1000

M928
N106 G10P0W.1229(6TH PART)
M930
M98P1000

M932
N107 G10P0W.1229(7TH PART)
M934
M98P1000

M936
N108 G10P0W.1229(8TH PART)
M938
M98P1000

M940
N109 G10P0W.1229(9TH PART)
M942
M98P1000

M944
N110 G10P0W.1229(10TH PART)
M946
M98P1000

N111 G10P0Z0(WORK SHIFT CANCEL)

G97S100
M25
M948

T1100

/M98P9001

M999
M30

O0700( SUBSPINDLE MAIN PROGRAM )

M900
G28U0B0
G28W0
G0B-2.5

M902

N101 G10P0Z0(WORK SHIFT CANCEL)

N1
T0101M91(FEEDOUT)
G97M3S100
G0G99Z.2
X0
Z0.
M17(COLLET OPEN)
G4X.5
M18(COLLET CLOSE)
G4X.5
Z.1
G28U0.0

T0

M904
T0900
M906

M908(1ST PART)
M910
M98P2000

M230
W-.1229
M231

M912
N102 G10P0W.2458(2ND PART)
M914
M98P2000

M230
W-.1229
M231

M916
N103 G10P0W.1229(3RD PART)
M918
M98P2000

M230
W-.1229
M231

M920
N104 G10P0W.1229(4TH PART)
M922
M98P2000

M230
W-.1229
M231

M924
N105 G10P0W.1229(5TH PART)
M926
M98P2000

M230
W-.1229
M231

M928
N106 G10P0W.1229(6TH PART)
M930
M98P2000

M230
W-.1229
M231

M932
N107 G10P0W.1229(7TH PART)
M934
M98P2000

M230
W-.1229
M231

M936
N108 G10P0W.1229(8TH PART)
M938
M98P2000

M230
W-.1229
M231

M940
N109 G10P0W.1229(9TH PART)
M942
M98P2000

M230
W-.1229
M231

M944
N110 G10P0W.1229(10TH PART)
M946
M98P2000

N111 G10P0Z0(WORK SHIFT CANCEL)

T1010(EMPTY PART CATCHER)
G28U0.
G0Z-1.0
M9(COOLANT OFF)
M29(HPC OFF)
M35(ROTATE TURRET TO DROP PART)
M115(ROTATE TURRET CLOCKWISE ONLY)
G4X1.0
G28W0.0
G28B0.
M8
M28
T0100M105
M948

/M98P9001

M999
M30

In both main programs, N101 sets the Z axis work shift value to zero. Lines N101, N102, and so on, increment the work shift value by the workpiece length plus the cutoff tool width plus the facing stock for each successive part. Now let’s look at the sub-programs.

O1000
( HEAD 1 SUB PROGRAM )
T2121M191(BACK DEBUR DRILL)
G97S3000M103
G0G99Z-.5
X0
Z0.
G1Z.042F.003
G4X.2
G0Z-.5S1000
G28U0.

T0

T1212(INDEX CUTOFF)
G0Z-.1229

M901(WAIT FOR EJECT AND FACE)
M902(EJECT AND FACE COMPLETE)

M91
G97M3S3000
M903
M904(WAIT FOR PICKOFF-HEAD 2)
G0X.707
G1G99X-.04F.003
M905
M906
G28U0.
G28W0.

T0

M99


O2000
( HEAD 2 SUB PROGRAM )
T0909M91(FACE/BORE)
G97M3S4000
G0G99Z.2
X.12
G4X.5
Z.02
G1Z-.0467F.008
X.122
Z-.0315F.001
X.1895Z.0074F.0005
G4X.2
X.159F.01
Z-.0035
X.72Z0F.0025
G0Z2.0
G4X.2
M3S2000

T0

M901(READY FOR EJECT)

N3
T1010M191(PART CATCHER)
M104S100G0G99Z0
X0.
M230
W-5.46
M231
M117(EJECT PART)
G4X.5
M230
W5.46
M231
G28U0
G28W0

T0

M902(EJECT COMPLETE)

M903(WAIT FOR CUTOFF-HEAD 1)

M191
M104S3000
M117
G4X.2
M230
G0W-12.03
G1G98W-.045F99.(PICKOFF LOCATION)
G4X.2
M118
G4X.2
M904(START CUTOFF)
M905
G0W.075
M906
W12.0
M231
T0

M99

Notice that neither sub-program does any work shifting for the Z axis. This is completely done by the main programs. While this technique is much more complicated to use with sub-spindle machines, at least it is possible.


M01

Top of page

Macro Maven: A custom macro A program to safely check and position a cutoff tool

by George Bahn

About 10 years ago we purchased a couple of Tsugami’s SX20 sliding-headstock machines. These machines require 2 programs to produce one part (one for the main, one for the sub). The beginning of the programs are simple and relies on the setup person to make sure the cut off is in the correct location for machining. The first operation is for the headstock to open the collet, drop back the proper amount that will allow enough material for machining and the close the collet. If the cut off is not in front of the stock, the material will shoot right out of the guide bushing when the collet open up. After recovering from several crashes because of this, I decided to write my first macro program. I call it up in the main program as a subprogram. It checks the position of the cutoff and will place it in the right position in a safe manor.


Main program:

O1354(Main program number)
B2354 (sub program)
M98P9001 (macro program call)
N10( program START UP)
.
.
.
M30


Custom macro (version A format):
O9001 ( CHECK FOR CUTOFF POSITION)
(H01 = DEFINITION OF VARIABLE)
(H80 = GOTO )
(H82 = DOES NOT EQUAL )
(H83 = PERFORMS GREATER THEN OPERATION )
(P# = VARIABLE WHICH HOLDS RESULT OF FUNCTION )
(Q# = FIRST VARIABLE THAT HAS INFORMATION STORED IN OR A CONSTENT NUMBER)
(R# = SECOND VARIABLE THAT HAS INFORMATION STORED IN OR CONSTENT NUMBER)
(VARIABLES CAN NOT HAVE DECIMAL POINTS)
(EXAMPLE 1 = .00001 SO 10000 = .10000)

G65 H82 P998 Q#4120 R1414 (4120 = CURRENT T CODE)
( IF CURRENT TOOL DOES NOT EQUAL CUTOFF THEN GOTO N998)

G65 H01 P#500 Q#5041 (#500 = 5041 (CURRENT X POSITION)
G65 H01 P#501 Q-5000 (#501= END CUTOFF POS (-.050)
G65 H83 P998 Q#500 R#501 (IF #500>#501 GOTO N998)
G65 H80 P999 (GOTO N999)

N998 (IF NOT IN POSITION, C/O THEN RETURN TO MAIN)
T0 (CANCEL TOOL OFFSETS)
G28 U0
G50 X2.2834 (TOOL HOME )
M10
M51 (CANCEL C AXIS)
T1414 (CUT OFF TOOL)
M13 S1500 (SPINDLE/COOLANT ON)
G50 U0 W-0.711 (CUT OFF OFFSET)
G0 X0.9 (RAPID INTO Safe POSITON )
G99 G1 X-0.05 F0.0015 (CUT OFF )
G50 U0 W0.711 (CANCEL OFFSET )

N999
M99 (RETURN TO MAIN)

The above program shows how I create a custom macro with all the explanations included. I thought if someone would ever want to know what was going on all they needed to do was read.

Editor’s note: Most programmers will easily agree that custom macro B is much more powerful and helpful than custom macro A. Indeed, many have given up on custom macro A since it is so limited. But as this application shows, custom macro A can be very helpful – if you take the time to learn it. Thanks to George Bahn for this helpful program.


M01

 

Top of page

Parameter Preference: More on parameters that can be set by G10 commands

Admittedly, we’ve addressed this topic before. As you know, there are many program-related parameters that can be modified by a G10 command in a program. Indeed, any time you wish to change a program-related parameter from within a program, you can do so with G10. Here is the format:

G10 L50
Nxxxx Rxxxx
Nxxxx Rxxxx
G11

G10 L50 places the machine in the parameter entry mode. The N word in each line specifies the parameter number and the R words in each line specifies its value. You can modify as many parameters as you wish by simply listing more commands with N and R words. When finished setting parameters, the G11 cancels the parameter entry mode.

What you may not know (and the reason we’re revisiting this topic) is that some machine tool builders use a series of parameters for special offset applications. With a Tsugami sliding headstock turning center, for example, Tsugami uses a series of parameters in the 9200 series to specify the program zero point for the A axis. (The A axis for this machine is like the Y axis for other live tooling lathes. It provides the ability to machine in a direction that is perpendicular to the XZ plane.) These parameters work exactly like geometry offsets. That is, they specify the distance from the A axis zero return position to the centerline of a live tool.

 To set these “offsets” by a programmed command, you must use the parameter entry function of G10. If you with to set live tool number one’s geometry offset to -2.1652 (from a program), these commands will do so.

G10 L50
N9201 R-2.1652
G11

Note that some parameters do not allow a decimal point for the R word, meaning you’ll have to use the fixed format if they does not:

G10 L50
N9201 R-21652 (Fixed format for -2.1652 inches)
G11I

M01Top of page

Safety First: Make all sizing adjustments with offsets

One of my cardinal rules is that all sizing adjustments should be done with offsets. However, I do – from time to time – see operators making sizing adjustments by changing programs.

I’m normally speaking from an efficiency standpoint; sizing adjustments with offsets can be done while the machine is in cycle. Modifying a program requires the machine to be stopped. But there can be a safety issue here too. Modifying programs requires more skill – and if mistakes are made – the results could be disastrous.

While mistakes can be made when modifying offsets, the danger is not nearly as great. Operators change offsets for the purpose of sizing on a very regular basis – and they get good at it. Applications for which operators elect to modify programs are pretty scarce. Possibly tool pressure is causing a turned diameter to be a given diameter at one end and another diameter at the other (taper is being induced). This is an application that can be easily handled with offsets that some operators elect to handle with program modifications. And again, since it isn’t something they do on a regular basis, some of your operators may not be very good at it. 

M01

Top of page

 
 
Sofware ad
 
Machining center training materials
 
Parametric programming ad

The Optional Stop newsletter is published quarterly by CNC Concepts, Inc. and is distributed free of charge to people subscribing to our (email) distribution list and to those downloading it from our website (www.cncci.com). Information is aimed at CNC users and instructors teaching live CNC classes. All techniques given in this newsletter are intended to help CNC people. However, CNC Concepts, Inc. can accept no responsibility for the use or misuse of the techniques given.

To subscribe: Simply email us (newsletter@cncci.com) and let us know you'd like to be added to our distribution list.

To unsubscribe: Respond to this email, typing REMOVE in the subject. Please accept our apologies if we have disturbed you.