G-код — условное именование языка программирования устройств с числовым программным управлением (ЧПУ).
Окончательная доработка была одобрена в феврале 1980 года как стандарт RS274D.
Комитет ISO утвердил G-код как стандарт ISO 6983-1:2009, Госкомитет по стандартам СССР — как ГОСТ 20999-83.
В советской технической литературе G-код обозначается как код ИСО 7-бит (ISO 7-bit).
G-код кодировали на 8-дорожечную перфоленту в коде ISO 7-bit (разработан для представления информации УЧПУ в виде машинного кода так же, как и коды AEG и PC8C), восьмая дорожка использовалась для контроля чётности.
Через Nuget
Install-Package Gcode.Utils
- Преобразование сырого кадра в структурированный тип GcodeCommandFrame
- Преобразование типа GcodeCommandFrame в строку для последующей отправки на устройство
- Вычисление контрольной суммы
- Преобразование в формат JSON (RFC 7159)
- Обработка и получение информации (тип слайсера, версия, редакция, время печати, объём потраченного материала для всех экструдеров, стоимость печати, диаметр прутка) в зависимости от слайсера (Cura, KisSlicer, Simplify3d, Slic3R, PrusaSlicer )
- MS Windows
- Linux
// преобразование в строкуvargcode=newGcodeCommandFrame{X=1,Y=1};vargcodeStr=gcode.ToString();// результат преобразования>>'X1 Y1'// преобразование в тип GcodeCommandFrame
const string rawString ="G1 X2.131 Y3.91 Z4.833 E0 F360";vargcodeConverted=rawString.ToGcodeCommandFrame();>>gcodeConverted.X=2.131>>gcodeConverted.Y=3.91>>gcodeConverted.Z=4.833>>gcodeConverted.E=0>>gcodeConverted.F=360// преобразование в JSON
const string rawString ="G1 X626.713 Y251.523 E12.01248; Comment";varres= rawString.GcodeToJson();>>{"G":"1","X":"626.713","Y":"251.523","E":"12.01248","Comment":"Comment"}// контрольная сумма
const string rawString ="M206 T3 P200 X89 ;extruder normal steps per mm";vargcodeConverted= rawString.ToGcodeCommandFrame();// установка номера строкиg.N =1;// получить контрольную суммуvar crc = GcodeCrc.FrameCrc(g);// Получить информацию о слайсереstring[] src = "fileContentsArray";// Slic3R Parser
var parser =new Slic3RParser();
var res = parser.GetSlicerInfo(src);
var volume=res.FilamentUsedExtruder1Volume;var filamentDiameter =res.FilamentDiameter;var filamentUsed =res.FilamentUsedExtruder1;