Giter Club home page Giter Club logo

gcode's Introduction

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;

gcode's People

Contributors

avmaisak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

gcode's Issues

SerializeTestSyntheticResearchIgnoreComments1

Assert.IsTrue failed.
Stack Trace:
at Gcode.TestSuite.GcodeParserTests.SerializeTestSyntheticResearchIgnoreComments1() in GcodeParserTests.cs:line 503

But single check test is working

slicer parser test problems

Test Duration Traits Error Message
KisSlicerParserTests Failed (4) 5 sec
KisSlicerParserTest1 Failed 194 ms Assert.IsTrue failed.
KisSlicerParserTest2 Failed 2 sec Assert.IsTrue failed.
KisSlicerParserTest3 Failed 2 sec Assert.IsTrue failed.
KisSlicerParserTest4 Failed 7 ms Assert.IsTrue failed.
Simplify3dInfoParserTests Failed (1) 154 ms
Simplify3dInfoParserTest1 Failed 154 ms Assert.IsTrue failed.
Slic3RParserTests Failed (1) 468 ms
Slic3RParserTest1 Failed 468 ms Assert.IsTrue failed.
SlicerParserDefaultTests Failed (1) 2 sec
SlicerCompareTest1 Failed 2 sec Assert.AreEqual failed. Expected:<9116675>. Actual:<91166.75>.

Mono .net 4.7.1 build failed

Mono JIT compiler version 5.4.1.7 (tarball Wed Jan 17 20:26:34 UTC 2018)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen (concurrent by default)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.