Describir: NC machine programming and software design