EDA365电子论坛网

标题: 请问大家如何获取已经高亮的零件? [打印本页]

作者: 萧萧雨下    时间: 2013-2-20 13:13
标题: 请问大家如何获取已经高亮的零件?
我在写一个框选区域检查零件高度的SKILL,现在怎么都获取不取已经框选过高亮的元件。请大家帮帮忙。谢谢!
作者: 萧萧雨下    时间: 2013-2-20 15:15
版主帮帮忙呀,在线等呢。谢谢!
作者: betamelody    时间: 2013-2-20 15:17
贴代码看看
作者: 萧萧雨下    时间: 2013-2-20 15:57
betamelody 发表于 2013-2-20 15:17
贴代码看看

代码如下,请帮忙下。

(defun SelcetRegion ()
            axlClearSelSet()
            axlSetFindFilter(?enabled `("NOALL" "Symbols")
                         ?onButtons `("Symbols"))

            box = axlEnterBox( ?prompts `("Select Symbols to find."
                                      "Complete Box"))
                if( axlSingleSelectBox(box) then
                Symbols = axlGetSelSet()
                else
                axlMsgPut( "No Symbols were found.")
            )                          
            ;axlClearSelSet()

    );end let

(defun getHeights ()

        axlSetFindFilter( ?enabled list("symbols") ?onButtons "symbols")
        axlOpenFindFilter()
        if( (checkLimitValue=3) then
        symbol_db_list = axlGetSelSet()
        ) ;end if
        symbol_db_list = axlGetSelSet(axlAddSelectAll())                ;Make a list of all symbols
        axlClearSelSet()
作者: betamelody    时间: 2013-2-20 16:28
SelcetRegion函数运行完后 全局变量 Symbols 就是获取到的高亮零件
作者: 萧萧雨下    时间: 2013-2-20 17:33
betamelody 发表于 2013-2-20 16:28
SelcetRegion函数运行完后 全局变量 Symbols 就是获取到的高亮零件

请问下我要把Symbols的值传给另一函数如何做啊。本人只懂得基础,请多多帮忙。谢谢!
作者: betamelody    时间: 2013-2-20 17:36
Symbols當前是全局變量,誰要用直接調用就好了不用刻意傳
作者: ginooolu    时间: 2013-2-20 20:07
看看有沒有axlIsHighlighted這個函數,我在16.3的手冊有看到
手冊路徑應該在%cdsroot%\doc\algroskill

axlIsHighlighted (
             o_dbid
         )
         ==> x_highlightColor/nil
Description
If the object is permanently highlighted returns the highlight color; otherwise nil.
Note: Pins can be highlighted.
Only symbols, nets, pins and DRC errors can be highlighted. Cadence suggests that you do
not highlight drc objects unless they are external DRCs, since Allegro PCB Editor DRCs are
frequently recreated.
作者: deargds    时间: 2013-2-20 21:21
获取已经高亮的零件
  1. setof(c axlDBGetDesign()->symbols axlIsHighlighted(c))
复制代码

作者: 萧萧雨下    时间: 2013-2-21 10:15
betamelody 发表于 2013-2-20 17:36
Symbols當前是全局變量,誰要用直接調用就好了不用刻意傳

Symbols在SelcetRegion ()这个函数里是全局变量,但现在我要它的值传到getHeights ()这个函数中啊。

(defun getHeights ()

        axlSetFindFilter( ?enabled list("symbols") ?onButtons "symbols")
        axlOpenFindFilter()
        if( (checkLimitValue=3) then
        symbol_db_list =  symbols
        else
         symbol_db_list = axlGetSelSet(axlAddSelectAll())                ;Make a list of all symbols
         ) ;end if
        axlClearSelSet()


  依上面代码运行就会出错,说symbols是没定义的变量。请帮忙看下,谢谢!



作者: deargds    时间: 2013-2-21 10:47
萧萧雨下 发表于 2013-2-21 10:15
Symbols在SelcetRegion ()这个函数里是全局变量,但现在我要它的值传到getHeights ()这个函数中啊。

( ...

symbols Symbols  大小写的问题
另外传值通过函数参数来就可以了
defun getHeights (arg)
(
      ;do something :arg
)
作者: 萧萧雨下    时间: 2013-2-21 15:37
deargds 发表于 2013-2-20 21:21
获取已经高亮的零件

谢谢版主,问题已经解决。谢谢!
作者: xieh_17    时间: 2013-2-22 15:20
萧萧雨下 发表于 2013-2-21 15:37
谢谢版主,问题已经解决。谢谢!

能晒一下作品么。。。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2