找回密码
 注册
关于网站域名变更的通知
查看: 2678|回复: 7
打印 上一主题 下一主题

保存和恢复Highlighte颜色(源码)

  [复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-5-28 14:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
本帖最后由 laikelang 于 2011-5-29 08:45 编辑

支持Symbol, Pin, Net。

axlCmdRegister("savehilight" '_LCSaveHilight ?cmdType "general")
axlCmdRegister("sethilight" '_LCSetHilight ?cmdType "general")

;###########################################################
;#                   save highlighted                      #
;###########################################################

defun( _LCSaveHilight ( )
prog( ( filename, newfile, filep, vis)

    unless( isDir( "~/pcbenv/usersetting") createDir( "~/pcbenv/usersetting"))
    filename = strcat( "~/pcbenv/usersetting/highlight.col")
    newfile = t
    if( isFile( filename) then
        if( axlUIYesNo( "Highlight setting file exists. Overwrite?") then
            newfile = t
        else
            newfile = nil
        );end-if
    );end-if
    if( newfile then
        filep = outfile( filename)

        ;nets
        fprintf( filep "#NET\n")
        foreach( net axlDBGetDesign() -> nets
            if( axlIsHighlighted( net) then
                fprintf( filep "\"%s\" %d\n", net -> name, axlIsHighlighted( net))
            );end-if
        );end-foreach

        ;symbols
        fprintf( filep "#COMPONENT\n")
        foreach( symbol axlDBGetDesign() -> symbols
            if( axlIsHighlighted( symbol) && symbol -> refdes then
                fprintf( filep "\"%s\" %d\n", symbol -> refdes, axlIsHighlighted( symbol))
            );end-if
        );end-foreach

        ;pins
        fprintf( filep "#PIN\n")
        vis = axlVisibleGet()
        axlVisibleDesign( t)
        axlClearSelSet()
        axlSetFindFilter( ?enabled list( "NOALL", "PINS")
            ?onButtons list( "NOALL", "PINS") )

        foreach( pin axlGetSelSet( axlAddSelectAll())
            if( axlIsHighlighted( pin) && pin -> component then
                fprintf( filep "\"%s\" %d\n", strcat( pin -> component -> name, ".", pin -> number),
                    axlIsHighlighted( pin) )
            );end-if
        );end-foreach
        axlClearSelSet()
        axlVisibleSet( vis)

        close( filep)
        axlMsgPut( "Save highlighted completed.")
    );end-if
);end-prog
);end-defun

;###########################################################
;#                      set highlight                      #
;###########################################################

defun( _LCSetHilight ( )
prog( ( filename, filep, s, name, color, origin_color, vis)

    filename = strcat( "~/pcbenv/usersetting/highlight.col")
    if( isFile( filename) then

        ;dehilight all
        axlDehighlightObject( axlDBGetDesign() -> nets, t)
        axlDehighlightObject( axlDBGetDesign() -> symbols, t)
        vis = axlVisibleGet()
        axlVisibleDesign( t)
        axlClearSelSet()
        axlSetFindFilter( ?enabled list( "NOALL", "PINS")
            ?onButtons list( "NOALL", "PINS") )
        axlDehighlightObject( axlGetSelSet( axlAddSelectAll()), t)
        axlVisibleSet( vis)

        ;save highlight Color
        origin_color = axlDBControl( 'highlightColor)
        filep = infile( filename)
        gets( s filep)

        ;hilight net
        gets(s filep)
        while( s && ( car( parseString( s)) != "#COMPONENT")
            name = car( parseString( s "\""))
            color = atoi( cadr( parseString( s "\"")))
            axlDBControl( 'highlightColor color)
            axlHighlightObject( axlSelectByName( "NET", name) t)
            gets(s filep)
        );end-while

        ;hilight component
        gets(s filep)
        while( s && ( car( parseString( s)) != "#PIN")
            name = car( parseString( s "\""))
            color = atoi( cadr( parseString( s "\"")))
            axlDBControl( 'highlightColor color)
            axlHighlightObject( axlSelectByName( "REFDES", name) t)
            gets(s filep)
        );end-while

        ;hilight pin
        gets(s filep)
        while( s
            name = car( parseString( s "\""))
            color = atoi( cadr( parseString( s "\"")))
            axlDBControl( 'highlightColor color)
            axlHighlightObject( axlSelectByName( "PIN", name) t)
            gets(s filep)
        );end-while


        ;revert highlight Color
        axlDBControl( 'highlightColor origin_color)
        axlClearSelSet()
        close( filep)
        axlMsgPut( "Read highlight completed.")
    else
        axlMsgPut( "E- Highlight can not load.")
    );end-if
);end-prog
);end-defun

评分

参与人数 2贡献 +15 收起 理由
y175813652 + 9 感谢分享
deargds + 6 感谢分享

查看全部评分

该用户从未签到

2#
发表于 2011-5-28 15:36 | 只看该作者
感谢分享

该用户从未签到

3#
发表于 2011-6-10 09:41 | 只看该作者
感谢分享
  • TA的每日心情
    开心
    2021-4-7 15:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2011-6-25 11:13 | 只看该作者
    thanks for your sharing ~

    该用户从未签到

    5#
    发表于 2011-6-25 16:55 | 只看该作者
    这个要强,

    该用户从未签到

    6#
    发表于 2011-6-25 16:56 | 只看该作者
    请问一下可以把一个旧PCB上面的颜色转移到新的PCB上面吗

    该用户从未签到

    7#
     楼主| 发表于 2011-6-27 19:03 | 只看该作者
    回复 叫布什动我啊 的帖子

    只要网络相同就可以。颜色文件是在 %HOME%\pcbenv\usersetting 目录下。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-21 09:42 , Processed in 0.125000 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表