Carbide Create Pro will allow writing out G-code (and with the basic Carbide Create one can upload a .c2d file which contains toolpaths into Carbide Motion and then extract the G-code to a file).
Carbide Motion takes G-code and sends it to the machine — there are “Quick Actions” which allow writing, storing, and sending G-code commands which are useful for some tasks.
In terms of working with G-code directly, the first consideration is, it’s a very simple programming language, and the firmware which Carbide 3D uses, Grbl, is quite memory constrained, so it is simplified down to just what a typical CAM program will output — which means no loops, no variable, no branching — writing G-code by hand for Grbl is an exercise in tedium.
There are a couple of programming tools to help with that, with one notable option being:
which is incorporated into bCNC I believe:
Written in Python, it has an old-school appearance and may appeal to folks who like that language.
I believe Universal G-code Sender also has a facility for macros for G-code or some sort of automation (for folks who like Java and that style of programming).
There are some editors/previewers, and one notable free option is:
which is a plug-in for Notepad++
and I’ve been working on a tool as referenced at:
What do you wish to do which you are having trouble doing using Carbide Create Pro and Carbide Motion?