热度 3| |||
脚本功能:鼠标滚轮切换选中通孔类型,如:通孔 “M1_M2” 切换到通孔 “M2_M3”
文件名称:changeViaType.il
软件版本:IC617及以上版本(IC616未测试)
快 捷 键:Alt + 鼠标滚轮
使用方法:CIW窗口 load("XXX/changeViaType.il")后,在 layout 中鼠标选中需要更改的通孔(一次可选择多个),
按住 Alt 键,并滚动鼠标滚轮即可。
代码如下:
procedure(changeViaType(state)
  let((cv tech viaList vias varmin varMax origin orient name viaParams var)
    cv = geGetEditCellView()
    tech = techGetTechFile(cv)
    viaList = tech~>viaDefs~>name
    vias = geGetSelSet()
    varMin = 0
    varMax = length(viaList) - 1
    foreach(via vias
      if(via~>objType == "stdVia" then
        origin = via~>origin
        orient = via~>orient
        name = via~>viaHeader~>viaDefName
        viaParams = via~>viaHeader~>overrideParams
        var = lindex(viaList name) - 1
        if(state == "up" then var = var + 1 )
        if(state == "dw" then var = var - 1 )
        if(var > varMax then var = varMax )
        if(var < varMin then var = varMin )
        viaName = nth(var viaList)
        viaDefId = techFindViaDefByName(tech viaName)
        params = viaDefId~>params
        dbDeleteObject(via)
        newVia = dbCreateVia(cv viaDefId origin orient viaParams )
        geSelectObject(newVia)
      );end if
    );end foreach
  );end let
);end proc
hiSetBindKey("Layout" "Alt<Btn4Down>" "changeViaType(\"up\")")
hiSetBindKey("Layout" "Alt<Btn5Down>" "changeViaType(\"dw\")")可能会有Bug,未进行深入测试。
 /1
 /1 