onmai-xyz
>I think of G-code as ASM.
>Eventually, something actuates a servo, and servos don’t understand iteration.
I think of it more as an intermediate language. Interpreted on the CNC control and JIT compiled to whatever the RT system needs for servo control.
>Do you agree eventually something with g-codes level of detail must exist (even if it’s just unspecified internal commands)?
It does exist and a strict subset with enough primitives to bootstrap an application VM should continue to exist.
>If so, do you agree you’re just advocating for that layer to be part of the machine?
I am advocating for a DSL one layer up to be part of the CNC machine with support offline in say the JVM.
I want to answer this question, “how do we deploy MBE?” https://www.nist.gov/news-events/events/2019/04/model-based-...
The answer needs to be a single digital file that can render real parts and virtual parts. Why not?
Asking, because I am trying to level up cnc programming to "normal" programming.
Let's do a web site programming analogy(weak but relatable), because JS is now a mature programming language with advanced interpreters. This was not the case back when JS was used to make text dance and a few other useful ad-hoc solutions.
-Early web days with just html is like plain g-code spit out from cam systems.
-Early javascript is like macro options available on industrial cnc[1][2][3].
-Mid years javascript is where cnc macro program is heading, isolated shops doing some awesome things but no industry wide adoption of a coherent system.
-Late years javascript is where cnc macro programming needs to be if we want proper revision control and all the other benefits that normal programmers have afforded themselves.
Which brings us to real digital twins(monozygotic, not the fraternal state of the art), a single source of truth digital file should manifest as both a real world part on the shop floor and a virtual object in the top floor to be used by all the departments.
To close the analogy, like nodejs affords developing on the backend and the frontend with the same language.
[1] http://parts.haascnc.com/haasparts/en/USD/Performance-Upgrad...
[2] https://www.fanucamerica.com/fanuc-america-product-support/f...
[3] https://www.cncci.com/resources/tips/w%20custom%20macro.htm
Certainly a chicken and egg problem though, my ideal future would have CAD files generated from single source of truth CNC files:)
Tool configuration is kinda-sorta solved with ISO 13399, this is being supported in more and more CAM systems and tool vendors, but as you say it is very easy to make a mistake.
Assuming the mistakes are happening when the tool data is reduced from the comprehensive format that ISO 13399 supports to the barebones and simple TxDxHx format that is loaded on CNC machine. Would be nice if machine tools supported a comprehensive format directly.
A fully implemented system would provide the CAM GUI engineer and the CNC CLI machinist to work on the same file, skipping post-processing entirely.
And, finally implement what was originally envisioned but not possible on even the most powerful mainframes of the late 50's: https://youtu.be/ob9NV8mmm20
$ rm file
$ echo $?
$ 0
Silent, unless you go looking. The return value of the last executed command is available as $?.I picked this up at http://www.rsync.net/resources/howto/remote_commands.html for running commands over ssh and not seeing the console output.