| 
用skill写了一段修复grid的小程序,运行完之后,肉眼看到layout 已经被修改但是无法自动保存。退出版图就会恢复老样子,请问这是怎么回事呀? 应该如何debug. 求大家帮忙。 代码如下:
×
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册  
 procedure( OnGrid( Point ) ;
 if( listp(Point) then
 
 mapcar( lambda( (x) OnGrid(x) )Point)
 
 else
 
 round((Point/Grid))*Grid
 
 )
 
 )
 
 procedure( PutOnGrid(Grid )
 layerL=list(list("layer1" "drawing"))
 
 cv=dbOpenCellViewByType("libname""cellname" "layout" nil "a")
 WWAA=leSearchHierarchy(cvlist(-1000:-1000 1000:1000) 32 "inst" list(list("view name""==" "layout" )))
 foreach(Object WWAA
 Object~>xy = OnGrid(Object~>xy)
 )
 
 WWAA1=leSearchHierarchy(cv list(-1000:-10001000:1000) 32 "array" list(list("lib name" "==""libname" )))
 foreach(Object WWAA1
 Object~>bBox = OnGrid(Object~>bBox)
 Object~>xy = OnGrid(Object~>xy)
 Object~>uX = OnGrid(Object~>uX)
 Object~>uY = OnGrid(Object~>uY)
 )
 foreach(layx layerL
 WWAA2=leSearchHierarchy(cvlist(-1000:-1000 1000:1000) 32 "rectangle"list(list("layer" "==" layx)))
 foreach(Object WWAA2
 Object~>bBox = OnGrid(Object~>bBox)
 )
 WWAA3=leSearchHierarchy(cvlist(-1000:-1000 1000:1000) 32 "path" list(list("layer""==" layx)))
 foreach(Object WWAA3
 Polygon = leConvertShapeToPolygon(Object)
 Object~>points = OnGrid(Polygon~>points)
 )
 WWAA4=leSearchHierarchy(cvlist(-1000:-1000 1000:1000) 32 "polygon" list(list("layer""==" layx)))
 foreach(Object WWAA4
 Object~>points = OnGrid(Object~>points)
 )
 
 ;
 layerL=leSearchHierarchy(cv list(-1000:-1000 1000:1000) 32"mosaic" list(list("layer" "==" list(x"drawing"))))
 ;foreach(Object LayerL
 ;Object~>xy = OnGrid(Object~>xy)
 );foreach
 );procedure
 PutOnGrid(0.002)
 dbSave(cv)
 ;setof(dbSave(dfsad~>cellview))
 ;setof(WWAA
 dbSave(WWAA~>cellview)))
 dbClose(cv)
 ;hiSetBindKey("Layout" "<Key>v""PutOnGrid(0.002)")
 
 
 |