Currently the update_ini script does the following substitutions: 'axis.(.).jog-enable': 'joint.\\1.jog-enable',
and so on for other jog pins. When the substitution list is created the script does know the axis to joint mapping, so in cases where it makes sense, the above could (almost) be 'axis.(.).jog-enable': 'joint.\\1.jog-enable => axis."XYZABCUVW"[\\1].jog-enable' except that obviously won't work for a number of reasons. I think I could use: 'axis.0.jog-enable': 'joint.0.jog-enable => axis.%s.jog-enable' % coordinates[0] 'axis.1.jog-enable': 'joint.1.jog-enable => axis.%s.jog-enable' % coordinates[1] 'axis.2.jog-enable': 'joint.2.jog-enable => axis.%s.jog-enable' % coordinates[2] .. to create a set of 9 individual regexes with replacements tailored at the point when the substation set is created. However this is a lot of extra substitutions, basically multiplying the 4 jog pin substations into 36. Not that that is necessarily a disaster. However I would quite like to make the whole second part itself variable, i.e.: if kinstype==IDENTITY: jogsubs = '=> axis.{magic here}.jog-enable' else: jogsubs = '' ... 'axis.1.jog-enable': 'joint.1.jog-enable %s' % jogsubs So that the world-mode incremental jog pins only get auto-linked in identity kins. But this rather breaks the first idea. (unless I can use a syntax like: 'string %s 1' % ('string %s 2' % coordinates[1])) But I need to think harder about that One possible way this could be forced to work is if a regex capture can return something other than the captured value.: axis.(1=X)?(2=Y).jog-enable axis.\\1\\2.jog-enable Where my fictional (1=X) syntax returns "X" in \\1 if it finds "1" Writing this email has actually clarified my thoughts a little. The code runs the substations in sequence. I can insert the pin as axis.1.jog-enable initially, then substitute all axis.1 with axis.Y in a later entry. But I would still be interested to hear if anyone with more regex-fu than me has better ideas. -- atp "A motorcycle is a bicycle with a pandemonium attachment and is designed for the especial use of mechanical geniuses, daredevils and lunatics." — George Fitch, Atlanta Constitution Newspaper, 1916 ------------------------------------------------------------------------------ Mobile security can be enabling, not merely restricting. Employees who bring their own devices (BYOD) to work are irked by the imposition of MDM restrictions. Mobile Device Manager Plus allows you to control only the apps on BYO-devices by containerizing them, leaving personal data untouched! https://ad.doubleclick.net/ddm/clk/304595813;131938128;j _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers