I am writing a code to get all instances under a marker layer. I tried to use dbGetTrueOverlaps() but it failed with an error of "*Error* dbGetTrueOverlaps: Invalid bBox - (((-0.915 0.025) (4.695 3.135)))". I have mentioned the code below,
Thanks & Regards
You may dolike below to NOT get any nil.
I think y=x~>bBox is not the list format dbGetTrueOverlaps() wants.
Sorry I pressed the POST button twice.....
You may do like below to NOT get any nil.
In reply to RFStuff:
In reply to Andrew Beckett:
Thankyou RFStuff and Andrew. I am facing a problem in picking up instance below the selected layer. can you provide me an example, by using dbGetTrueOverlaps() function, and how to pick the instance below the selected layer and print there location.
In reply to Neeraj Vardhan:
You may follow the link below :-
Thanks RFSTuff for a quick reply , I have one more query, how can i select all the instances under the layer and delete some of them later. As we do by search and then select and delete specific things from them.
If you use dbGetTrueOverlaps(), you may get a list of lists something like below. The 1st one is the ID of the selected trace.You can always eliminate it using unless like Andrew's code in the POST.
The first ID in each list represent the instance name in the hierarchy. The last one in each list is the actual object (may be a PATH,POlygon,Shape..etc). Each list is basically a nested list of the hierarchy.
If you have more number hierarchy you will get more depth in the nesting. If you get the idea you can easily extract the instance ID.
One can basically argue that the instance is a last but one in a nested list returned by dbGetTrueOverlaps().
You can also try dbGetInstTransform(). It may NOT work in IC5141.
I am NOT still clear what u want to do actually.
But what I understand from your post, you may do something as below:-
1) Find the overlapped instance/objects using
2) You can use some thing like dbGetTrueOverlaps(cv car(obj1~>bBox) "VIA5" 0:5) to get the VIA ovelap objects. I assume VIA5 is drawing alyer in your process.
3) Then whatever you want you can do with it by using appropriate command.
a) If you want to do manually, then you can use Mr Andrew's code in the post to highlight the area to find the locations
b) For doing in the code you can delete using appropriate commands.
This operation is different in 5.1.41 as comapred with 6.1.x since vias are instances in the old version and via objects in the new version. Here are two ways you could do this:
5.1.41via5s = setof(x dbProduceOverlapInst(geGetEditCellView() shape~>bBox 0) x~>cellName == "VIA5")
6.1.5:via5s = setof(x dbViaQuery(geGetEditCellView() shape~>bBox 0 0) x~>cellName == "VIA5")
In the examples above, shape refers to the object you're using for your bBox. It could be car(selectedSet()).
In reply to dmay:
Your IC615 code will only work for customVias. Probably best to do x~>viaHeader~>viaDefName=="VIA5" rather than looking at x~>cellName; this will work for both customVias and stdVias.
The IC5141 code is of course fine, since vias are just instances.