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