A standalone, offline-first G‑Code editor and annotator for CNC programmers.
GCodeMaker is a cross‑platform desktop application built with Python and PyQt5. It provides:
- Syntax Highlighting for G‑Code commands, coordinates, and parameters.
- Side‑by‑Side Annotation Pane that decodes each line of G‑Code into human‑readable descriptions.
- Dictionary/Macros Widget for quickly inserting code snippets and reusable G‑Code macros.
- Profile Support to manage different machine configurations (annotations & dictionaries per profile).
- Offline‑First Design – no internet connection required, ideal for secure or air‑gapped environments.
- Rich G‑Code Highlighter: Colors for G, M, T, F, S, X/Y/Z, I/J/K, R/Q/N, C (chamfer), P (dwell) tokens.
- Annotation Engine: Parses each token against a profile‑specific annotations JSON to provide real‑time explanations.
- Dictionary Widget: Search, add, edit, and double‑click to insert predefined code snippets (e.g., tool changes, canned cycles).
- Profile Management: Create, rename, or delete machine profiles, each with independent annotation and dictionary sets.
- Keyboard Shortcuts: Standard Ctrl+S to save, context menus for dictionary entries.
- Styling via QSS: UI theming supported through
style.qss– tweak colors, padding, and fonts without touching code.
- Python 3.7+
- PyQt5
-
Clone the repository
git clone https://github.com/yourusername/GCodeMaker.git cd GCodeMaker -
Run the application
python main.py
The app will automatically create a
profiles/folder on first run with a default profile, but it's generally a good idea to make sure you have the JSON files in there otherwise the annotation pane will say "Unrecognized Command" for everything and the dictionary widget will be blank.
-
Editor Pane (left): Write or load a
.gcode/.ncfile. -
Annotation Pane (center): View parsed explanations of each G‑Code line.
-
Dictionary Pane (right): Switch profiles, search or add new macros, double‑click to insert.
-
Profile Combo‑Box (toolbar): Switch between machine profiles. Profiles control which annotation and dictionary files are loaded (
profiles/<name>-annotations.json,profiles/<name>-dictionary.json). -
Toolbar Buttons:
- New: Clear the editor
- Open: Load existing G‑Code file
- Save / Save As: Write
.gcodefile to disk
- Annotations & Dictionary files live in the
profiles/directory. - QSS Stylesheet (
style.qss) controls widget colors, borders, and typography. - Icons: The window icon is
green_g_icon.png(replace to rebrand).
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-new-feature) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature/my-new-feature) - Open a Pull Request
Please follow the existing code style and include tests where applicable.
This project is licensed under the MIT License. See the LICENSE file for details.
Built by Micah.