On 3/17/2014 1:00 PM, andy pugh wrote: > On 17 March 2014 19:09, David Bagby<[email protected]> wrote: >> The gocde state of a program should be controlled by the program >> (according to the control language the program is written in: in this >> case, gcode). > Yes, but, isn't it the case that ngcgui _writes_ G-Code, so as long as > it is internally consistent then all is well in this case. You raise an interesting question. I fear that "internally consistent" is a bit of a tricky term here - what is it's scope? "internal to the ngcgui portion of LCNC only" or "internally consistent within LCNC"?
I lean toward the former of the choices. > As i understand it "loadtool" isn't a substitute for M6, it is a > pre-defined macro for use in conjunction with the rest of the code > generated by ngcgui. (Which I assume does use G43 in a sysrematic way) > Well, I figured I'd walk thru this where we ended up... I don't think that being internally consistent within ngcgui keeps us out of trouble. What is NGCGUi? Rather than invent some text, I'll quote from http://linuxcnc.org/docs/html/gui/ngcgui.html <start quote (in case the formatting gets stripped by the email reflector>: 1. Overview * /NGCGUI/ is a utility for using LinuxCNC subroutines. * /NGCGUI/ can run as a standalone application or be embedded in multiple tab pages in the axis gui * Multiple copies of the same subroutine can be created * Subroutines can be concatenated together to form a complete multiple step program * New subroutines can be added on the fly NGCGUI is a powerful tool for building g-code programs from subroutines on the fly. Subroutines can be concatenated to build a complete program. Multiple instances of a subroutine can be used to perform the same task in different locations on the part. Any valid g-code can be used in the subroutine. <end quote> OK, ngcgui is a module that you get as part of LCNC. It can be used to generate gcode programs. Is this gcode 100% restricted to internal mgcgui use? Or can ngcgui generated gcode be used with other gcode programs? Can ngcgui code call non-ngcgui code? Can a non-Ngcgui generated program call chunks of ngcguio generated code? I think the answer to at least some of those questions is "yes". I'll thank someone to correct me if I"m wring, but it seems pretty easy to do some of these combinations. Just let ngcgui create some code (or just take it from the samples that get installed, and call it from another program.. I think ngcgui code is not restricted in use such that "ngcgui internal" consistency is of much help. I'm thinking that it would be better if ngcgui (as a part of LCNC) did not create gcode using invalid assumptions. I would like to see LCNC as a package be more internally consistent (that's where I lean toward consistency as desirable across all of LCNC not just sub portion of LCNC (E.g. ngcgui). IMHO ngcgui should both use and generate code that is consistent with the all of LCNC. To me, an rather important part of LCNC is the GCode language as defined by the LCNC interpreter. The gcode language that a CNC control implements is a major important interface of a control system; and the LCNC interpreter allows (as do most gcode interpreters) for T# != H# ( as described in prior email). loadtool is a ngcgui supplied utility subroutine (found in this dir): *linuxcnc\nc_files\ngcgui_lib\utilitysubs* By making an invalid assumption re a M6/G43 relationship and then (incorrectly) promoting a gcode program TLO convention from a (local to a gcode program) convention into a "this is how it is always done and so we'll do it for you bad assertion", the loadtool routine is explicitly creating "side effect" gcode that is inconsistent with the gcode language rules of the LCNC interpreter. So, it appears to me that the ngcgui loadtool utility is incorrect. When I see a routine with an invalid assumption, I generally view it as a bug to be corrected. Putting tongue slightly in cheek, it seems that at a minimum "loadtool" is dangerously misnamed. Perhaps we should rename it to "LoadCurrentT#ToolAndPickAnArbitraryTLOValueAndTurnOnG43TLOCompensationWhetherYouWantItOnOrNot" ;-) ? (Ok, I'm being a tad sarcastic to drive the point). Dave ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
