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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8428|回复: 16

[资料] 现在用到的脚本记录一下

[复制链接]
发表于 2021-6-10 10:42:30 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ymiker 于 2021-6-10 14:21 编辑




  1. 自动加宽金属


复制代码




  1. procedure(AddMosM1()
  2. let((cv objs metal1 temp temp1 shapes x y ux uy xy row column transform M1_width)
  3. M1_width = 0.38
  4. cv = geGetEditCellView()
  5. objs = geGetSelSet()
  6. foreach(obj objs
  7. transform = nil
  8. if(obj~>objType == "inst" then transform = list(obj~>transform));end if
  9. if(obj~>objType == "mosaic" then
  10. x = xCoord(obj~>xy)
  11. y = yCoord(obj~>xy)
  12. ux = obj~>uX
  13. uy = obj~>uY
  14. row = obj~>rows
  15. column = obj~>columns
  16. for(a 0 row-1
  17. for(b 0 column-1
  18. case(car(obj~>tileArray)
  19. ("R0" || "MXR90" xy = list(x+a*ux : y+b*uy))
  20. ("R90" || "MY" xy = list(x-a*ux : y+b*uy))
  21. ("R0" || "MXR90" xy = list(x+a*ux : y-b*uy))
  22. ("R0" || "MXR90" xy = list(x-a*ux : y-b*uy))
  23. );end case
  24. transform = append1(transform list(car(xy) car(obj~>tileArray) 1.0))
  25. );end for
  26. );enf for
  27. );end if
  28. shapes = obj~>master~>shapes
  29. foreach(shape shapes
  30. if(car(shape~>lpp) == "METAL1" && cadr(shape~>lpp) == "drawing"
  31. then
  32. foreach(trans transform
  33. metal1 = dbCopyFig(shape cv trans)
  34. temp = leConvertPolygonToPath(metal1)
  35. ;;;;temp1 = leHiConvertShapeToPathSeg(temp)
  36. temp~>width = M1_width
  37. );foreach
  38. );if
  39. );foreach
  40. );foreach
  41. );let
  42. );proc


