EDA365电子工程师网

标题: 请教高手:如何用SKILL判断SHAPE类型? [打印本页]

作者: smallnose    时间: 2010-10-7 17:00
标题: 请教高手:如何用SKILL判断SHAPE类型?
请教各位:
如何用SKILL判断SHAPE是动态还是静态?
如果是动态,如何用SKILL将其转换为静态?
多谢!
作者: langexie    时间: 2010-10-11 09:21
本帖最后由 langexie 于 2010-10-11 09:26 编辑

回复 1# smallnose

要实现动态变静态很简单,只需axlShapeChangeDynamicType()就可以,无需你去判断是否为动态或为静态,若为静态会出现提示:W- Shape is already static.
程序如下:
  1. axlCmdRegister( "cshape" 'Change_Dynamics_Shape )
  2. procedure( Change_Dynamics_Shape()
  3. popup = axlUIPopupDefine(nil list(list("Done" `axlFinishEnterFun)))
  4. axlUIPopupSet(popup)
  5. axlClearSelSet()
  6. axlSetFindFilter( ?enabled '("NOALL" "SHAPES" "BOUNDARY_SHAPES") ?onButtons "ALLTYPES")
  7. while(axlSelect()
  8. lshape = axlGetSelSet()
  9. popup = axlUIPopupDefine(nil list(list("Done" `axlFinishEnterFun)))
  10. axlUIPopupSet(popup)
  11. axlClearSelSet()
  12. when(lshape
  13. foreach(shap lshape
  14. cshapes=axlShapeChangeDynamicType(shap nil t)

  15. )
  16. )
  17. )
  18. )
复制代码

作者: smallnose    时间: 2010-10-12 21:49
回复  smallnose

要实现动态变静态很简单,只需axlShapeChangeDynamicType()就可以,无需你去判断是否为 ...
langexie 发表于 2010-10-11 09:21



   

谢谢回复,更感谢你的代码
这个函数我试用过,但是其总是给出下面的错误:
E- Shape is generated from a dynamic shape; can't change its type.

目前我还没找出原因,不知你是否也遇到过?


作者: langexie    时间: 2010-10-15 10:24
回复 smallnose 的帖子

出现这个错误是因为,axlSetFindFilter你没有加上"BOUNDARY_SHAPES",根本原因是动态铜皮是在Boundary层的,不是Etch层。在Etch层得到的铜皮都不是动态的铜皮,只是动态铜皮的child。

axlSetFindFilter( ?enabled '("NOALL" "SHAPES" "BOUNDARY_SHAPES") ?onButtons "ALLTYPES")
详细你可以看一下我在pcbskill上面“动态shape变成静态shape问题”的贴子!

作者: smallnose    时间: 2010-10-18 20:46
langexie 发表于 2010-10-15 10:24
回复 smallnose 的帖子

出现这个错误是因为,axlSetFindFilter你没有加上"BOUNDARY_SHAPES",根本原因是动 ...

谢谢




欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2