Subproject: Pawn

To begin with the pawn, I've started the same as the Knight. I used blender to create a basic shape, and then refined the look and feel:

Now the interesting part. I need to make sixteen of these exactly the same. My skill at a manual lathe is not that great. I could probably create one, but duplicating that effort would be an exercise in frustration. So I've decided to convert my old manual hobby lathe into a CNC (Computer Numeric Controlled) lathe. This way I take the design from the computer and have it turn the pieces out on the lathe.   Is it cheating? Well, maybe. But I'm all about technology and having tech do the work for me. So off to convert the lathe....

The focus of this article is not the CNC lathe itself, It's almost a subproject in itself. I felt it was important to note some of the major steps in doing this conversion because it plays a huge part in the creation of the other chess pieces. This was successful due to the knowledge gained from This first thing I had to do is remove the manual cranks from both the carriage and cross-feed and replace them with stepper motors. That was a daunting task as I had to use the machine to actually make the parts.  I've designed, cast. and machined the motor mounts for the lathe and have them mounted. Next is to hook up the electronics and the power supply and connect it to the same computer that operates the CNC Router that I used in the Knight project.


I tried QCad and was quite disappointed with the outcome thus far. My lack of experience with QCad was a bit frustrating. I've tried all sorts of DXF to GCode converters, Tried running some of the crippleware Windows CAD/CAM apps from the intertubes but was met with failure.

I've done a fair share of modelling with Blender so I tried going back to what I know with that. I created a simple profile of a chess piece for testing:

Now I just need to somehow generate GCode with that. The nice thing about Blender is that is had a terrific python API. I wrote a Blender -> Lathe GCode script and was able to process my profile's X and Z coordinates and write function calls to create tool paths.

My script is here:

It's crude but it nicely generated tool paths for progressive turning on the lathe, plus detecting concave pockets within the profile. So with this in hand I was able to create the part on a lathe that I had converted to CNC above.

Here is the YouTube video of creating of the pawn mentioned above:

If anyone finds this useful feel free to use my script. If you see improvements that could be made by all means send me feedback and if you can improve the python script let me know and I will update my copy.
Now that the lathe conversion is complete I can test out the pawn creation. Using LinuxCNC (formerly EMC2), You can see that the machine is working as expected:

The Lathe cuts progressively layers at a time: When the bulk is removed the final shape starts to show through. Then the machine will make a couple final passes along the profile to smooth out the shape.

The final passes are complete and you can see the finished piece to scale. There are a few tweaks I want to make to the design plus it was good practice calibrating the CNC configuration for the lathe.


Hi, neat project. Very impressive. I was wondering if I could try out your GCODE file to make my own pawn on a CNC lathe.

By mike (not verified)

There's a link to the script I use. But are you asking to try my actual output file?

By dave

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Enter the characters shown in the image.