{"id":17912723,"url":"https://github.com/stypox/plotter","last_synced_at":"2025-03-23T22:34:56.376Z","repository":{"id":128744415,"uuid":"230750800","full_name":"Stypox/plotter","owner":"Stypox","description":"All the needed software to print images, text or gcode files on a plotter (a pen that moves along two xy axes)","archived":false,"fork":false,"pushed_at":"2022-10-08T15:01:17.000Z","size":75,"stargazers_count":13,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-19T00:06:46.799Z","etag":null,"topics":["2d-plotter","arduino","gcode","gcode-generation","plotter","printer"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Stypox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2019-12-29T13:00:26.000Z","updated_at":"2025-02-21T15:52:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4fd39ae-8583-4d6b-949b-1f03f77fe720","html_url":"https://github.com/Stypox/plotter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stypox%2Fplotter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stypox%2Fplotter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stypox%2Fplotter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stypox%2Fplotter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Stypox","download_url":"https://codeload.github.com/Stypox/plotter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245180386,"owners_count":20573663,"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":["2d-plotter","arduino","gcode","gcode-generation","plotter","printer"],"created_at":"2024-10-28T19:46:43.285Z","updated_at":"2025-03-23T22:34:56.366Z","avatar_url":"https://github.com/Stypox.png","language":"Python","readme":"# Plotter software\n\nThis repository contains all of the code needed to run a **plotter** and have it print **G-code, text or images**. In particular:\n- the `plotter/` subdirectory contains the Arduino sketch\n- the `gcode_parser.py` script is able to read G-code, normalize it (so that the printed composition fits on a 2D rectangle of a specified size) and convert it to a shorter binary file\n- the `sender.py` script takes the binary file generated by `gcode_parser.py` and sends it to a plotter connected to the computer via a serial port\n- the `print.py` script wraps all of the things you may need into a single command\n- [text-to-gcode](https://github.com/Stypox/text-to-gcode/) is used to convert some ASCII text to G-code\n- [image-to-gcode](https://github.com/Stypox/image-to-gcode/) is used to convert an image to G-code, also with automatic edge detection\n\n# Usage\nYou can run any script normally with [Python 3](https://www.python.org/downloads/). E.g. for `print.py`:\n```\npython3 print.py ARGUMENTS...\n```\nThis is the help screen with all valid arguments for `print.py` (obtainable with `python3 print.py --help`):\n```\nusage: print.py [-h] [-o FILE] [-b FILE] [-l FILE] [--end-home] [-s XxY] [-d FACTOR] [--simulate] [--port PORT] [--baud RATE] {binary,gcode,text} ...\n\nPrint something with the connected plotter\n\noptional arguments:\n  -h, --help            show this help message and exit\n\nsubcommands:\n  Format subcommands\n\n  {binary,gcode,text}\n    binary              Send binary files directly to the plotter\n    gcode               Print gcode with the plotter\n    text                Print text with the plotter\n\nOutput options:\n  -o FILE, --output FILE\n                        File in which to save the generated gcode (will be ignored if using binary subcommand)\n  -b FILE, --binary-output FILE\n                        File in which to save the binary data ready to be fed to the plotter\n  -l FILE, --log FILE   File in which to save logs, comments and warnings\n\nGcode generation options:\n  --end-home            Add a trailing instruction to move to (0,0) instead of just taking the pen up\n  -s XxY, --size XxY    The size of the print area in millimeters (e.g. 192.7x210.3)\n  -d FACTOR, --dilation FACTOR\n                        Dilation factor to apply (useful to convert mm to steps)\n\nPlotter connectivity options:\n  --simulate            Simulate sending data to the plotter without really opening a connection. Useful with logging enabled to debug the commands sent.\n  --port PORT, --serial-port PORT\n                        The serial port the plotter is connected to (required unless there is --simulate)\n  --baud RATE, --baud-rate RATE\n                        The baud rate to use for the connection with the plotter. It has to be equal to the plotter baud rate. (required unless there is --simulate)\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstypox%2Fplotter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstypox%2Fplotter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstypox%2Fplotter/lists"}