I am trying to write an skill to check cline segment length and show DRC if it violate the minimum cline segment.
Does anyone have similar skill that I can refer? please share.
I'd like to share you the idea:
MinL = 0.5 ; the minimum length you setaxlVisibleLayer( "etch" t )axlClearSelSet()axlSetFindFilter( ?enabled "Clinesegs" ?onButtons "Clinesegs" ) allClinesegs = axlGetSelSet( axlAddSelectAll());To get the violated cline segments, which length is less than your minimun value.violateSegs = setof( item, allClines, axlDBGetLength( item ) < MinL )
Then you can use axlDBCreateExternalDRC to create DRC mark for eatch items in the list violateSegs.
Thanks for the idea. I manage to create the DRC. However, I still have some Q:-
#1. Is there syntax to clear the DRC created by axlDBCreateExternalDRC() ? If not, any other manual way to remove created DRC?
#2. Can I use a variable instead of actual value for the last argument of this axlDBCreateExternalDRC() ?
axlDBCreateExternalDRC('("Minimum Cline Length" "50um") 1500:1900 "drc error class/layer2" nil nil variable)
If not, is there a way to show the variable value in the DRC created?
#1 To delete external DRC:
axlDeleteObject(setof(item, axlDBGetDesign()->drcs, item->name=="Externally Determined Violation"))
#2, Of course, you can use variant as the value.
clineLength=axlDBGetLength( item )
axlDBCreateExternalDRC('("Minimum Cline Length" "50um") 1500:1900 "drc error class/layer2" nil nil clineLength)
W- *WARNING* (axlDBCreateExternalDRC): Invalid string - 33.06258
It just need a string. You can replace a line to convert the variant into string:
clineLength = sprintf( nil "%n" axlDBGetLength( item ) )
Hope it works.