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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1483|回复: 0

[求助] offgrid脚本报错,求大家看看

[复制链接]
发表于 2024-2-23 16:23:13 | 显示全部楼层 |阅读模式

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

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

x
如图,使用的是论坛里大佬写的代码,但是会报两种错误。

①如果选一个path或者rect然后进行该操作就会报




  1. *Error* putOnGridCB: too many arguments (1 expected, 3 given) - (0.005 t nil)


复制代码
②如果全选整个模块的内容再进行该操作就会报如下错误,并且整个virtuoso就会卡住必须得kill才能关闭。




  1. "Put On Grid: Encountered unknown shape"
  2. "pathSeg"


复制代码
完整代码如下:




  1. /*PutOnGrid procedure*/
  2.         
  3. procedure( grid()
  4. let((gridField putOnGridForm)
  5.         hiCreateForm('putOnGridForm "Put On Grid"
  6.                         "putOnGridCB(        putOnGridForm->gridField->value
  7.                                         putOnGridForm->convPathToPolygonButton->value
  8.                                         putOnGridForm->selectAllObjButton->value)"
  9.                         list(        hiCreateFloatField(
  10.                                         ?name 'gridField
  11.                                         ?prompt "Enter Grid Value"
  12.                                         ?defValue 0.1
  13.                                 );

  14.                                 hiCreateBooleanButton(
  15.                                         ?name 'convPathToPolygonButton
  16.                                         ?buttonText "Do you want to convert path to polygon?"
  17.                                         ?value nil
  18.                                         ?defValue nil
  19.                                 );

  20.                                 hiCreateBooleanButton(
  21.                                         ?name 'selectAllObjButton
  22.                                         ?buttonText "Select all object?"
  23.                                         ?value t
  24.                                         ?defValue t
  25.                                 );
  26.                         );list
  27.         );hiCreateForm

  28.         hiDisplayForm(putOnGridForm)
  29. );let
  30. );procedure

  31. procedure(putOnGridCB(grid convPathToPolygon selectAll)
  32. prog( (compFactor cv selset saveLayer theta p obj path loc)

  33.         compFactor = 1 / (geGetEditCellView()~>"DBUPerUU")
  34.        
  35.         if(!compFactor then
  36.                 hiDisplayModelessDBox('formHandle "Put On Grid"
  37.                         "The CellView does not have the DBUPerUU property defined"
  38.                         "" ""
  39.                 );
  40.                 return()
  41.         );fi

  42.         cv=geGetEditCellView()

  43.         if(selectAll == t
  44.            then selset=nconc(cv~>shapes cv~>instances cv~>mosaic)
  45.         else
  46.                 selset=selectedSet()
  47.         );fi

  48.         if(selset == nil then
  49.                 hiDisplayModelessDBox('formHandle "Put On Grid"
  50.                         "Nothing has been selected objects"
  51.                         "" ""
  52.                 );
  53.                 return()
  54.         );fi

  55.         when(convPathToPolygon
  56.                 foreach(obj selset
  57.                         when(obj~>objType=="path"
  58.                                 dbConvertPathToPolygon(obj)
  59.                         );when
  60.                 );foreach
  61.         );when

  62.         foreach( obj selset
  63.                 case( obj~>objType
  64.                         ("rect"
  65.                                 path=obj~>bBox
  66.                         );

  67.                         (("polygon" "path")
  68.                                 path=obj~>points
  69.                         );

  70.                         (("label" "inst" "mosaic" "mosaicInst")
  71.                                 path=list(obj~>xy)                        );

  72.                         (t
  73.                                 println(obj~>objType)
  74.                         );
  75.                 );case

  76.                 newpath=nil
  77.                 foreach( pt path
  78.                         newpath=cons(roundCoord(pt grid) newpath)
  79.                 );foreach

  80.                 path=newpath

  81.                 case( obj~>objType
  82.                         ("rect"
  83.                                 obj~>bBox=path
  84.                         );

  85.                         (("polygon" "path")
  86.                                 obj~>points=path
  87.                         );

  88.                         (("label" "inst" "mosaic" "mosaicInst")
  89.                                 obj~>xy=car(path)
  90.                         );

  91.                         (t
  92.                                 println("Put On Grid: Encountered unknown shape");

  93.                         );
  94.                 );case

  95.         );foreach
  96. );prog
  97. );procedure

  98. procedure(roundCoord(point grid)
  99. prog((x y)
  100.         x=round((xCoord(point) + compFactor)/grid)*grid
  101.         y=round((yCoord(point) + compFactor)/grid)*grid
  102.         return(list(x y))
  103. );prog
  104. );procedure
  105. hiSetBindKey("Layout" "<Key>1" "grid()")


复制代码


6.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-6-22 01:07 , Processed in 0.013273 second(s), 8 queries , Gzip On, MemCached On.

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