Hi,
I've been reading and thinking about this thread; I'd like to offer up 
my 2 cents worth -

I have interest in making LCNC as easy to adopt and use as possible.
This interest has lead me to I've spend a fair amount of time thinking 
about what aspects of LCNC assist or hinder LCNC adoption.

Gcode syntax and semantics (S&S) is an aspect of a CNC system that falls 
into the "External interface" category. The S&S are important as this is 
a primary CNC control interface used by other entities. In particular,  
GCode is a primary interface between LCNC and the rest of a CNC 
machining "ecosystem".

There are significant advantages to be gained from going with an 
existing, established, market dominate standard. Doing so for gcode S&S 
makes an adoption decision for LCNC easier, as it leverages things in 
the rest of the CNC ecosystem.  For example: if LCNC implements Fanuc 
gcode S&S, then existing CAM program output is instantly compatible with 
LCNC (no special LCNC specific post processor is required).

I assert that taking a larger system view (more than just a LCNC 
internal viewpoint) of the adoption costs for LCNC, and striving to 
lower the overall "LCNC cost of ownership" is good for LCNC adoption.

As such, I think it would help LCNC's adoption if the dialect of Gcode 
that LCNC implements is as close as possible to an existing gcode standard.
Here the word "standard" is a tad fuzzy, but not so fuzzy as to be a 
significant problem for this discussion.
In this case, the obvious (defacto) "standard" here is the Fanuc 
implementation of Gcode. (Yes, I realize that there are (relatively 
small) variations in gcode S&S within the fanuc product line and that 
some details have evolve over time. That level of detail is not germane 
to the general point I am trying to convey).

Side bar: The secondary, less influential defacto gcode standard choice 
would be Haas' gcode dialect. Given that LCNC is already "fanuc 
flavored", switching horses to Haas would seem to be more work for less 
leverage.  Nor do I think it worth considering "establishing a competing 
standard" as LCNC does not have the required market clout for that type 
of activity.

I believe that the benefits from implementing "standard fanuc gcode" far 
out weigh any internal LCNC implementation considerations. Thus when I 
read (paraphrasing) that the Fanuc lathe tool change "style" is hard to 
fit into the LCNC tool table "framework", my immediate conclusion 
appears to be different from that of some folks; To me that means we 
should improve the LCNC tool table structures to support the Fanuc gcode 
S&S goal. This is another way of saying that I don't think that existing 
internal LCNC data structures should be the restricting factor that 
determine gcode S&S (to me that's the tail wagging the dog).

Having expressed the above, I'd like to turn to a related aspect of the 
conversation.
I've sensed that there may be some thinking that LCNC is trying to, or 
should, implement "one gcode language dialect" that runs many machines. 
It appears this is implicit in the comments along the lines of "we can 
still use G43 Hx to do thus and such".

For better or worse, industry treats Mills and lathes as significantly 
different animals. In the fanuc world there is NOT a single "gocde 
syntax" that is used for all machines. WRT to mills & lathes there is a 
"mill gcode S&S" and a "Lathe gcode S&S".  While they have some 
overlapping gcode words, these two Gcode dialects are generally used 
orthogonally.

Again, I think it would serve LCNC well to follow this industry practice 
- as this gains the most ecosystem leverage.

Conceptually, we can think of the Gcode interpreter of a CNC system as a 
swappable module.
(While swapping out the entire interpreter is technically difficult 
today with LCNCs "non-modular" internal structures, conceptually it 
seems the right approach.)

Thus we should think of LCNC as running either a mill gcode interpreter 
XOR a lathe gcode interpreter. Both the tool change syntax and the 
semantics are fundamentally different and incompatible between these two 
interpreters. WRT to tool changes I suggest that one think of mill/lathe 
more like English/Spanish than LA/New York accent differences. IMHO, 
attempting to intermix the different tool change S&S m within the same 
interpreter is asking for trouble and confusion.

When using the lathe interpreter, tool changes should only be and are 
done using lathe S&S. In this case Txxyy. Any attempt to use mill S&S 
(G43 Hx) should be treated by the lathe interpreter as a syntax error.
Conversely, when running the mill interpreter, all tool change S&S are 
Tx M6 G43 Hy etc - and any attempt to use Txxyy should result in a 
syntax error.

Finally, I'd observe that people who directly write gocde are a rare and 
vanishing breed. These days gcode is much more a program to program 
interface than it is a human to control interface. Existing gcode 
dialects do the job and there is no significant interest in, or adoption 
of, the alternatives that have been proposed over the years. This 
economic fact of CNC life is why inventing clever new gcode abilities 
(usually at the cost of being "non-standard" gcode) is generally ignored 
by the market. There is simply not sufficient economic incentive to 
materially "improve" gcode.

Thus I have concluded that the best course is to simply target, 
implement and support fanuc gcode S&S.

We can then expend our available energies on other aspects of LCNC 
package where a better ROI is possible.

Dave

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to