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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 244|回复: 6

[求助] 在使用连线脚本时报错can't take car of atom:0x78f0a2ed

[复制链接]
发表于 2024-11-15 10:11:06 | 显示全部楼层 |阅读模式
1000资产
在使用站内大佬的连线脚本时遇到报错can't take car of atom:0x78f0a2ed
企业微信截图_20241115093532.png
无论是path线还是pathseg都报一样的错,要怎么解决呢

原帖https://bbs.eetop.cn/thread-888538-1-1.html

 楼主| 发表于 2024-11-15 10:12:22 | 显示全部楼层
本帖最后由 verweiledoch 于 2024-11-15 11:52 编辑

使用的skill代码如下





  1. procedure( ContInOrder()
  2. prog( ( OBJ1 OBJ2 obj1 obj2 Vline Hline HW VW HBP VBP xHBP yHBP xHEP yHEP xVBP yVBP xVEP yVEP
  3.       Space1 Space2 Space3 Space4 LeftDown LeftUp RightUp RightDown TechFile CGroupId
  4.       MyViaOptions Window Num1 Num2 BigNum SmallNum NEWVIAS)

  5. OBJ1 = geGetSortedSelectByLine()
  6. OBJ2 = geGetSortedSelectByLine()
  7. Setlist = mapcar('list OBJ1 OBJ2)
  8. F1=car(OBJ1) L1=cadr(OBJ1)
  9. F2=car(OBJ2) L2=cadr(OBJ2)
  10. foreach(Set Setlist
  11. if(caar(Set)~>objType == "pathSeg"
  12. then obj1 = car(leConvertShapeToPathSeg(leConvertShapeToPolygon( caar(Set))) )
  13.      dbDeleteObject(caar(Set))
  14. else obj1 = car(leConvertShapeToPathSeg(leConvertShapeToPolygon( caar(Set))) )
  15. );
  16. if(caadr(Set)~>objType == "pathSeg"
  17. then obj2 = car(leConvertShapeToPathSeg(leConvertShapeToPolygon(caadr(Set))) )
  18.      dbDeleteObject(caadr(Set))
  19. else obj2 = car(leConvertShapeToPathSeg(leConvertShapeToPolygon(caadr(Set))) )
  20. );if   ***IC617 SKILL BUG.Delete extra pathSeg ***
  21. if(xCoord(obj1~>beginPt)==xCoord(obj1~>endPt) && yCoord(obj2~>beginPt)==yCoord(obj2~>endPt)
  22. then  Vline = obj1 Hline = obj2);if
  23. if(xCoord(obj2~>beginPt)==xCoord(obj2~>endPt) && yCoord(obj1~>beginPt)==yCoord(obj1~>endPt)
  24. then  Vline = obj2 Hline = obj1);if

  25. HW  = Hline~>width/2  VW  = Vline~>width/2
  26. HBP = Hline~>beginPt  HEP = Hline~>endPt
  27. VBP = Vline~>beginPt  VEP = Vline~>endPt

  28. xHBP=xCoord(HBP) yHBP=yCoord(HBP)
  29. xHEP=xCoord(HEP) yHEP=yCoord(HEP)
  30. xVBP=xCoord(VBP) yVBP=yCoord(VBP)
  31. xVEP=xCoord(VEP) yVEP=yCoord(VEP)
  32. Space1 = expt((xHBP-xVBP) 2) + expt((yHBP - yVBP) 2)
  33. Space2 = expt((xHBP-xVEP) 2) + expt((yHBP - yVEP) 2)
  34. Space3 = expt((xHEP-xVBP) 2) + expt((yHEP - yVBP) 2)
  35. Space4 = expt((xHEP-xVEP) 2) + expt((yHEP - yVEP) 2)

  36. cond(
  37. (min(Space1 Space2 Space3 Space4) == Space1
  38. dbSetPathSegPoints(Hline list(xVBP-VW yHBP) HEP)
  39. dbSetPathSegPoints(Vline list(xVBP yHBP-HW) VEP)
  40. ; println("1")  shape  L
  41. );
  42. (min(Space1 Space2 Space3 Space4) == Space2
  43. dbSetPathSegPoints(Hline list(xVBP-VW yHBP) HEP)
  44. dbSetPathSegPoints(Vline VBP list(xVEP yHEP+HW))
  45. ; println("2")  shape  F
  46. );
  47. (min(Space1 Space2 Space3 Space4) == Space3
  48. dbSetPathSegPoints(Hline HBP list(xVBP+VW yHEP))
  49. dbSetPathSegPoints(Vline list(xVBP yHBP-HW) VEP)
  50. ; println("3")  shape _|
  51. );
  52. (min(Space1 Space2 Space3 Space4) == Space4
  53. dbSetPathSegPoints(Hline HBP list(xVBP+VW yHEP))
  54. dbSetPathSegPoints(Vline VBP list(xVEP yHEP+HW))
  55. ; println("4")  shape  7
  56. );
  57. );cond
  58. ;CorePoint = list(xVBP yHBP)
  59. LeftDown =list(xVBP-VW yHBP-HW)  LeftUp =list(xVBP-VW yHBP+HW)  
  60. RightDown=list(xVBP+VW yHBP-HW)  RightUp=list(xVBP+VW yHBP+HW)

  61. TechFile = techGetTechFile(geGetEditRep())
  62. CGroupId = cstFindConstraintGroupIn(TechFile "virtuosoDefaultSetup")
  63. MyViaOptions = viaGetViaOptions(CGroupId)
  64. MyViaOptions~>automatic~>minNumCuts= 2
  65. Window = deGetCellView()
  66. NEWVIAS = viaGenerateViasInArea(Window list(LeftDown LeftUp RightUp RightDown) MyViaOptions)
  67. /*************Delete extra Vias***********/
  68.   BigNum = max(MetalLayerNumber(obj1~>layerName) MetalLayerNumber(obj2~>layerName))
  69. SmallNum = min(MetalLayerNumber(obj1~>layerName) MetalLayerNumber(obj2~>layerName))

  70. for(j 0 j=length(NEWVIAS)
  71. if(setof(x nth(j NEWVIAS)~>viaHeader~>master~>shapes~>layerName
  72.          MetalLayerNumber(x)<SmallNum-1||MetalLayerNumber(x)>BigNum+1);setof
  73. then dbDeleteObject(nth(j NEWVIAS))
  74. );if
  75. );for
  76. /***********Delete extra Vias************/
  77. );foreach
  78. );let
  79. );procedure

  80. /**********Number***********/
  81. procedure(MetalLayerNumber( MetalLayerName )
  82. let((MetalList MetalNum)
  83. MetalList=list("ACT" "GATE" "CT" "M1" "M2" "MV1" "TV" "TM3" )
  84. for(i 1 length(MetalList)
  85. if(nth(i-1 MetalList)== MetalLayerName
  86. then
  87. MetalNum=i);if
  88. );for
  89. MetalNum
  90. );let
  91. );proc








复制代码
发表于 2024-11-15 10:45:19 | 显示全部楼层
把原帖的前几楼都看下
 楼主| 发表于 2024-11-15 11:28:19 | 显示全部楼层


光非 发表于 2024-11-15 10:45
把原帖的前几楼都看下


原楼主的回复都已经看过了
发表于 2024-11-15 11:41:02 | 显示全部楼层
本帖最后由 光非 于 2024-11-15 11:44 编辑


verweiledoch 发表于 2024-11-15 11:28
原楼主的回复都已经看过了


那你里面这个layer的层次也都没有改动啊,你这是更新后的?更新的是在101楼
 楼主| 发表于 2024-11-15 13:07:07 | 显示全部楼层

layer那一行是已经改过的,服务器上的代码没法复制到帖子里
企业微信截图_20241115115057.png


企业微信截图_20241115115030.png
发表于 2024-11-15 13:58:16 | 显示全部楼层
本帖最后由 光非 于 2024-11-15 14:47 编辑


verweiledoch 发表于 2024-11-15 13:07
layer那一行是已经改过的,服务器上的代码没法复制到帖子里


我试了下你贴出来的脚本,并没有说的这个error,估计是你哪里抄错了,删掉9、10、14、19行,能正常连线并打孔
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-24 05:16 , Processed in 0.024068 second(s), 7 queries , Gzip On, Redis On.

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