After writing a macro to build a fretboard model in CAD earlier this year I then tried to find a tool chain to actually carve it on a CNC. Free 3D tool chains for Linux are hard to come by and I never did find a satisfactory solution. So instead I changed gears (no pun intended) and wrote a script to generate the required G-code directly.
This time I took a different approach and asked for the nut and bridge string spacing as well as the desired nut and fretboard-end width. This allows the script to always build ruled surface fretboards, meaning the fretboard will always be a straight line along all the string paths.
It can handle both single and compound radius boards, though adding compound did add significant math complexity that made my brain hurt. For single radius boards it will effectively flatten the radius in the middle of the board when making straight string paths. It will also calculate and tell you the fretboard-end radius for a given nut radius and string spacing that will result in an equal fretboard edge thickness all the way down the board.
Screenshot of the tool path and some of the G-code for anyone curious. The highlighted G-code are the blue lines on the toolpath:
That one is the code for my pickup mule neck, basically a J-bass with 7.25" nut radius and 20" radius at the end of the board.
This is just plain python but I may build a plugin for bCNC given that is my preferred G-code streamer and all around cool tool.
So now I need to finish my CNC modifications so I can try it out. All the required parts should arrive by the end of they year -- and then I just have to actually build it. Hah!
UPDATE: The script has now been improved to also do twisted fretboards, plus perimeter engraving. See post #79 for the latest version of the script.
This time I took a different approach and asked for the nut and bridge string spacing as well as the desired nut and fretboard-end width. This allows the script to always build ruled surface fretboards, meaning the fretboard will always be a straight line along all the string paths.
It can handle both single and compound radius boards, though adding compound did add significant math complexity that made my brain hurt. For single radius boards it will effectively flatten the radius in the middle of the board when making straight string paths. It will also calculate and tell you the fretboard-end radius for a given nut radius and string spacing that will result in an equal fretboard edge thickness all the way down the board.
Screenshot of the tool path and some of the G-code for anyone curious. The highlighted G-code are the blue lines on the toolpath:
That one is the code for my pickup mule neck, basically a J-bass with 7.25" nut radius and 20" radius at the end of the board.
This is just plain python but I may build a plugin for bCNC given that is my preferred G-code streamer and all around cool tool.
So now I need to finish my CNC modifications so I can try it out. All the required parts should arrive by the end of they year -- and then I just have to actually build it. Hah!
UPDATE: The script has now been improved to also do twisted fretboards, plus perimeter engraving. See post #79 for the latest version of the script.
Last edited: