在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1980|回复: 8

[原创] skill 版图换层和LSW换层

[复制链接]
发表于 2023-3-30 15:17:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
版图换层和LSW换层。在没有选任何东西时,LSW换层和打开画Path命令。




  1. hiSetBindKeys( "layout" list(list("<Key>1" ReplaceLayer("M1" "drawing")")))
  2. hiSetBindKeys( "Layout" list(list("Ctrl<Key>1" ReplaceLayer("M1" "pin")")))
  3. ......

  4. procedure(ReplaceLayer(layerY purposeY)
  5. prog( (cv)
  6. cv = geGetEditCellView()
  7. layerX = strcat(layerY " " purposeY)
  8. pteSetActiveLpp(layerX)

  9. if(cv~>mode=="r" then
  10.         info("Read Only”
  11.         nil
  12. else
  13.         let((SelectObj)
  14.         LaySel = geGetSelSetCount()
  15.         if(LaySel== 0 then
  16.         leHiCreatePath()
  17.         else
  18.         SelectObj = geGetSelSet()
  19.         SelectObj~>lpp = list(layerY purposeY)
  20.         );if
  21.         );let
  22. );if
  23. ))


复制代码
发表于 2023-3-30 16:32:14 | 显示全部楼层
少了 ) 少了\
 楼主| 发表于 2023-3-30 17:29:40 | 显示全部楼层



是的,少了。
hiSetBindKeys( "Layout" list(list("<Key>1"  "ReplaceLayer(\"M1\" \"drawing\")")))
 楼主| 发表于 2023-4-5 19:08:08 | 显示全部楼层
练习





  1. procedure(tmpa()
  2. prog((cv)
  3. cv=geGetEditCellView()

  4. ;geSelectAllFig()
  5. ;leHiDelete()

  6. pinsum=1000
  7. pathwidth=0.1
  8. pitchlow=0.5
  9. pitchhigh=0.6
  10. pinLowx=0.0
  11. pinLowy=0.0
  12. pinHighx=0.0
  13. pinHighy=100.0


  14. forsum1=900

  15. for(i 1 pinsum

  16.         if((pinHighx-pinLowx)>2 then

  17.                 A1=(pinHighx-pinLowx)/forsum1
  18.        
  19.                 shiftingx=A1
  20.                 print(shiftingx)
  21.                 shiftingy=pathwidth       

  22.                 px1=pinLowx
  23.                 py1=pinLowy
  24.                 px2=pinLowx+pathwidth+A1
  25.                 py2=pinLowy

  26.                 dbCreatePath(cv list("METAL3" "drawing") list(pinLowx:pinLowy pinLowx:pinLowy+pathwidth) pathwidth)
  27.                 for(i 1 forsum1
  28.                 dbCreatePath(cv list("METAL3" "drawing") list(px1-0.5*pathwidth:py1+1.5*pathwidth px2-0.5*pathwidth:py2+1.5*pathwidth) pathwidth)
  29.                 px1=px1+shiftingx
  30.                 py1=py1+shiftingy
  31.                 px2=px2+shiftingx
  32.                 py2=py2+shiftingy
  33.                 );for
  34.         pinLowx=pinLowx+pitchlow                ;pitch  low +
  35.         pinHighx=pinHighx+pitchhigh        ;pitch        high +
  36. else
  37.         pinLowx=pinLowx+pitchlow                ;pitch  low +
  38.         pinHighx=pinHighx+pitchhigh        ;pitch        high +

  39. );if
  40. );for

  41. ))



复制代码
发表于 2023-5-13 16:26:03 | 显示全部楼层


这个是干什么用的
 楼主| 发表于 2023-6-11 16:55:28 | 显示全部楼层




  1. hiSetBindKeys("Layout" list(list("<Key>1" "ReplaceLayer("METAL1" "drawing" "M2_M1")")))
  2. hiSetBindKeys("Layout" list(list("<Key>2" "ReplaceLayer("METAL2" "drawing" "M3_M2")")))
  3. hiSetBindKeys("Layout" list(list("<Key>3" "ReplaceLayer("METAL3" "drawing" "M4_M3")")))
  4. hiSetBindKeys("Layout" list(list("<Key>4" "ReplaceLayer("METAL4" "drawing" "M5_M4")")))

  5. procedure(ReplaceLayer(layerY purposeY VIAY)
  6. let((cv Selectobj obj)
  7. cv = geGetEditCellView()
  8. layerX = strcat(layerY " " purposeY)
  9. println(layerX)
  10. pteSetActiveLpp(layerX)
  11. if(cv~>mode=="r" then
  12.         info("Read only")
  13.         nil
  14. else
  15.         LaySel = geGetSelSetCount()
  16.         println(LaySel)
  17.                 if(LaySel==0 then
  18.                         leHiCreatePath()
  19.                 else
  20.                         Selectobj = geGetSelSet()
  21.                         foreach(obj Selectobj
  22.                                 if(obj~>objType== "stdVia" then
  23.                                         leReplace(cv list(obj) list(list("via definition" nil VIAY)))                               
  24.                                 else
  25.                                         obj~>lpp = list(layerY purposeY)
  26.                                         );if
  27.                                 );foreach
  28.                         );if
  29.                 );if
  30.         );let
  31. );pro


复制代码
 楼主| 发表于 2023-6-11 16:56:30 | 显示全部楼层
增加换孔
 楼主| 发表于 2023-9-29 14:26:32 | 显示全部楼层




  1. hiSetBindKeys("Layout" list(list("<Key>1" "ReplaceLayer("METAL1" "drawing" "M2_M1")")))
  2. hiSetBindKeys("Layout" list(list("<Key>2" "ReplaceLayer("METAL2" "drawing" "M3_M2")")))

  3. procedure(ReplaceLayer(layerY purposeY @optional (VIAY ""))
  4. let((cv Selectobj obj layerX)
  5. cv = geGetEditCellView()
  6. layerX = strcat(layerY " " purposeY)
  7. println(layerX)
  8. pteSetActiveLpp(layerX)
  9. if(cv->mode=="r" then
  10.         info("Read only")
  11.         nil
  12. else       
  13.         LaySel= geGetSelSetCount()       
  14. println(LaySel)
  15.         if(LaySel==0 then
  16.                 leHiCreatePath()
  17.         else
  18.                 Selectobj = geGetSelSet()
  19.                 foreach(obj Selectobj
  20.                         if(obj~>objType== "stdVia" then
  21. println(obj)
  22.                         obj_tmp1=leReplace(cv list(obj) list(list("via definition" nil VIAY)))
  23. ;println(obj_tmp1)
  24. ;geSelectFig(obj)
  25.                         else
  26.                                 obj~>lpp = list(layerY purposeY)
  27.                                 );if
  28.                         );foreach
  29.                 );if
  30.         );if
  31. );let
  32. );pro



复制代码
 楼主| 发表于 2023-9-29 14:28:39 | 显示全部楼层
hiSetBindKeys("Layout" list(list("<Key>1" "ReplaceLayer(\"METAL1\" \"drawing\" \"M2_M1\")")))
hiSetBindKeys("Layout" list(list("<Key>2" "ReplaceLayer(\"METAL2\" \"drawing\" \"M3_M2\")")))

procedure(ReplaceLayer(layerY purposeY @optional (VIAY ""))
let((cv Selectobj obj layerX)
cv = geGetEditCellView()
layerX = strcat(layerY " " purposeY)
println(layerX)
pteSetActiveLpp(layerX)
if(cv->mode=="r" then
        info("Read only")
        nil
else       
        LaySel= geGetSelSetCount()       
println(LaySel)
        if(LaySel==0 then
                leHiCreatePath()
        else
                Selectobj = geGetSelSet()
                foreach(obj Selectobj
                        if(obj~>objType== "stdVia" then
println(obj)
                        obj_tmp1=leReplace(cv list(obj) list(list("via definition" nil VIAY)))
;println(obj_tmp1)
;geSelectFig(obj)
                        else
                                obj~>lpp = list(layerY purposeY)
                                );if
                        );foreach
                );if
        );if
);let
);pro
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-17 06:32 , Processed in 0.025988 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表