复制代码
ctrl,shift滑轮改孔






  1. ;==========================================================================
  2. ;Function:         "Ctrl" or "Shift" + mouse wheel to modify the horizontal or vertical number of through holes (Via)
  3. ;Instructions:
  4. ;                1.In the CIW window, Load this il file
  5. ;                2.In the layout window, After selecting Via,
  6. ;                  Hold down "Ctrl" or "Shift" and slide the mouse wheel
  7. ;
  8. ;Note:                When selecting Via, you may accidentally select other devices.
  9. ;                This script only modifies Via parameters, not other device parameters.
  10. ;
  11. ;==========================================================================
  12. row = "row"
  13. col = "column"
  14. hiSetBindKey("Layout" "Shift<Btn4Down>" "NewVia(row  1)")
  15. hiSetBindKey("Layout" "Shift<Btn5Down>" "NewVia(row -1)")
  16. hiSetBindKey("Layout" "Ctrl<Btn4Down>"  "NewVia(col  1)")
  17. hiSetBindKey("Layout" "Ctrl<Btn5Down>"  "NewVia(col -1)")

  18. procedure(NewVia(dir num)        
  19.         instID = geGetSelSet()        ;get via ID list
  20.         viaID = setof(obj instID obj~>objType == "stdVia")
  21.         rotation = list("R90" "R270" "MYR90" "MXR90")
  22.         foreach(via viaID
  23.                 when(dir == "row"
  24.                         if(member(via~>orient rotation) == nil then         
  25.                                 org = via~>cutRows                        
  26.                                 via~>cutRows = apply('plus list(org num))
  27.                         else                                                
  28.                                 org = via~>cutColumns                        
  29.                                 via~>cutColumns = apply('plus list(org num))
  30.                         );end if
  31.                 );end when
  32.                 when(dir == "column"
  33.                         if(member(via~>orient rotation) == nil then
  34.                                 org = via~>cutColumns
  35.                                 via~>cutColumns = apply('plus list(org num))
  36.                         else
  37.                                 org = via~>cutRows
  38.                                 via~>cutRows = apply('plus list(org num))
  39.                         );end if
  40.                 );end when
  41.         );end foreach()
  42. );end procedure





复制代码

发表于 2021-6-10 13:20:28 | 显示全部楼层
61可以使用S 拉伸的功能  对孔进行拉伸的时候  数量会有改动 我觉得是挺好用的
发表于 2021-6-10 14:16:09 | 显示全部楼层
感谢分享!
请问第一条自动加宽金属的怎么用?
 楼主| 发表于 2021-6-10 14:22:51 | 显示全部楼层
加在bindkey里就行
 楼主| 发表于 2021-6-10 14:23:44 | 显示全部楼层




  1. ;;-----------------------------------------------------------------------------
  2. ;; Bindkeys for 'Layout'
  3. ;; Inherited by:
  4. ;;             * Dracula Interactive
  5. ;;             * High Capacity Power IR/EM
  6. ;;             * NC-Verilog-MaskLayout
  7. ;;             * Other-Layout
  8. ;;             * Other-MaskLayout
  9. ;;             * Other-Symbolic
  10. ;;             * Pcell
  11. ;;             * Power IR/EM
  12. ;;             * Spectre-Layout
  13. ;;             * Spectre-MaskLayout
  14. ;;             * Spectre-Symbolic
  15. ;;             * UltraSim-Layout
  16. ;;             * UltraSim-MaskLayout
  17. ;;             * UltraSim-Symbolic
  18. ;;             * VLS-GXL
  19. ;;             * Virtuoso CE
  20. ;;             * Virtuoso XL
  21. ;;             * adegxl-maskLayout
  22. ;;             * adexl-maskLayout
  23. ;;             * parasitics-MaskLayout
  24. ;;             * sip-layout
  25. ;;-----------------------------------------------------------------------------
  26. hiSetBindKeys( "Layout" list(
  27.     list("<DrawThru1>"        "leSelBoxOrStretch()"        "geSingleSelectBox()")
  28.     list("<DrawThru2>"        ""        "_cmdOptionDrawThru2()")
  29.     list("<DrawThru3>"        "hiZoomIn()"        "hiZoomIn()")
  30.     list("<Key>#"        "hiToggleAnchorMagnifier()")
  31.     list("<Key>'"        "hiUpdateMagOptions()")
  32.     list("<Key>."        "leToggleMagnifier()")
  33.     list("<Key>1"        ""        "drdEnablePixelThreshold(!drdIsPixelThresholdEnabled())")
  34.     list("<Key>A"        "leHiMove()")
  35.     list("<Key>B"        "leReturnToLevel()")
  36.     list("<Key>BackSpace"        "deletePoint()"        "deletePoint()")
  37.     list("<Key>C"        "leHiCopy()")
  38.     list("<Key>D"        "leHiCreateRuler()")
  39.     list("<Key>Delete"        "leHiAttach()")
  40.     list("<Key>Down"        "geScroll(nil "s"    nil)")
  41.     list("<Key>E"        "leHiCreatePath()")
  42.     list("<Key>F"        "hiZoomAbsoluteScale(hiGetCurrentWindow() 0.9)")
  43.     list("<Key>F1"        "hiHelp('window deGetAppInfo(deGetEditViewType(hiGetCurrentWindow()))->appName)")
  44.     list("<Key>F11"        "deToggleAssistants()")
  45.     list("<Key>F2"        "leHiSplit()")
  46.     list("<Key>F3"        "geSaveAs()"        "hiToggleEnterForm()")
  47.     list("<Key>F4"        "geTogglePartialSelect()")
  48.     list("<Key>F5"        "deFileOpen()")
  49.     list("<Key>F6"        "leToggleMaintainConnections()")
  50.     list("<Key>F7"        "leHiEditDRDRuleOptions()")
  51.     list("<Key>F9"        "geToggleFilterSize()")
  52.     list("<Key>M"        "leToggleGravity()")
  53.     list("<Key>H"        "leHiRepeatCopy()")
  54.     list("<Key>I"        "leHiCreateInst()")
  55.     list("<Key>J"        "geSelObjectsPartiallySelected()")
  56.     list("<Key>K"        "geSubSelectPoint()")
  57.     list("<Key>KP_Add"        "leHiSetRefPoint()")
  58.     list("<Key>KP_Divide"        "drdAddTarget()"        "drdAddTarget()")
  59.     list("<Key>KP_Enter"        "mouseAddPt()")
  60.     list("<Key>KP_Equal"        "legRpDelta = 0.5")
  61.     list("<Key>KP_Multiply"        "drdRemoveTarget()"        "drdRemoveTarget()")
  62.     list("<Key>KP_Subtract"        "leSetRefPointInactive(geGetEditCellView())")
  63.     list("<Key>L"        "leHiCreateLabel(hiGetCurrentWindow() leGetEnv("labelMode"))")
  64.     list("<Key>Left"        "geScroll(nil "w"    nil)")
  65.     list("<Key>G"        "leHiQuickAlign()")
  66.     list("<Key>N"        "leSetFormSnapMode("diagonal")")
  67.     list("<Key>O"        "hiPrevWinView(hiGetCurrentWindow())")
  68.     list("<Key>P"        "leHiEditDisplayOptions()")
  69.     list("<Key>Q"        "leHiEditProp()")
  70.     list("<Key>R"        "leHiCreateRect()")
  71.     list("<Key>R11"        "geScroll(nil ""    nil)")
  72.     list("<Key>R13"        "geScroll(nil "sw"    nil)")
  73.     list("<Key>R15"        "geScroll(nil "se"    nil)")
  74.     list("<Key>R4"        "legRpDelta = 0.5")
  75.     list("<Key>R5"        "legRpDelta = 1.0")
  76.     list("<Key>R6"        "legRpDelta = 2.0")
  77.     list("<Key>R7"        "geScroll(nil "nw"    nil)")
  78.     list("<Key>R9"        "geScroll(nil "ne"    nil)")
  79.     list("<Key>Right"        "geScroll(nil "e"    nil)")
  80.     list("<Key>S"        "leHiStretch()")
  81.     list("<Key>T"        "leHiLayerTap()")
  82.     list("<Key>Tab"        "hiPan()")
  83.     list("<Key>U"        "hiUndo()")
  84.     list("<Key>Up"        "geScroll(nil "n"    nil)")
  85.     list("<Key>V"        "leHiDelete()"        "leHiDelete()")
  86.     list("<Key>W"        "leHiCreateVia()")
  87.     list("<Key>X"        "leHiEditInPlace()")
  88.     list("<Key>Y"        "leHiYank()")
  89.     list("<Key>Z"        "hiZoomIn()")
  90.     list("<Key>`"        ""        "drdToggleSmartSnapMode()")
  91.     list("<Key>space"        "leHiAddWireVia(hiGetCurrentWindow())"        "leSpaceBarFunc(hiGetCurrentWindow() t)")
  92.     list("Ctrl Shift<Btn1Down>"        "hiZoomInMagnifier(hiGetCurrentWindow())")
  93.     list("Ctrl Shift<Btn2Down>"        "hiZoomOutMagnifier(hiGetCurrentWindow())")
  94.     list("Ctrl Shift<Btn4Down>"        "_leWireCmdMagnifierOrIncreaseWidth()")
  95.     list("Ctrl Shift<Btn5Down>"        "_leWireCmdMagnifierOrDecreaseWidth()")
  96.     list("Ctrl Shift<Key>A"        "leHiAddWireVia(hiGetCurrentWindow() "down")")
  97.     list("Ctrl Shift<Key>D"        "leHiP2P()")
  98.     list("Ctrl Shift<Key>Down"        "hiScaleMagnifier(0.80)")
  99.     list("Ctrl Shift<Key>F"        "leFinishEntireNet()")
  100.     list("Ctrl Shift<Key>G"        "_weGatherBusWires(hiGetCurrentWindow() not(_weIsGatheringBusWires(hiGetCurrentWindow())))")
  101.     list("Ctrl Shift<Key>H"        "drdCompactSelSet('left)")
  102.     list("Ctrl Shift<Key>J"        "drdCompactSelSet('right)")
  103.     list("Ctrl Shift<Key>K"        "leHiClearRulerInHier()")
  104.     list("Ctrl Shift<Key>N"        "drdCompactSelSet('bottom)")
  105.     list("Ctrl Shift<Key>Q"        "leHiAddWireVia(hiGetCurrentWindow() "up")")
  106.     list("Ctrl Shift<Key>S"        "leHiGuidedRouting()")
  107.     list("Ctrl Shift<Key>T"        "drdCompactSelSet('target)")
  108.     list("Ctrl Shift<Key>U"        "drdCompactSelSet('top)")
  109.     list("Ctrl Shift<Key>Up"        "hiScaleMagnifier(1.25)")
  110.     list("Ctrl Shift<Key>V"        "leFinishWire()")
  111.     list("Ctrl Shift<Key>W"        "leHiCreateWire()")
  112.     list("Ctrl Shift<Key>X"        "leHiCreateBus()")
  113.     list("Ctrl Shift<Key>Z"        "leWECycleControlWire()")
  114.     list("Ctrl Shift<Key>space"        "(leWENoSnap)"        "leSpaceBarFunc(hiGetCurrentWindow() "ctrlShift")")
  115.     list("Ctrl<Btn1Down>"        "mouseSubSelectPt()"        "mouseSubSelectPt()")
  116.     list("Ctrl<Btn2Down>"        ""        "cmdCtrlOption()")
  117.     list("Ctrl<Btn4Down>"        "geScroll(nil "n" nil)"        "_leWireCmdScrollOrCycleUpWireViaAlignment()")
  118.     list("Ctrl<Btn5Down>"        "geScroll(nil "s" nil)"        "_leWireCmdScrollOrCycleDownWireViaAlignment()")
  119.     list("Ctrl<DrawThru1>"        "geSubSelectBox()"        "geSubSelectBox()")
  120.     list("Ctrl<Key>A"        "geSelectAllFig()")
  121.     list("Ctrl<Key>B"        "leBalloonToggleOnOff()")
  122.     list("Ctrl<Key>C"        "mgc_rve_end_enter_function_binding("Layout")")
  123.     list("Ctrl<Key>D"        "geDeselectAllFig()")
  124.     list("Ctrl<Key>Down"        "geScroll(nil "s"    t)")
  125.     list("Ctrl<Key>E"        "leToggleDrdMode()")
  126.     list("Ctrl<Key>F"        "hiGetCurrentWindow()->stopLevel = 0")
  127.     list("Ctrl<Key>F11"        "deToggleToolbars()")
  128.     list("Ctrl<Key>G"        "geZoomToGrid(hiGetCurrentWindow())")
  129.     list("Ctrl<Key>I"        "leBalloonCycleThru()")
  130.     list("Ctrl<Key>J"        "leHiFlip()")
  131.     list("Ctrl<Key>K"        "leToggleKeepFirstName()")
  132.     list("Ctrl<Key>Left"        "geScroll(nil "w"    t)")
  133.     list("Ctrl<Key>N"        "leSetFormSnapMode("L90XFirst")")
  134.     list("Ctrl<Key>O"        "geSelectViaPile()")
  135.     list("Ctrl<Key>P"        "leHiCreatePin()")
  136.     list("Ctrl<Key>R"        "hiRedraw()")
  137.     list("Ctrl<Key>R11"        "geScroll(nil ""    t)")
  138.     list("Ctrl<Key>R13"        "geScroll(nil "sw"    t)")
  139.     list("Ctrl<Key>R15"        "geScroll(nil "se"    t)")
  140.     list("Ctrl<Key>R7"        "geScroll(nil "nw"    t)")
  141.     list("Ctrl<Key>R9"        "geScroll(nil "ne"    t)")
  142.     list("Ctrl<Key>Right"        "geScroll(nil "e"    t)")
  143.     list("Ctrl<Key>S"        "geSave()")
  144.     list("Ctrl<Key>T"        "leZoomToSelSet()")
  145.     list("Ctrl<Key>Tab"        "hiLowerWindow(hiGetCurrentWindow())")
  146.     list("Ctrl<Key>Up"        "geScroll(nil "n"    t)")
  147.     list("Ctrl<Key>V"        "hiFocusToCIW(hiGetCurrentWindow())")
  148.     list("Ctrl<Key>W"        "leCloseWindow()")
  149.     list("Ctrl<Key>X"        "leEIPZoomAbsoluteScale(hiGetCurrentWindow() 0.9)")
  150.     list("Ctrl<Key>Y"        "geCycleSelectNext()")
  151.     list("Ctrl<Key>Z"        "hiZoomRelativeScale(hiGetCurrentWindow() 2.0)")
  152.     list("Ctrl<Key>space"        "(leWECycleSnap)"        "leSpaceBarFunc(hiGetCurrentWindow() "cancel")")
  153.     list("None<Btn1Down>"        "mouseSingleSelectPt()"        "mouseAddPt(t)")
  154.     list("None<Btn1Down>(2)"        "leDoubleClick()"        "mouseApplyOrFinishPoint()")
  155.     list("None<Btn2Down>"        "hiRepeat()"        "cmdOption()")
  156.     list("None<Btn3Down>"        "_lxHiMousePopUp()"        "_lxHiMousePopUp()")
  157.     list("None<Btn3Down>(2)"        "leHiEditProp()"        "hiToggleEnterForm()")
  158.     list("None<Btn4Down>"        "hiZoomInAtMouse()")
  159.     list("None<Btn5Down>"        "hiZoomOutAtMouse()")
  160.     list("Return"        ""        "mouseApplyOrFinishPoint()")
  161.     list("Shift<Btn1Down>"        "mouseAddSelectPt()"        "mouseAddSelectPt()")
  162.     list("Shift<Btn2Down>"        ""        "cmdShiftOption()")
  163.     list("Shift<Btn4Down>"        "geScroll(nil "w" nil)")
  164.     list("Shift<Btn5Down>"        "geScroll(nil "e" nil)")
  165.     list("Shift<DrawThru1>"        "geAddSelectBox()"        "geAddSelectBox()")
  166.     list("Shift<DrawThru3>"        "hiZoomOut()"        "hiZoomOut()")
  167.     list("Shift<Key>A"        "leHiClearRuler()")
  168.     list("Shift<Key>B"        "leReturn()")
  169.     list("Shift<Key>C"        "leHiChop()")
  170.     list("Shift<Key>D"        ""        "cancelEnterFun()")
  171.     list("Shift<Key>Down"        "leMoveCursor(0           -legRpDelta)")
  172.     list("Shift<Key>E"        "leHiMerge()")
  173.     list("Shift<Key>Escape"        "geSelectArea()")
  174.     list("Shift<Key>F"        "hiGetCurrentWindow()->stopLevel = dbGetMaxHierDepth()")
  175.     list("Shift<Key>F11"        "deToggleToolbars() deToggleAssistants()")
  176.     list("Shift<Key>F4"        "geToggleAreaSelectOption()")
  177.     list("Shift<Key>F5"        "leFullSelectFigOfSelSet()")
  178.     list("Shift<Key>G"        "leHiCreateGuardRing()")
  179.     list("Shift<Key>H"        "leHiMarkNet()")
  180.     list("Shift<Key>I"        "leHiGuidedRoutingReverseEnvelope(hiGetCurrentWindow())")
  181.     list("Shift<Key>L"        "geSubSelectBox()")
  182.     list("Shift<Key>Left"        "leMoveCursor(-legRpDelta           0)")
  183.     list("Shift<Key>M"        "leHiEditEditorOptions()")
  184.     list("Shift<Key>N"        "leSetFormSnapMode("orthogonal")")
  185.     list("Shift<Key>O"        "leHiRotate()")
  186.     list("Shift<Key>P"        "leHiCreatePolygon()")
  187.     list("Shift<Key>Q"        "leEditDesignProperties()")
  188.     list("Shift<Key>R"        "leHiReShape()")
  189.     list("Shift<Key>R11"        "leMoveCursorToRefPoint()")
  190.     list("Shift<Key>R13"        "leMoveCursor(-legRpDelta -legRpDelta)")
  191.     list("Shift<Key>R15"        "leMoveCursor( legRpDelta -legRpDelta)")
  192.     list("Shift<Key>R7"        "leMoveCursor(-legRpDelta  legRpDelta)")
  193.     list("Shift<Key>R9"        "leMoveCursor( legRpDelta  legRpDelta)")
  194.     list("Shift<Key>Right"        "leMoveCursor( legRpDelta           0)")
  195.     list("Shift<Key>S"        "leHiSearch()")
  196.     list("Shift<Key>T"        "leHiTree()")
  197.     list("Shift<Key>U"        "hiRedo()")
  198.     list("Shift<Key>Up"        "leMoveCursor(          0  legRpDelta)")
  199.     list("Shift<Key>V"        "deToggleAssistantVisibility("World View")")
  200. ;    list("Shift<Key>W"        "hiNextWinView(hiGetCurrentWindow())")

  201.     list("Shift<Key>W"        "leHiModifyCorner()")
  202.     list("Shift<Key>X"        "leHiDescend()")
  203.     list("Shift<Key>Y"        "leHiPaste()")
  204.     list("Shift<Key>Z"        "hiZoomRelativeScale(hiGetCurrentWindow() 0.5)")
  205.     list("Shift<Key>space"        ""        "leSpaceBarFunc(hiGetCurrentWindow() t t)")
  206.     list("<Key>K"        "AddMosM1()")
  207. procedure(AddMosM1()
  208. let((cv objs metal1 temp temp1 shapes x y ux uy xy row column transform M1_width)
  209. M1_width = 0.38
  210. cv = geGetEditCellView()
  211. objs = geGetSelSet()
  212. foreach(obj objs
  213. transform = nil
  214. if(obj~>objType == "inst" then transform = list(obj~>transform));end if
  215. if(obj~>objType == "mosaic" then
  216. x = xCoord(obj~>xy)
  217. y = yCoord(obj~>xy)
  218. ux = obj~>uX
  219. uy = obj~>uY
  220. row = obj~>rows
  221. column = obj~>columns
  222. for(a 0 row-1
  223. for(b 0 column-1
  224. case(car(obj~>tileArray)
  225. ("R0" || "MXR90" xy = list(x+a*ux : y+b*uy))
  226. ("R90" || "MY" xy = list(x-a*ux : y+b*uy))
  227. ("R0" || "MXR90" xy = list(x+a*ux : y-b*uy))
  228. ("R0" || "MXR90" xy = list(x-a*ux : y-b*uy))
  229. );end case
  230. transform = append1(transform list(car(xy) car(obj~>tileArray) 1.0))
  231. );end for
  232. );enf for
  233. );end if
  234. shapes = obj~>master~>shapes
  235. foreach(shape shapes
  236. if(car(shape~>lpp) == "METAL1" && cadr(shape~>lpp) == "drawing"
  237. then
  238. foreach(trans transform
  239. metal1 = dbCopyFig(shape cv trans)
  240. temp = leConvertPolygonToPath(metal1)
  241. ;;;;temp1 = leHiConvertShapeToPathSeg(temp)
  242. temp~>width = M1_width
  243. );foreach
  244. );if
  245. );foreach
  246. );foreach
  247. );let
  248. );proc


  249.     ;; Empty bindkeys (typically inserted when a bindkey is redefined or deleted)
  250.    
  251. )) ;; hiSetBindKeys
  252. ;;-----------------------------------------------------------------------------


复制代码
 楼主| 发表于 2021-6-10 14:24:32 | 显示全部楼层
这是我的bindkey
发表于 2021-6-29 09:58:39 | 显示全部楼层


请问这个是你一个一个手敲的嘛- =
发表于 2022-5-18 18:28:05 | 显示全部楼层
mark!
发表于 2022-7-15 16:32:51 | 显示全部楼层
请问这个自动加宽怎么使用呢
这个K,不会与标尺重复吗
发表于 2022-7-20 14:05:42 | 显示全部楼层


junmoxiao 发表于 2022-7-15 16:32
请问这个自动加宽怎么使用呢
这个K,不会与标尺重复吗


点选一下器件,按快捷键
快捷键冲突可以改
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-8 02:47 , Processed in 0.024481 second(s), 6 queries , Gzip On, Redis On.

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