Gcode.Common.Utils

Package Description


Keywords
csharp, gcode, 3d-printing, reprap, reprap-3d-printer, marlin, marlin-firmware, repitier, repitier-firmware, cura, gcode-json, json, json-parsing, kisslicer, simplify3d, slic3r
License
Apache-2.0
Install
Install-Package Gcode.Common.Utils -Version 0.1.65

Documentation

Gcode

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Gcode для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ .NET

G-ΠΊΠΎΠ΄ β€” условноС ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ языка программирования устройств с числовым ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ (ЧПУ).

ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±Ρ‹Π»Π° ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° Π² Ρ„Π΅Π²Ρ€Π°Π»Π΅ 1980 Π³ΠΎΠ΄Π° ΠΊΠ°ΠΊ стандарт RS274D.

ΠšΠΎΠΌΠΈΡ‚Π΅Ρ‚ ISO ΡƒΡ‚Π²Π΅Ρ€Π΄ΠΈΠ» G-ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ стандарт ISO 6983-1:2009, ГоскомитСт ΠΏΠΎ стандартам Π‘Π‘Π‘Π  β€” ΠΊΠ°ΠΊ Π“ΠžΠ‘Π’ 20999-83.

Π’ совСтской тСхничСской Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ G-ΠΊΠΎΠ΄ обозначаСтся ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ИБО 7-Π±ΠΈΡ‚ (ISO 7-bit).

G-ΠΊΠΎΠ΄ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π½Π° 8-Π΄ΠΎΡ€ΠΎΠΆΠ΅Ρ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Ρ„ΠΎΠ»Π΅Π½Ρ‚Ρƒ Π² ΠΊΠΎΠ΄Π΅ ISO 7-bit (Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для прСдставлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ УЧПУ Π² Π²ΠΈΠ΄Π΅ машинного ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠ΄Ρ‹ AEG ΠΈ PC8C), восьмая Π΄ΠΎΡ€ΠΎΠΆΠΊΠ° использовалась для контроля чётности.

Build status

Установка

Π§Π΅Ρ€Π΅Π· Nuget

Install-Package Gcode.Utils

ВозмоТности:

  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ сырого ΠΊΠ°Π΄Ρ€Π° Π² структурированный Ρ‚ΠΈΠΏ GcodeCommandFrame
  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° GcodeCommandFrame Π² строку для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π½Π° устройство
  • ВычислСниС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы
  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ JSON (RFC 7159)
  • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (Ρ‚ΠΈΠΏ слайсСра, вСрсия, рСдакция, врСмя ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ, ΠΎΠ±ΡŠΡ‘ΠΌ ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° для всСх экструдСров, ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ, Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€ ΠΏΡ€ΡƒΡ‚ΠΊΠ°) Π² зависимости ΠΎΡ‚ слайсСра (Cura, KisSlicer, Simplify3d, Slic3R, PrusaSlicer )

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ:

  • MS Windows
  • Linux

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования:

// ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² строку
var gcode = new GcodeCommandFrame {X = 1, Y = 1};
var gcodeStr = gcode.ToString();
// Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ прСобразования
>> 'X1 Y1'

// ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Ρ‚ΠΈΠΏ GcodeCommandFrame
const string rawString = "G1 X2.131 Y3.91 Z4.833 E0 F360";
var gcodeConverted = 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";
var res = 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";
var gcodeConverted = 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;