A few years ago I gave a tour of labs to one of the executives at MasterCam and when we talked about the system we’ve developed at WPI to help our students learn to use CNC Machine tools to make the parts they’ve desigened he accused me (in a good way) of having “automated education.”. This article published by SME talks a little bit about that.
There is a famous video on the internet of a professor accusing most of his class of cheating on an exam. I’ve watched the video and thought “If those students weren’t such “#%^&%$$%^&%$$ jerks” this would have never happened!
Then it happened to me, today. The following email was what I sent to the student who helped me figure it out.
Thanks for emailing. Although I haven’t calculated grades, since not all of the assignments are due yet, I have graded all of your assignments (except the extra credit) and I can tell you that you will get <<students grade>> in the class.
Your emails did prompt me to re-evaluate the syllabus, and the grading policies on all of the quizzes though. The syllabus clearly states that, the only reason that you are to use a second attempt on any assignment is if you inadvertently submitted the assignment when you meant to save it. In my experience this happens to at least two students on every assignment. The reason for the second attempt is so that those people don’t have to wait for someone to notice they asked for an new attempt and then reset the quiz for them.
Since I believed that everyone understood this rule, ( I’ve discussed it several times in lecture, and the first homework asked you if you had read the syllabus (everyone answered yes,)) I thought it was amazing that you would admit to cheating when asking for special consideration of your grade
So I did a statistical analysis of the entire class.
I found that 75% of the class used a 2nd attempt at least once, and that the average student used a 2nd attempt on over 50% of the quizzes!
When most of the class does something wrong I have to believe it is my fault , not theirs.
This evening, I’ve had in depth conversations with some of my colleagues and mentors, and come to the conclusion that the initial policy was flawed in several ways:
- It is almost impossible to enforce.
- It is possible to start a 2nd attempt when you thought you were just going back to look at the 1st (I have watched a student do it when they were asking me a question…)
- It assumes that quizzes and tests are not learning experiences.
- It does not allow people who want to improve to learn from their mistakes immediatly.
- And finally, it is almost impossible to enforce. (To enforce the rule, I have to assume that I know what you were thinking at the moment you clicked a button on your mouse… If I could do that I would be an internet billionaire!)
I am amending the syllabus for this class, so that no one can be penalized for using a 2nd attempt, and will update the quizzes to retain the highest grade from the two. For future classes I plan to allow more than two attempts and to use large question banks so that no two attempts are exactly the same…
Thank you very much for your feedback (even if it was inadvertent,) and I hope that I will see you in another class some day.
professor Torbjorn Bergstrom — firstname.lastname@example.org
Operations Manager–WPI Manufacturing Laboratories
Phone: 508 208 3024
Schedule a Meeting or a Phone Call
We are living in a society that provides us with instant gratification in so many ways that we have come to expect in in almost all of our interactions. On top of that, if you, as the customer, know anything about machining processes, you might guess that the cut time for your part will only be 10 or 20 minutes, or even 1 or 2 minutes. Knowing that, it can be frustrating to hear that it will take a week or three to get your parts back.
Sure most machine shops could turn that part around in a few hours if they had the tooling and stock material on hand (which they probably do.) They could do it if all they were doing that day was sitting around waiting for you to walk in.
Why does it take 3 weeks?
How long it takes to make your parts depends on number of factors that you probably haven’t considered to this point. Below is just a short list of things that might impact the time it takes to make your part(s):
- the quality of your design,
- the number of parts in the queue ahead of yours,
- the number of parts you need,
- whether or not the stock material on hand,
- the quality of your design,
- the complexity of your part(s) and the fixturing required to hold it (them,)
- whether or not the tooling for your project is on hand, and, also,
- the quality of your design.
The quality of your design
The quality of your design may be the most important factor in getting the parts you need when you need them. I can’t count the number of times I’ve finished making a part for someone and then they tell me they need to change the design and I try hard to ask good questions to make sure I’m making the part they need rather than the part they asked for.
A quality design doesn’t need to have solid models whe FEA analysis, it doesn’t even need to have dimensioned and toleranced drawings that conform to ANSI or ISO standards, it simply needs to have enough information to convey the design intent to the manufacturer with no ambiguity. If you do this any cranky old machinist can make you exactly what you ask for.
Depending on the complexity of what you are asking for with your design a sketch on the back of a bar napkin may be all that is needed, but I’ve found in most cases that I would like you to give me a dimensioned drawing with tolerances specified for all 2 dimensional parts and a drawing and a solid model for all 3 plus D parts.
This speeds up the process for creating the manufacturing plan for making your parts. It speeds up the process for designing and creating any specialized fixtures your part(s) might need and it absolutely makes it easier to create any CNC programs required.
First in First Out (FIFO)
Most machine shops process orders on a first come first served basis, and they need to have a week or two of work scheduled in advance (to avoid going out of business…) This means when you show up at 2:30 on a Friday afternoon they might not be able to start working on your parts for 2 weeks!
How many do you need?
Do you need 1, 10, or 10,000 parts? It makes a difference. Do you need them all at once or on some schedule. You need to give the machine shop as much information about this as you can at the beginning it will impact how they plan the production and the design of fixtures.
Young engineers in industry are commonly referred to as “Kids With CAD.” Because you can truly make that CAD software sing. With blends, fillets, flat bottomed holes, under cuts, deep grooves, flat bottomed tapped holes with threads to the bottom… the list goes on and on , and hey, sometimes you need those features to meet your design requirements. The thing is some of the more complex the features on your part are, the more features on your part, the more sides of your part with features, the more complex the set up will be and the longer it will take to make the part.
Tooling and Materials
If the machine shop you go to doesn’t have the tools or materials on hand to make you parts then they will need to be ordered. That process can take as little as a day and as long as two or three weeks depending on what is needed.
But I need the parts right now!
<< Watch this space>>
When you need your parts definitely has an impact on how long it takes to make them but only if the decision makers want to do you a favor. Your job at this point is to make them want to help if they can. Remember, if you need your parts As Soon As Possible, it is likely to be your fault, not the machinist’s. Remember that when you talk to them. It’s also good for you to know that ASAP can have any meaning between – all other work stops or is put on hold until your project is complete – and – we will work on your project as soon as we get to it.
My next post in this series will give you some tips and tricks for getting your parts quicker, when you really do need them ASAP.
Anyone who runs a machine shop has had the experience of interacting with customers who don’t know what they need. At DBT, I’ve had a $200,000 purchase order that was based on the wrong drawing, and at WPI we see it almost everyday.
As an educator I realize that in most cases it isn’t the customers fault, It’s my fault because I haven’t done a good enough job teaching them. These are slides for a presentation that I’ll be part of next week:
The presentation is for PhD students in Mechanical Engineering at WPI but I think the information has value for anyone who needs to get parts made. Over the next few days I’ll be posting my thoughts and ideas of these 5 important topics.
As of this writing the slides are still a work in progress. Please feel free to email or call if you have thoughts or ideas to help me help PhD students get the help they need from machine shops around the world.
In April of 2011 while driving to work I got a phone call from my department head. It was pretty uncommon and I was curious, and a little apprehensive when I answered. He asked me if I had heard what happened at Yale the night before. I said no, He explained. A student had been killed in an accident in one of their machine shops. After giving me the details as he knew them, he asked me how we could make sure that it never happened at WPI.
My initial response was defensive and I said “We have good policies,” but even as I thought it, before the words even cleared my lips, I knew that Yale had to have good policies too. The real question we needed to answer was how do we know that the students / staff / visitors will obey the policies. And, what can we do to ensure that they do.
We have thought alot about this question over the years and have updated policies and made a significant effort to understand how to influence people to make good decisions. Every year as we get close to important deadlines for graduation we see evidence of bad decision making by some people, and observe others to consistently make good decisions. Pareto’s Law and a corelary that I propose here may explain this phenomenon entirely and may in fact help save lives in the future.
Pareto with his peas has managed to change the thoughts and expectations of people throughout the world and through the centuries. I wonder if there has been a bestselling business book in the last 20 years that didn’t mention Pareto’s Principle or the 80/20 rule as many have come to know it.
Now, of course, we know that he didn’t create the principle, he observed the phenomenon and reported on it.
Over the last 30 years as an engineer, scientist, and now an educator I’ve observed a phenomenon that may well be a corollary to Pareto’s Principle. I’ve observed myself, my colleagues, and my students, and I’ve told many of you about this, already, as the idea formed in my mind over the years.
First we can all agree, I think, that when we take on a new project the farther away, in time, the deadline is, the less motivation we have to complete the project immediately. I think even whether we call it the 80/20 Rule or not, we know in our hearts that we will do 80% of the required work in 20% of the available time so there is no real need for that motivation in the beginning. I’m not talking about what we should do. I’m talking about what we tend to do. I’ve observed plenty of exceptions, usually resulting in outstanding work.
Now as the deadline gets closer day by day the rule still applies. Our motivation does creep up slowly but we still have plenty of time. eventually we reach what Malcolm Gladwell might call a tipping point in motivation and it begins to grow exponentially and we feel like the deadline is flying at us at supersonic speed. This is when we get our ass in gear and we really get to work.
We all know about potential energy. We talk about chemical potential energy everytime we count calories. And anyone who had Physics I can explain kinetic potential energy. I say we also have potential skills. These are skills that we still have time to acquire. I call this set of potential skills that we have our Apparent Skill or Apparent Skill Level. It’s a combination of the things we already know (the skills we have) and the things we still have time to learn before we need to use them to complete the project.
Let’s say our project is to drive from Boston to LA and we have 6 years to complete the project. We have the Apparent Skill to complete this task even if we are 11 years old and have never driven a car because we still have time to learn. If we have 6 months to complete the project we can still pull it off if we are old enough to get a license. With 6 weeks to pull off the project we could probably learn to drive in time, but we would need to dedicate a lot of time to doing it and the risk would go up. Inexperienced drivers are more likely to make mistakes, more likely to have accidents, more likely to get hurt, and more likely to die. At six days out if we still don’t know how to drive it would be a stupid decision for us to try to learn “along the way” even though it would be possible. At 6 years out our Apparent Skill was 100% of that needed. At 6 days out our Apparent Skill is zero for all intents and purposes.
Remember our Apparent Skill Level includes the things we know how to do (our current skills,) and the skills we can acquire (the things we can learn.) Since learning takes a finite amount of time, apparent skill falls off as the deadline approaches, unless we are proactively learning along the way.
If we plot apparent skill and motivation on the same time scale we see that the two lines cross at some point close to the deadline. I call this the point of desperation. Motivation has becomes desperation at this point and this is the time when we make bad decisions. It’s when we decide we can learn to drive on the way to LA. It’s the point where we decide to stay up all night to finish, when we know we need to be sharp and make good decisions in the morning. It’s the time we decide to work alone in the lab even though we know that is against the rules and unsafe.
In the past 30 years of observing this phenomenon I’ve made my share of bad decisions, and I’ve seen, and and seen the evidence of, so many more. I’ve also learned that it is possible to change the equation that defines apparent skill. It’s possible to maintain the apparent skill required to complete projects even as the deadlines are flying at you. It’s even possible to make good decisions after you have crossed the desperation point.
Making Good Decisions
The best way to avoid the desperation point of course is to never get there. To acquire the skills and complete the project before the deadline arrives. Acquiring the skills and taking action to complete the project early on will keep your Apparent Skill Level curve from declining.
But let’s face it, if we wait to the last minute to finish our projects, we probably will wait to learn too. When this is the case, consider the possibility of moving the deadline. People hardly ever die on the drop dead date for a project. Think up a good excuse and talk to the customer (the person who set the deadline.) Even better than a good excuse, tell them the truth, some thing like: “I screwed up, and didn’t realize how much time I would need to invest to complete this project so I waited too long to start, and now cannot complete it on time without sacrificing safety, and or, quality.” Own the mistake and ask them to cut you some slack.
If that doesn’t work, or if you are too afraid to talk to the customer, ask for some help. Even if you cannot meet the deadline maybe you know someone who can help. If you don’t know someone who can help, find them. If they won’t do it out of the goodness of their heart they might do it for cash, the promise of a returned favor, or possibly as sixpack.
And, if all else fails, accept the fact that your not gonna make it. Accept the fact that the deadline is going to wiz past with a zinging sound. Own up to it, and move on (with a little more experience.) There is no true value in the bad decisions you might make and there can be significant risk to yourself and others. It was just a few years ago that, Michele Dufault died while working on a project in one of her campus labs, I don’t know if she was rushing to meet a deadline or not, but she was working alone, in a lab, late at night, and these are the kind of things we do when we are rushing to complete deadlines. (http://www.nytimes.com/2011/04/14/nyregion/yale-student-dies-in-machine-shop-accident.html)
Please, please, please, if the deadline is tomorrow or if it’s six years away, stop and think for a second. If your at the edge of your knowledge, ask for help. If there’s not enough time to finish, ask for an extension. If you think you need to stay up all night to finish, then there is not enough time to finish safely…
Making good decisions usually only takes a short pause.
Only 3 possible motions…
There are really only three ways a standard CNC machine tool moves today: linear motion, arc motion, and what is called rapid motion. To understand these types of motion we should talk a little bit about how machines are made and how they are program. To do this we will first look at the construction of a 3 axis vertical machining center, or milling machine.
For this discussion we will start with the z-axis and the spindle since it is the rotation of the tool by the spindle that makes all of the cutting happen. A typical setup for vertical machining center is to have the tool mounted in a spindle which is aligned with the Z axis of the machine. This spindle is typically attached to a mechanism or “way” that allows vertical motion along the z-axis of the machine. Note that misalignment between the spindle and the z-axis way can lead to error in the finished part.
The typical z-axis drive will be a servo motor connected to a ball screw. Ball screws are really quite fascinating in how they work but for the purpose of this discussion you can imagine it simply like a nut on a bolt or screw. If you remove the threads from each end of the screw and mount the smooth parts in fixed bearing blocks with a nut in between them. The nut will move up and down along the screw as you turn it as long as you don’t allow the nut to rotate. If the spindle is then attached the nut you can turn the screw and make the spindle go up and down. To keep the nut with the spindle attached from rotating you need to attach it to something that is fixed rotationally simply welding it to the back of the machine won’t work. Instead it is attached to a bracket that is intended to slide along a guide rail. This guide rail is typically called the way. A typical axis might have two ways with a ball screw between them.
The x-axis is designed and constructed similarly to the z-axis and is installed orthogonally to the z-axis typically moving from right to left from the operator’s perspective. A y-axis can then be mounted orthogonally to the z and x-axes forming a right hand coordinate system.
Each axis is typically driven by a servo motor. Servo motor control systems, at a minimum, require feedback about position to operate. The typical method for getting this information is to attach a rotary encoder between the servo and the ball screw. This allows the controller to know “where” the spindle or x and y tables “are” at any given time as long as it hasn’t lost track of the encoder pulses which measure rotation of the motors. Because of this machine tools of this construction do not know where they are when they are turned on and will have some type of homing sequence that must be run before running any programs. The homing sequence will move each axis on at a time to the end of its travel where a switch is installed. They will drive the axis slowly across the switch noting the encoder position at the instant the switch makes contact and defining the “zero” or “home” position for this instance of operation.
As to programming: the typical machine tool today is programmed with a text based language that is sort of standardized, and goes by several names. I’ve heard NC-code, G-code, G&M-code, and simply code, or machine code. In this text I will try to stick to the terms “code,” and “g-code.” Several standard have been written over the years but as the technology has been developing so quickly the standards didn’t cover all situations individual machine tool makers wanted to address, so there are a core of “codes” common to most machines but when implementing common macros and canned cycles there can be great variation from one machine tool maker to another.
Why call it G-code or G&M-Code? The answer is simple most lines of code start with either the letter G or M followed by a string of numbers or letters that mean something to the machine tool controller. A typical command for example would be something like “G00 X1.4 Y3.5 Z4.0 F96.” This command tells the machine tool to move the axes as fast as possible (G00) to the Cartesian coordinates X=1.4 Y=3.5 Z=4.0 at the rate of 96 inches per minute (assuming the “English” system of units is being used.) Another common command might be “M03 S12000”. This tells the machine tool controller to start the spindle I the clockwise direction (M03) at 12,000 RPM (S12000). It is important to note that It doesn’t matter what the position of the machine tool axes are when the first command is received the machine tool moves as fast as it can from wherever it is to the programmed end position. Another thing to note is that the S12000 can be omitted if the last spindle command was to spin at 12,000 RPM as Spindle speed is a modal command and will stay in memory until it is changed.
Future posts will include a detailed discussion of Machine tool programming and G and M codes. The above paragraphs are enough information to continue the initial discussion on machine tool motion. As stated above there are only three ways a typical modern CNC tool can be told to move.
- G01 – linear motion
- G02 or G03 – arc motion (constant radius)
- G00 – rapid motion
Let’s look at each in turn
G01 pronounced “gee zero one”
The G01 command is given when the programmer wants the tool to move in a straight line relative to the workpiece at a specified feed rate. This command is typically used when cutting is happen or imminent. The feed rate can be specified on the G01 line or previously in the program as feed like speed is a modal command. No starting point is specified. The machine tool commands the servo motors to move from the current position to the end point specified at the feed rate specified accelerating from the current location and decelerating to stop at the end point.
If motion in only one plane or along one line is desired it is possible to omit endpoint coordinates for the axis or axes that will not need to move. For example if the tool is at X=0.1, Y=3.0, Z=0.01 when the G01 command is given and the desired end point for the move is X=0.1, Y=7.0, Z=0.01, the command G01 Y7.0 is equivalent to the command G01 X0.1 Y7.0 Z0.01 and preferable as it is easy for someone looking at the program to recognize that only motion in the Y direction is called for at this point in the program.
G02 pronounced “gee zero two”
G02 like G01 is typically used when the programmer intends for the tool to be in contact with the workpiece, i.e. when cutting is happening, or when the tool is entering or exiting the workpiece material these entry and exit moves are typically called lead in and lead out or entry and exit respectively. G02 commands the machine to move from its current location to a specified endpoint like G01, but instead of interpolating a straight line the servo motor controllers are commanded to interpolate a constant radius arc motion. To this end the programmer must specify the desired end point of the motion, and a radius to define the arc. There are a couple of common ways to define the radius those will be discussed in future posts on programming. The command “G02 X1. Y1. R1.” tells the controller to move the tool from where ever it is to the point X=1.0 Y=1.0 Z= (whatever it is at the start) along an arc with a 1 inch radius (again assuming the English system of units.)
It is important to note that if the straight-line distance from the current position to the commanded end point is less than 2 times the radius the command will fail generating an error code on the machine controller.
It is possible to make arcs in the x/y plane, the x/z plane, or the y/z plane but you need to tell the machine controller which plane you want to arc in. There will be more discussion on this in posts on programming.
G03 pronounced “gee zero three”
G03 acts just like G02 except the arc is counter clockwise.
G00 pronounced “gee zero zero”
The G00 command is typically used for positioning the tool and is not usually used when the tool is intended to be in contact with the workpiece. It is used for moves to and from the tool change location and moves or “links” from the end of one cutting operation to the start of another.
G00 motion is called rapid motion and it’s goal is typically to waste as little time as possible performing non value-added motion. For setup operations and proving out (testing) programs most machine tools will have a rapid override command that allows the operator to decrease the full speed rapid to some percentage of the machines full speed capability. Operators should know something about the machine when selecting rapid overrides; I regularly use machines that move at about 600 inches per minute at full speed rapid, and another that moves at 2000 inches per minute. Twenty five percent rapid 2000 in/min machine is almost equal to full speed rapid on a 600 in/min machine.
The other thing operators and programmers should be aware of is the fact that many engineers are lazy and the easiest way to implement rapid motion in the machine controller does not allow the tool to move in a straight line from the current point to the programmed end point. The path the tool will take is predictable, but not a straight line! (By “easiest” I mean the way that requires the least math and thus the least processing resources)
The easiest way to implement rapid motion is to command each axis independently, but simultaneously. For the command “G00 X10.0 Y4.0 Z-3.5” the controller looks at the end point for x and compares it with the current x position if they are not the same it starts the x-axis motor spinning at full speed in the correct direction continually checking if it has reached the correct value. When the current position equals the desired end position the x-axis motor is stopped. At the same time the controller is moving the y and z axis servo motors checking their current positions and the commanded end positions stopping each servo when its axis has reached the commanded position.
Many of the most modern controllers have options that will disable dogleg rapid but it is best for programmers and operators to know that the machine they are using today probably moves this way.
I went to school with a lot of people that were good at math. Walking home to my apartment one afternoon of my senior year I noticed a for sale sign in front of a house. It was a three family house like almost all of the others in the neighborhood. Very similar, in fact, to the one I was renting an apartment in at that time. When I got home I called the number on the sign just to see how much a house like that cost.
Being good at math myself it was easy to understand that rent from one of the apartments was probably enough to pay the mortgage, leaving one to live in and another to live off. I didn’t buy that house but it wasn’t long before I was on the path to becoming a slum lord in a college neighborhood. Early in my real estate career I didn’t have a lot of disposable income and spent a lot of time shopping in discount stores following the save a buck style of accounting popular with slumlords and accounting departments at companies around the world. A box of six light bulbs for a buck, you bet that was in my cart.
After 15 years and at least 100 tenants I’ve divested myself of all of my residential rental properties and would never consider buying a cheap light bulb again. Why you ask. What’s the cost of changing that cheap light bulb? I can tell you from experience it’s a lot more that the $0.17 I paid for it at the discount store.
The cost of changing a light bulb is the cost of the interruption of dinner with friends and family when you get a phone call from an angry tenant who cannot see to put their key in the lock. They are especially angry because the light has been out for weeks and you haven’t done anything about it. There is no point reminding them that you don’t go visit them every evening and if they don’t tell you they light is out you don’t know.
This interruption that ruins your mental peace is not the only cost though. There is additional cost. There is the cost of the trip to your barn to get a ladder and put it in your truck. There is the cost of the cost of going to the home improvement store to get light bulbs because you can never find the ones you got at the discount store. There is the cost of leaning the ladder against the railing of the stairs to reach the offending non-functioning bulb. And of course, there is the cost of sweeping up the glass from the bulb you dropped from the top of the unstable ladder. Not to mention the cost of putting the ladder away and figuring out where you put the original discount bulbs so you can put away the ones that are left over from this job.
At the peak of my rental management business it was really a sideline business for me as I was spending most of my time traveling and consulting for companies like General Motors and Goodyear not to mention the federal court system. For the type of work I was doing I could bill upwards of $2000 per day. Even if you divide the day into 24 hours that’s still almost $85 per hour ($250 per hour if you manage to work only 8 hours.)
Depending on how you do the math it cost me between $170 and $500 to change a lightbulb during those years. The only comparison shopping I do when looking at light bulbs is to find the ones that last the longest.
A couple of years ago I attended a graduation party for one of the most amazing students I’ve ever had the privilege to work with. He was wearing a t-shirt that said:
“College – the best 7 years of my life!”
I kidded him about it because I knew that he had not finished in the typical(?) four years and he admitted that it had indeed been seven. Not only that someone gave him the shirt his freshman year.
It made me think back to the end of August 1994 when I was about to begin my 6th year enrolled as an undergraduate engineering student.
I had plenty of excuses and rationalizations for the fact that I wasn’t done but none of them mattered what mattered was that I had no intention of asking my parents for money to pay for this year – a year that should not be – and that I had used up all of the money I made during year four to pay for year five. (I took year four “off” and worked full time.)
With almost no cash and a full course load for two more semesters staring me in the face I signed up for the payment plan offered at the bursar’s office and got a full time job driving a forklift in a warehouse attached to a plastic injection molding company. This was my first experience working directly for a manufacturing company and it was an eye opening experience.
It was also a tiring experience you see I was still taking a full course load and was working second shift five days a week plus taking all the weekend overtime they would give me. Amazingly enough I did not fail all of the classes I took that semester, but I failed enough of them to know that I needed a better plan for the spring.
I still use some of the credit cards I applied for that winter and finished the spring semester passing 12 classes with all As and Bs and almost $35,000 in credit card debit that I was very adept at moving from card to card in rotation.
In one sense, looking back, I can see that I manufactured both my failure that first semester and my success the second. During the first semester I misused my resources my time and my focus. One of the only classes I passed that semester was a class I now teach at that same university and I often wonder if the C that I got was actually a gift from the instructor.
In the spring of 1995 on the other hand success was my only acceptable result and I was able to focus on the things required to pass my classes and manufacture my success.