{"id":13650844,"url":"https://github.com/svenhb/GRBL-Plotter","last_synced_at":"2025-04-22T18:33:28.570Z","repository":{"id":38325610,"uuid":"61285145","full_name":"svenhb/GRBL-Plotter","owner":"svenhb","description":"A GCode sender (not only for lasers or plotters) for up to two GRBL controller. SVG, DXF, HPGL import. 6 axis DRO. ","archived":false,"fork":false,"pushed_at":"2024-04-13T21:22:00.000Z","size":458419,"stargazers_count":612,"open_issues_count":17,"forks_count":170,"subscribers_count":70,"default_branch":"master","last_synced_at":"2024-04-14T12:03:48.256Z","etag":null,"topics":["cad","cam","cnc","dxf","gcode","gcode-generation","gcode-sender","grbl","grbl-plotter","hpgl","laser","laser-cutting","laser-engraver","marlin","pen-plotter","plotter","polar","svg","tangential-knife"],"latest_commit_sha":null,"homepage":"https://grbl-plotter.de/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/svenhb.png","metadata":{"files":{"readme":"README.md","changelog":"History.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-06-16T10:48:02.000Z","updated_at":"2024-08-18T20:00:23.182Z","dependencies_parsed_at":"2023-09-24T10:36:32.398Z","dependency_job_id":"0ae55b52-1da0-4d13-9ff3-8fd9475babab","html_url":"https://github.com/svenhb/GRBL-Plotter","commit_stats":null,"previous_names":[],"tags_count":116,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svenhb%2FGRBL-Plotter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svenhb%2FGRBL-Plotter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svenhb%2FGRBL-Plotter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svenhb%2FGRBL-Plotter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/svenhb","download_url":"https://codeload.github.com/svenhb/GRBL-Plotter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223903240,"owners_count":17222501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cad","cam","cnc","dxf","gcode","gcode-generation","gcode-sender","grbl","grbl-plotter","hpgl","laser","laser-cutting","laser-engraver","marlin","pen-plotter","plotter","polar","svg","tangential-knife"],"created_at":"2024-08-02T02:00:41.554Z","updated_at":"2025-04-22T18:33:28.559Z","avatar_url":"https://github.com/svenhb.png","language":"C#","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=PVBK8U866QNQ6"],"categories":["Software"],"sub_categories":["Plotter Control"],"readme":"# GRBL-Plotter\r\n\r\n[![GitHub release](https://img.shields.io/github/release/svenhb/GRBL-Plotter.svg)](https://GitHub.com/svenhb/GRBL-Plotter/releases/)\r\n[![GitHub latest commit](https://badgen.net/github/last-commit/svenhb/GRBL-Plotter)](https://GitHub.com/svenhb/GRBL-Plotter/commit/)\r\n[![Github all releases](https://img.shields.io/github/downloads/svenhb/GRBL-Plotter/total.svg)](https://GitHub.com/svenhb/GRBL-Plotter/releases/)  \r\n\r\n[README deutsch](README_de.md)  \r\n[README 简体中文](README_cn.md)  \r\nA GCode sender for GRBL under windows, using DotNET 4.0 (should also work with Windows XP)  \r\nWritten in C# VisualStudio 2022.  \r\nFor use under Linux check this description by metzger100: [GRBL-Plotter-Linux](https://github.com/svenhb/GRBL-Plotter/blob/master/doc/GRBL-Plotter-Linux.md)  \r\n\r\n  \r\nIf you like GRBL-Plotter, show it to me with a small donation :-) [![Donate](https://www.paypalobjects.com/en_US/DE/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=PVBK8U866QNQ6)   \r\n  \r\n### Check [History](https://github.com/svenhb/GRBL-Plotter/blob/master/History.md)  \r\n      \r\nCheck the [Wiki](https://github.com/svenhb/GRBL-Plotter/wiki) for further information   \r\n\r\n### Program is free and you can use it at your own risk,\u003cbr\u003eas you understand there is no warranty of any kind.\r\nZip folder contains application files as generated by VisualStudio: GRBL-Plotter/bin/release.\r\n#### [GRBL-Plotter Vers. 1.7.5.3](https://github.com/svenhb/GRBL-Plotter/releases/latest)  2025-04-12     \r\n\r\n### Requirements for compiling\r\n* VisualStudio 2022 \r\n* DotNET 4.0\r\n \r\n## Feature list:\r\n#### Import/Export:  \r\n* Several options to translate Pen Up/Down\r\n  - controlling a Z axis\r\n  - controlling a RC-Servo\r\n  - controlling a laser\r\n  - user defined commands\r\n  - Create GCode absolute or relative (for further use as subroutine)  \r\n* Ruler and import units can be switched between mm or inch\r\n* GCode import via file load, drag \u0026 drop or copy \u0026 paste\r\n  - Loading GCode with optional replacement of M3 / M4 commands (helpful for 'Laser Mode' $32=1) \r\n* SVG graphics import via file load, drag \u0026 drop (also URL) or copy \u0026 paste - tested with [Inkscape](https://inkscape.org/de/) generated SVGs \r\n  - optional resize to fixed size\r\n  - optional output of nodes only (generating drill holes for string art [Video 'String Art'](https://youtu.be/ymWi15rvTvM)  )\r\n  - optional sorting of paths by used color\r\n  - optional tool change\r\n  - if text needs to be imported, convert text into path first\r\n* DXF graphics import via file load, drag \u0026 drop (also URL) - tested with [LibreCAD](http://librecad.org/cms/home.html) generated DXFs \r\n  - few entities are missing\r\n* [Drag tool compensation](https://github.com/svenhb/GRBL-Plotter/wiki/Drag-tool-compensation)\r\n* HPGL graphics import via file load, drag \u0026 drop  \r\n* Drill file import via file load, drag \u0026 drop \r\n* Gerber file import (rough implementation) via file load, drag \u0026 drop \r\n* CSV file import via file load, drag \u0026 drop\r\n* Image import via file load or drag \u0026 drop\r\n* GCode can be edited and saved\r\n* Recent File List (Files and URLs)\r\n* Export / import machine specific settings (Joystick, Buttons)\r\n  \r\n#### GCode creation:\r\n* Create Text from hershey or windows system font\r\n  - own created 'Dot Matrix' font [Video 'Dot Matrix'](https://youtu.be/ip_qCQwoufw) \r\n* Create simple shapes \r\n* Create Barcode and QR-Code \r\n* Create GCode via tool extensions \r\n    \r\n#### Import options: \r\n* Process pen-width as Z-depth \r\n* Process circle radius as dot (optional with Z-depth) \r\n* Modify paths for drag knife\r\n* Add angle information for tangential axis \r\n* Add hatch fill to closed paths \r\n* Repeat closed path for a small distance (for laser cutter)\r\n* Group code by graphic-properties: layers, colors, pen-widths  \r\n* Tile the graphic \r\n \r\n#### GCode manipulation:  \r\n* Transformation of GCodes (scale, rotation, mirror, zero-Offset)  \r\nany A,B,C,U,V,W commands will stay in place.\r\n* Transformation via camera teaching\r\n* Axis Substitution for Rotary Axis\r\n* Radius compensation\r\n* Convert to polar coordinates (X=radius, Y=angle)\r\n\r\n  \r\n#### Machine control:  \r\n* Height map, auto leveling \r\n* Probing dialog \r\n* Individual commands via user defined Buttons  \r\n* Joystick like control in user interface  \r\n* support of no-name USB GamePad / Joystick   \r\n* Optional usage of a WebCam with separate coordinate system: graphics overlay of the current GCode, set zero point, measure angle, zoom, teaching  \r\n  - Shape recognition for easier teach-point (fiducial) assignment  \r\n  - Transforming GCode with camera aid, to match drill file with PCB view [Wiki 'PCB drilling'](https://github.com/svenhb/GRBL-Plotter/wiki/PCB-drilling)   \r\n  \r\n#### Flow control:\r\n* Supporting subroutines M98, M99 Sub-Program Call (P, L)\r\n* Internal variable to support probing, e.g.:\r\n  - G38.3 Z-50\t\t(probe toward tool length sensor, stop on contact - because of deceleration stop-pos. is not trigger-pos.)\r\n  - G43.1 Z@PRBZ\t(Offset Tool with value stored on trigger of sensor switch)\r\n  - examine SerialForm.cs for implementation  \r\n* Progress notification via email or pushbullet \r\n  \r\n#### GRBL:  \r\n* Automatic reconnect on program start  \r\n* Supporting GRBL 1.1 (and 0.9 also)\r\n* Check for 30 kHz max. step-pin frequency \r\n* Supporting new GRBL 1.1 features\r\n  - Jogging\r\n  - Feed rate override\r\n  - Spindle speed override\r\n  - real time display GRBL states (in COM CNC window)\r\n* Check limits of GRBL setup - max. STEP frequency and min. FEED rate in COM CNC window  \r\n* Controlling a 2nd GRBL-Hardware\r\n* Supports 4th axis (A, B, C, U, V or W). Status and control (special GRBL version needed)\r\n\r\n \r\n### My test bed\r\nOn my german homepage:\r\n[my XYZ platform](http://svenhb.bplaced.net/?CNC___Plotter) \r\n\r\n### GRBL-Plotter in tool change action\r\n[![Import an image](https://i9.ytimg.com/vi/GGtdwYdZWi8/mq2.jpg?sqp=COypi98F\u0026rs=AOn4CLAbkofKlCN1cepOQkGvpG6YlnRwrQ)](https://youtu.be/GGtdwYdZWi8) \r\n\r\n### Screenshots\r\nMain GUI\r\n![GRBL-Plotter GUI](doc/GRBLPlotter_GUI.png?raw=true \"Main GUI\") \r\n\r\nSeparate serial COM window(s) - one for the CNC, one for the tool changer (or 4th axis)  \r\n![GRBL-Plotter COM interface](doc/GRBLPlotter_COM2.png?raw=true \"Serial connection\") ![2nd GRBL control](doc/GRBLPlotter_Control_COM2.png?raw=true \"Serial connection\")\r\n\r\nSetup import / GCode conversion  \r\n![GRBL-Plotter Setup1.1](doc/screenshots/en_1325_setup_1_1.png?raw=true \"Setup1.1\") \r\nSetup import / GCode conversion  \r\n![GRBL-Plotter Setup1.2](doc/screenshots/en_1325_setup_1_2.png?raw=true \"Setup1.2\") \r\nSetup import / GCode conversion  \r\n![GRBL-Plotter Setup1.3](doc/screenshots/en_1325_setup_1_3.png?raw=true \"Setup1.3\") \r\nSetup import / GCode conversion  \r\n![GRBL-Plotter Setup1.4](doc/screenshots/en_1325_setup_1_4.png?raw=true \"Setup1.4\") \r\n   \r\nSetup main tool table  \r\n![GRBL-Plotter Setup2](doc/screenshots/en_1325_setup_2.png?raw=true \"Setup2\")  \r\n   \r\nSetup tool change configuration  \r\n![GRBL-Plotter Setup3](doc/screenshots/en_1325_setup_3.png?raw=true \"Setup3\")  \r\n \r\nSetup flow control configuration  \r\n![GRBL-Plotter Setup4](doc/screenshots/en_1325_setup_4.png?raw=true \"Setup4\")  \r\n  \r\nSetup program control configuration  \r\n![GRBL-Plotter Setup5](doc/screenshots/en_1325_setup_5.png?raw=true \"Setup5\")  \r\n\r\nSetup user defined buttons  \r\n![GRBL-Plotter Setup6](doc/screenshots/en_1325_setup_6.png?raw=true \"Setup6\")  \r\n  \r\nSetup GamePad  \r\n![GRBL-Plotter Setup7](doc/screenshots/en_1325_setup_7.png?raw=true \"Setup7\")  \r\n  \r\nSetup virtual Joystick  \r\n![GRBL-Plotter Setup8](doc/screenshots/en_1325_setup_8.png?raw=true \"Setup8\")  \r\n  \r\nSetup Hot-Keys     \r\n![GRBL-Plotter Setup9](doc/screenshots/en_1325_setup_9.png?raw=true \"Setup9\")  \r\n  \r\nSetup shape recogniton for fiducial camera     \r\n![GRBL-Plotter Setup10](doc/screenshots/en_1325_setup_10.png?raw=true \"Setup10\")  \r\n    \r\nText import  \r\n![GRBL-Plotter Text](doc/GRBLPlotter_Text.png?raw=true \"Text conversion\")  \r\n  \r\nPicture import  \r\n![GRBL-Plotter Image](doc/ImageImport/ImageImport1.png?raw=true \"Image import\")  \r\n  \r\nDifferent scaling options  \r\n![GRBL-Plotter Scaling](doc/GRBLPlotter_scaling.png?raw=true \"GCode scaling\")  \r\n\r\nFeed rate overrid for Version 0.9 and 1.1  \r\n![GRBL-Plotter Override](doc/GRBLPlotter_override.png?raw=true \"GCode override\") ![GRBL-Plotter Override](doc/GRBLPlotter_override2.png?raw=true \"GCode override\")\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvenhb%2FGRBL-Plotter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsvenhb%2FGRBL-Plotter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvenhb%2FGRBL-Plotter/lists"}