Is there any way so we can assign multiple functionalities to the same bindkey
For eg :
on selecting metal 1 & pressing( ctrl + 1 ) it is converted to metal2 .if (ctrl+1) is pressed i.e; twice again it should change to metal3 & so on...
Note : I am not doing the above one . I am doing something similar. Please let me know how to approach this
Isn't that just a matter of having your function look at the layer of the shape that is selected, and if it's on metal1 move to metal2, if on metal2 move to metal3 and so on? It sounds like a single function to me that just needs to look at the data.
Otherwise how is it going to know what the current "state" of the data is?
Sorry Andrew . I couldn't explain my question exactly. I am not doing the metal layer change as said above.
Normally If i press one bindkey it runs procedure and executes the skill . Now I want to stay inside procedure till i press ESC key (eg ; leHiRepeatCopy()) till the time inside procedure I should run different functionalities using same or different bindkeys .Is this possible ? Hope I conveyed it now a bit better. Please let me know
For repeated commands like this you'd probably need to use an enterFunction of some sort to prompt you do to something. It's not really very clear what you're trying to do.
I am writing a procedure, which I will call using a bindkey. I want to stay inside the procedure and waiting for other key presses, based on which, it will execute sub functions upon if condition inside the same procedure. There will be one key for eg, "ESC" which should get come out of everything. Basically i want to know how to stay inside a procedure waiting for my next keypress.
Search in the forums for (say) enterPoints - that will give you a number of different examples using one of the enter functions. There are a number of other enterFunctions (all of which begin with "enter" - so you can find them in cdsFinder and in the documentation).
We should only use the existing enterFunctions available ? . Can't we write user defined functions & use it ?
By succesfully I meant by using only one key or less keys.
I'm guessing you want something like this:
procedure(RNconnectivity(@optional pt (cv geGetEditCellView()))
let((overlaps shape layerTable layers
; change this list to the metals in your technology
(metalLayers list("Metal1" "Metal2" "Metal3" "Metal4" "Metal5" "Metal6"))
overlaps=dbGetOverlaps(cv list(pt pt) t 20)
; collect the layers that appear at the point
; does this by flattening the overaps and finding
; the layer name of the final shape, then making a
; unique list
when(shape~>objType!="inst" && shape~>layerName
; not convinced this is really what you want...
fprintf(stopMetals "stopLayers(\n %L" list(cadr(remainingMetal) "drawing"))
fprintf(stopMetals " %L" list(caddr(remainingMetal) "drawing"))
fprintf(stopMetals " t)\n")
?prompts list("Click at point to mark")
Note that I don't think using the stop layers like this is quite what you want. This code is trying to set the stop layers two above the metal layer the shape under the cursor. You can also call it from RNconnectivityEF() which uses enterPoints to prompt you to click, and then escape will end the prompting.
Anyway, hopefully this gives you enough of a framework for you to adapt to your needs.