找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1888|回复: 6
打印 上一主题 下一主题

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

  [复制链接]

3

主题

32

帖子

497

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
497
跳转到指定楼层
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 感谢分享

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏3 支持!支持!1 反对!反对!

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

2#
发表于 2011-5-28 15:36 | 只看该作者
感谢分享
谁画出这天地 又画下我和你

1

主题

116

帖子

371

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
371
3#
发表于 2011-6-10 09:41 | 只看该作者
感谢分享

0

主题

71

帖子

1292

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

37

主题

664

帖子

-6048

积分

未知游客(0)

积分
-6048
5#
发表于 2011-6-25 16:55 | 只看该作者
这个要强,
百金买骏马,千金买美人,万金买高爵,何处买青春?

37

主题

664

帖子

-6048

积分

未知游客(0)

积分
-6048
6#
发表于 2011-6-25 16:56 | 只看该作者
请问一下可以把一个旧PCB上面的颜色转移到新的PCB上面吗
百金买骏马,千金买美人,万金买高爵,何处买青春?

3

主题

32

帖子

497

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

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

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-15 01:37 , Processed in 0.070382 second(s), 38 queries , Gzip On.

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

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

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