The web-site is now in readonly mode. Login and registration are disabled. (28 June 2019)

Seamus Mileys Design narrative - Introducing CNC machine programming to young engineers

Cloud created by:

James Miley
23 March 2014

Extra content

Title Introducing - CNC machine programming to young engineers


In 2011 I went to work at one of the new UTC (University Technical College) where learners opted out of their current school at the age of 14 in preference of a UTC based on a career in Engineering.  The learners at the age of 14 had little experience of actual engineering practice so initial training was to get them to use general engineering machines such as Lathes and Milling machines, but their interest was in the new technology that the college had purchased and was used to attract this type of learner.


My task after this initial period working with manual machines was to introduce the new technologies and to do this they needed to be able to program CNC (computer Numerical Control) machines using a unique programming language and to understand 3 dimensional movement of a CNC machine.

Due to the relatively high cost of a CNC machine the college only had 4 that the learners could use so teaching had to be designed to enable groups of up to 20 learners to be able to learn without actually using the machine individually.

Learners all wanted to use the machines and stand in front of them producing parts, but this was not possible due to the numbers and time constraints so I had to design the initial lessons to get the learners to understand how the machines worked, how the language worked and was constructed and how to use the machine safely, so that when they did get on the machine they were confident that the program written off line would work with little or no editing.


I needed to use some classroom activities and teaching to enable the learners to gain the knowledge that would allow them to operate the CNC Machines independently and to write programs that could be tested without having to be on the machine for long periods.



  • Introduce a limited number of Programming Codes.  I had issues with context of some of the codes that they would have to use such as Absolute and incremental settings that are essential for programming any CNC Machines.
  • Set the classroom up as though it was the inside of a CNC milling Machine.  This worked well in identifying X, Y , and Z axis in relation to a machine and it's parts.
  • Carryout a simulation using the learners as tools and the desks as parts to be machined.  I used this as a way of explaining how the machine works including what can go wrong if you do not program following correct procedures.
  • Videos of real machines in operation.  Putting it into context at this stage worked well and I could see a lot of learners linked the lesson with the real world of CNC machines.
  • Extend Programming Codes list to include more detailed operational codes.  To be able to program the machines in the workshop I had to introduce a further list of Codes that they would have to use.
  • Introduce a 2 Dimensional design (Space invader) for learners to program for a machine.  In the second lesson I gave the learners a chance to produce their own simple 2D design that they would make on the CNC machine linking the design to how the machine works and what is capable of was important at this stage.
  • Using programming sheets program (that followed simulator layout) follow simple outline learning X and Y co-ordinates.   The designs were put onto graph paper and from these the learners filled in sheets based on the simulator package following their design.
  • Introduce machine operation codes.   The final Codes are needed to setup the machine to follow the program switching on tools and other parts of the machine.  *** The amount of information the learners had to engage with did cause issues here so I did have to make a "crib" sheet as an extra resource following this activity
  • Add all codes to program on programming sheet.  This gave the learner a final complete program for their Space invader in 2D.
  • Introduce CNC simulator and get learners to type in their program and introduce Z axis.   To machine the Space Invader they need to understand 3 Axis movement, I introduced this in the simulation lesson but needs to be applied to their program at this stage.
  • Run simulator program to see what machine can produce.  The simulator does follow the program they enter graphically so they are able to see what happens at each stage and  learn from it.  it also allows them to complete a program that they can transfer to the real machine
  • The learners were then ready to run the actual machine , running the machine themselves to make their part, using limited supervision for safety only.  By this stage they should have the confidence that what they have produced will work, so pressing the start button does not scare them.   *** As  each learner started to work at a different pace it worked out that there was not a long queue at the machines this was a bonus that helped with the class leaving me time to stretch some of the better programmer and let them try to produce a different part.




The sessions worked well and using simulation of a CNC machine in the classroom did engage the learners and teach the learners the principles.  One thing I did do as part of the simulation was climb over a desk and knock over a small table to demonstrate what would happen if a program went wrong.   Speaking to the learners after, the one thing they remember was a middle aged teacher climbing over the top of their desk, but the principle of taking care when programming a tool path was embedded in most learners.

The plan allowed learners to work at their own pace so when we got to the programming of the actual machines there was not a backlog of learners waiting this was achieved more by accident than part of the plan.

The use of the software simulator does allow the learner to short cut the programming process but by using the full process the work completed by the learners was fully their own.   As a the next stage of the course was to use the simulator to program a more complex part, the underpinning knowledge of writing a program from scratch ensured that the learners were able to complete the work to a much better standard challenging the simplicity of the simulator and even correcting and modify a program generated by the simulator.




Using simulation in a classroom for engineering was something I had not used before as Engineering has more of a technical result that I felt was difficult to reproduce, but using the classroom as the inside of a Machine did work with the learners.   I used X+, X-, Y+, Y- Z+, and Z- printed on A4 Sheets of paper and following a demonstration of the CNC Machine got them to put them on the walls roof and floor with Blue-Tack discussions between learners as to where they should go encouraged them to question each other until they got the sheets in the right place which I was pleased with as it showed they understood the first stage of how CNC Machines worked.

The simulation using learners as tools and programmers worked better than I expected and arguments in class as to where the tool (learner) should go and what path he should follow showed both understanding and learning taking place.   My demonstration of what could go wrong and climbing over the desk created a total silence in the class, not what I expected, but once I explained the principle it made a very good point that was embedded.

Overall teaching a class of 14/15 year old school learners the principle of CNC programming up to a point where "they" confidently pressed the go button on a £16,000 machine in a 6 to 8 hour period was satisfying and proved that if the learners want to engage in exciting new technology you can teach them using tools that I have found can fall down badly when the learners are not interested.


James Miley
13:56 on 23 March 2014 (Edited 13:56 on 24 March 2014)

Embedded Content


Pam Large
8:06am 26 March 2014

Thanks for adding this - it would definately be a helpful starting point if I was planning something similar and is a good illustration of some of the constraints we need to get round to teach engineering effectively.

Contribute to the discussion

Please log in to post a comment. Register here if you haven't signed up yet.