-
Notifications
You must be signed in to change notification settings - Fork 296
g2dialect
Alden Hart edited this page Mar 18, 2017
·
8 revisions
Gcode used for 3D printing and other non-machining applications has gotten messy. Not only is this a problem for portability, compatibility and domain knowledge, but it hinders the multi-modal machines that are starting to emerge.
We want to use Gcode in a way that is as standard as possible but still supports the following:
- All the functions needed by 3d printing, including different processes, materials, multi-head...
- Mixed machines with different types of tools; spindles, cutters, lasers, vacuums, etc...
- Extensibility for specialized applications that does not intrude into the Gcode definitions
More Goals
- Ability to support 3dp functions/extensions that reprap has added over the years
- Provide a more object oriented and managable view of machining resources
Ultimate Goal
- Machine-independent Gcode: be able to print a file on any machine w/o prior knowledge by the slicer, in other words, machine-independent, material-independent slicing. This is what Postscript does for 2d printing. Any postscript file can run on any printer.
- The g2 dialect uses "standard" Gcode, with minimal extensions for 3dp and other applications. "Standard" gcode is determined by examining multiple industry sources and adopting the rough consensus for G and M commands. See Consensus Gcode.
- Use Gcode simply as a way to describe the job, not machine setup, configuration, job overrides and other functions. See g2dialect Operating Model.
- Use JSON for non-job functions. Provide job extensibility by embedding JSON into Gcode in a way that does not break existing parsers and conventions. See JSON Active Comments
- Re-cast the Reprap Gcode and Mcodes using the above. See g2dialect 3D Printing Codes
Getting Started Pages
- Home
- What is g2core?
- Who uses g2core?
- Jerk-Controlled Motion
- Getting Started with g2core
- Connecting to g2core
- Configuring g2core
- Flashing g2core
- Troubleshooting
Reference Pages
- Gcodes
- Mcodes
- Text Mode
- JSON Communications
- GPIO Digital IO
- Alarms & Exceptions
- Power Management
- Coordinate Systems
- Status Reports
- Status Codes
- G2 Communications
- Tool Offsets and Selection
- Probing
- Feedhold, Resume, Job Kill
- Marlin Compatibility
- 9 Axis UVW Operation
- gQuintic Specs
Discussion Topics
- Roadmap
- GPIO for 1.X Releases
- Toolheads
- Raster Streaming Prototol
- g2core REST Interface
- Gcode Parsing
- G2 3DP Dialect
- Consensus Gcode
- Digital DRO
- Overview of Motion Processing
Developer Pages
- Development & Contribution
- Branching and Release - DRAFT
- Getting Started with g2core Development
- Project Structure & Motate
- Compiling G2
- OSX w/Xcode
- OSX/Linux Command Line
- Windows10 w/AtmelStudio7
- Debugging G2 on OSX
- Board and Machine Profiles
- Arduino Due Pinout
- Arduino DUE External Interfaces
- Diagnostics
- Debugging w/Motate Pins
- Development Troubleshooting
- g2core Communications
- Git Procedures
- Windows 10 / VMware 8 Issues
- Dual Endpoint USB Internals
- G2core License
- VSCode Setup
- Compatibility Axioms
- Wiki History