Wait! There's probably confusion because of my crappy naming. interpreter.execute doesn't rely on "from interpreter import *".... interpreter is just the argument passed to toolchange. I thought it was an instance of an emc interpreter so that's what I called it.
On Mon, Mar 31, 2014 at 11:39 AM, Rod Fitzsimmons Frey <rodf...@gmail.com>wrote: > Oh! But it works now! I can move the spindle where I want it, I can setp > on the pins to release the tool, etc. M6T1 does exactly that with this > code. I just can't signal to EMC that the tool has been changed, so on the > *next* call to M6 it reports that the current tool is -1. > > But I readily accept that even if it is moving, I *shouldn't* do it this > way. I can use the ngc code if necessary, but I couldn't find a way to > access the signals from my spindle... i went this way so I could create the > pins I needed to detect if the tool was secure, etc. > > The documentation seemed to suggest a full toolchanger could be done with > only python, I'm just not grokking how to structure that. > > > On Mon, Mar 31, 2014 at 11:30 AM, Michael Haberler <mai...@mah.priv.at>wrote: > >> >> Am 31.03.2014 um 17:15 schrieb Rod Fitzsimmons Frey <rodf...@gmail.com>: >> >> > Thanks! >> > >> > .ini file: http://pastebin.com/VsnQFuzt >> > .hal file: http://pastebin.com/RHEJYqJB >> > hal file hook (hal_racktoolchange): http://pastebin.com/njTUZAqS >> > tool change python code: http://pastebin.com/1EZy0Pur >> >> this is a normal userland HAL comp, not embedded in the interpreter >> you write: >> >> * # These libraries not found - copied from stdglue.py >> * import emccanon >> * from interpreter import * >> >> those are available only _within_ the interpreter, you cannot use them in >> a normal userland HALcomp >> >> oh I see what you are trying to do: interpreter.execute("G53 G1 X%i Y%i >> F%i" % (x_pos, y_pos, rack_params["Z_RETRACT_SPEED"])) >> >> well this will not work (unfortunately), this is the reason: >> >> task and motion can handle one running interpreter at a time only; you >> try to use a second one from outside - even if it were possible to do that, >> the commands it generated would be ignored because task wouldnt listen to >> them, it listens only to the interpreter built into milltask >> >> so any sequenced move operations involving the interpreter must come from >> the running program - that was one of the reasons why remapping enables >> calling on NGC subroutines to do just that >> >> sorry, you need to remain with the setup as outlined in the >> manualtoolchange example; you can replace some ngc by python, but you cant >> move that code outside the interp into another halcomp >> >> >> - Michael >> >> >> >> >> >> >> >> >> > Console output: http://pastebin.com/jNHZbxAE >> > >> > >> > >> > >> > On Mon, Mar 31, 2014 at 10:59 AM, Michael Haberler <mai...@mah.priv.at >> >wrote: >> > >> >> >> >> Am 31.03.2014 um 16:03 schrieb Rod Fitzsimmons Frey <rodf...@gmail.com >> >: >> >> >> >>> Hey! After a couple days away I'm back at this. And immediately >> >> stalled! >> >>> :) >> >>> >> >>> stdglue.py returns INTERP_ERROR and other constants that I just can't >> >> seem >> >>> to locate! When I try to >> >>> >> >>> import emccanon >> >>> from interpreter import * >> >>> >> >>> in my own handler code linuxcnc complains that neither of those >> modules >> >> can >> >>> be found. I've gone through the source looking for the constants but >> no >> >>> luck. >> >>> >> >>> Any advice? >> >> >> >> >> >> yes: please upload your complete configuration, all related files and >> >> pastebin any error messages >> >> >> >> - Michael >> >> >> >> >> >>> >> >>> On Wed, Mar 26, 2014 at 3:15 PM, Michael Haberler <mai...@mah.priv.at >> >>> wrote: >> >>> >> >>>> >> >>>> >> >>>>> Am 26.03.2014 um 16:53 schrieb Rod Fitzsimmons Frey < >> rodf...@gmail.com >> >>> : >> >>>>> >> >>>>> Hi! I'm merrily trying to remap M6 using the guidelines at >> >>>>> >> >>>> >> >> >> http://linuxcnc.org/docs/devel/html/remap/structure.html#_configuring_iocontrol_with_a_remapped_m6 >> >>>> . >> >>>>> I'm trying to use all-python to implement my rack toolchanger. >> >>>>> >> >>>>> I have some stuff working - change_epilog in stdglue.py is called, >> my >> >>>> code >> >>>>> executes and moves the spindle to the correct location for the new >> >> tool, >> >>>>> etc. But change_epilog isn't called. I put a print statement as the >> >>>> first >> >>>>> line in both change_prolog and change_epilog - the former is >> executed >> >> but >> >>>>> the latter is not. >> >>>>> >> >>>>> Perhaps as a result of change_epilog not getting called, my current >> >> tool >> >>>> is >> >>>>> never changed from -1. (Although that could be something else if >> >>>> there's a >> >>>>> step I'm missing in my toolchange code.) >> >>>>> >> >>>>> My ini file line is >> >>>>> REMAP=M6 modalgroup=6 prolog=change_prolog epilog=change_epilog >> >>>>> py=toolchange >> >>>>> >> >>>>> and the epilog signature (unchanged from src) is >> >>>>> def change_epilog(self, **words): >> >>>>> >> >>>>> Any advice? >> >>>> >> >>>> yes >> >>>> >> >>>> what you are doing is an all-python remapped code >> >>>> >> >>>> now the prolog and epilog Python handlers are there to extract >> >> parameters, >> >>>> and set the environment for a _ngc_ remap function >> >>>> >> >>>> if you are doing all-python you can collapse all code into a single >> >> python >> >>>> remap body (all code will go into py=toolchange) >> >>>> >> >>>> so just drop the prolog and epilog handlers, do it all in >> toolchange() >> >> and >> >>>> you should be fine >> >>>> >> >>>> there was a problem with three python handlers in sequence; not sure >> if >> >> it >> >>>> is mentioned in the docs or just the code; since the separate pre- >> and >> >> post >> >>>> handlers dont make sense anyway I avoided the issue by not calling >> them >> >>>> >> >>>> let me know if you get stuck - just push your config and coce >> beforehand >> >>>> so I can have a look >> >>>> >> >>>> - Michael >> >>>>> >> >>>>> Thanks! >> >>>>> Rod >> >>>>> >> >>>> >> >> >> ------------------------------------------------------------------------------ >> >>>>> 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-users mailing list >> >>>>> Emc-users@lists.sourceforge.net >> >>>>> https://lists.sourceforge.net/lists/listinfo/emc-users >> >>>> >> >>>> >> >>>> >> >> >> ------------------------------------------------------------------------------ >> >>>> 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-users mailing list >> >>>> Emc-users@lists.sourceforge.net >> >>>> https://lists.sourceforge.net/lists/listinfo/emc-users >> >>>> >> >>> >> >> >> ------------------------------------------------------------------------------ >> >>> _______________________________________________ >> >>> Emc-users mailing list >> >>> Emc-users@lists.sourceforge.net >> >>> https://lists.sourceforge.net/lists/listinfo/emc-users >> >> >> >> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> >> Emc-users mailing list >> >> Emc-users@lists.sourceforge.net >> >> https://lists.sourceforge.net/lists/listinfo/emc-users >> >> >> > >> ------------------------------------------------------------------------------ >> > _______________________________________________ >> > Emc-users mailing list >> > Emc-users@lists.sourceforge.net >> > https://lists.sourceforge.net/lists/listinfo/emc-users >> >> >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> Emc-users mailing list >> Emc-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/emc-users >> > > ------------------------------------------------------------------------------ _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users