I would like to extract a list of LPPs from my techfile that have the word "fill" in any part of of the purpose description, ie for example (RX cfill) (RX gapFill) (RX fillOPC). I would like all of these LPPS to be listed, and irrespective of case. Could anyone help me with how to obtain this list of LPPs?
The following returns the LP objects that match from the tech file (assuming a current cellview for obtaining the technology file):
setof(lp techGetTechFile(geGetEditCellView())~>lps rexMatchp("[fF][iI][lL][lL]" lp~>purpose))
The LP object is a particular representation of a layer-purpose pair - using the object you can access the layer name: LPobj~>layer~>name, and was you can see above you can access the purpose directly.
Hope this helps!
Using the below I am getting my list together
LPobjects=setof(lp techGetTechFile(geGetEditCellView())~>lps rexMatchp("[fF][iI][lL][lL]" lp~>purpose))LPobjectsName=LPobjects~>nameLPobjectsPurpose=LPobjects~>purpose
however how then do I create my final list bringing each consecutive entry of lists LPobjectsName and LPobjectsPurpose together, so that I have a list like the below:
LPobjectsFinal=((LayerName1 LayerPurpose1) (LayerName2 LayerPurpose2) (LayerName3 LayerPurpose3) ... etc)
LPobjectsFinal=foreach(mapcar lpp LPobjects list(lpp~>layerName lpp~>purpose))
will do it. Andrew
Minor correction:LPobjectsFinal=foreach(mapcar lpp LPobjects list(lpp~>name lpp~>purpose))
since these are 'LP' objects (~>layerName will return 'nil')
Thanks Lawrence. The perils of writing a reply on the phone without testing it or checking!