The personal fabricator is a tool that does CNCing, 3D Printing, Laser cutting etc. This is the future that is envisioned in the book by Neil Gershenfeld: Fab, The coming revolution on your desktop - from personal computers to personal fabrication. Seeing as I am attempting to make a “personal fabricator” I have come to realize the limitations of using g-code in this machine (and g-code in general). Here are my points:
G-Code is not mass customizable: One of the big selling points of 3D Printing is mass customization. If the print is of a shoe, the end user must put in their parameters to get the right size. This would require a CAD program + STL Slicer to get the new g-code to create the shoe. Apart from the cost, there is the learning curve, just so that the person can enter Size 14, Wide.
G-Code has no verification logic: When you’re machining something for the first time, you have to measure it afterwards to ensure that it came out correctly. Since mass customization implies that every build of an item can potentially be unique, this means that it has to be measured to confirm that it was built properly. G-Code doesn’t appear to have native support for that.
G-Code is 50 years old: G-Code is awesome if you have to produce 50K of some on various machines and the process is standardized. For this reason it is a classic technology. Once personal fabricators are mainstream it will become old technology, replaced by whatever fancy new language that was developed for PFs.
G-Code has no logic: G-Code is not even a programing language so there is no support for instructions that need to be calculated. Take for example: If you have a 3D Printer with a 0.35 mm nozzle today and you upgrade to a 0.26mm nozzle tomorrow; technically you will have to rework all your G-Code files to obtain the higher resolution. As opposed to desktop printing where the image will just come out in the higher resolution. There is no thinking by the user that perhaps I have to redo my images to support a higher resolution.
These concerns arise from the fact that I need to implement a solution that can “interpret G-Code” and take the aforementioned problems into consideration.
So the question is: Is there a better language than G-Code that will satisfy most of those concerns?