I'm writing some SKILL code to perform some statistics on cells that are in various categories. Basically, I generate lists of cells in these categories. Once I run the script it seems that subsequent calls to the script result in the exact same list even though I have confirmed that the category has changed. It seems as if it's using a category list from memory and not reading it directly from the disc. If I quit ICFB and restart I get the current category contents as expected. I have tried to close data, etc and nothing seems to work. I'm just using the ddCatFindCat and ddCatGetCatMembers functions. Does anyone have any ideas on what I could try?
Please provide which version of the tools you're using - i.e. what getVersion(t) outputs, plus ideally the code you're using.
You refer to ICFB which would imply IC5141, but that may just be a naming convention in your organisation.
Sorry, I should have put that in the original post. getVersion() yields --> @(#)$CDS: virtuoso version 6.1.7-64b 12/16/2018 07:36 (sjfhw317) $
Below is the procedure I'm using.
procedure( pestGetCellList( libName cat ) let( (catCellList catID catMemList) catCellList = nil catID = ddCatFindCat( ddGetObj( libName ) cat "r" ) if( catID then catMemList = ddCatGetCatMembers( catID ) if( catMemList then foreach( item catMemList if( cadr(item) == "cell" then catCellList = cons( car(item) catCellList ) ); if ); foreach ); if ); if catCellList = sort( catCellList nil ) ); let); procedure
Add a call:
on the line after ddCatFindCat. That will cause it to refresh from disk if needed, and will solve your problem.
I thought I had looked at the documentation but apparently not close enough. Sorry for not paying closer attention. Thanks for the help!!