找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

f_formbegin、f_formend、f_checklist未定义

[复制链接]

2

主题

6

帖子

-8963

积分

未知游客(0)

积分
-8963
跳转到指定楼层
1#
发表于 2010-11-26 09:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

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

x
本帖最后由 ofen 于 2010-11-26 09:36 编辑

我下了几个skill,里面都用到了,f_formbegin、f_formend、f_checklist函数,结果跑的时候老是提示这几个函数未定义。对了,网上搜到几个这个函数的定义,f_formbegin、f_formend好像可以了,但是f_checklist还是不行,我也看不懂,请高手指点一下。感激不尽!
defun f_FormBegin (p w h @optional (form_title "form by Richard") (form_opt "")) ;form_opt(FIXED_FONT TOOLWINDOW AUTOGREYTEXT UNIXHGT)
      sprintf(dest,"FILE_TYPE=FORM_DEFN VERSION=2\nFORM %s\nFIXED\nPORT %d %d\nHEADER \"%s\"\nTILE\n\n",form_opt,w,h,form_title)
      if(p fprintf(p,"%s",dest))
      dest

defun f_FormEnd (p @optional flexmode)
     if(flexmode sprintf(dest,"FLEXMODE %s\nENDTILE\nENDFORM\n",flexmode)
                 sprintf(dest,"ENDTILE\nENDFORM\n")
       )
     if(p fprintf(p,"%s",dest))
     dest
defun( f_CheckList (p field x y name @optional (0 i))
    if(0==i sprintf(dest,"FIELD %s\nFLOC %d %d\nCHECKLIST \"%s\" \nENDFIELD\n\n",field,x,y,name)sprintf(dest,"FIELD %s\nFLOC %d %d\nCHECKLIST \"%s\" \"%s\"\nENDFIELD\n\n",field,x,y,name,group))
fprintf(p,"%s",dest))
dest
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
2#
发表于 2010-11-26 11:06 | 只看该作者
defun(f_CheckList (handle field x y label \@optional (group nil))
        when(handle
            if( group then
                        fprintf(handle "FIELD %s\nFLOC %d %d\nCHECKLIST \"%s\" \"%s\"\nENDFIELD\n\n" field x y label group)
                else
                        fprintf(handle "FIELD %s\nFLOC %d %d\nCHECKLIST \"%s\" \nENDFIELD\n\n" field x y label)
            )
        )
)

2

主题

6

帖子

-8963

积分

未知游客(0)

积分
-8963
3#
 楼主| 发表于 2010-11-26 14:54 | 只看该作者
本帖最后由 ofen 于 2010-11-26 14:54 编辑

defun( f_FormBegin (p w h @optional (form_title "form by Richard") (form_opt "")) ;form_opt(FIXED_FONT TOOLWINDOW AUTOGREYTEXT UNIXHGT)
      sprintf(dest,"FILE_TYPE=FORM_DEFN VERSION=2\nFORM %s\nFIXED\nPORT %d %d\nHEADER \"%s\"\nTILE\n\n",form_opt,w,h,form_title)
      if(p fprintf(p,"%s",dest))
      dest)
defun( f_FormEnd (p @optional flexmode)
     if(flexmode sprintf(dest,"FLEXMODE %s\nENDTILE\nENDFORM\n",flexmode)
                 sprintf(dest,"ENDTILE\nENDFORM\n")
       )
     if(p fprintf(p,"%s",dest))
     dest)
defun( f_CheckList (handle field x y label \@optional (group nil))
        when(handle
            if( group then
                        fprintf(handle "FIELD %s\nFLOC %d %d\nCHECKLIST \"%s\" \"%s\"\nENDFIELD\n\n" field x y label group)
                else
                        fprintf(handle "FIELD %s\nFLOC %d %d\nCHECKLIST \"%s\" \nENDFIELD\n\n" field x y label)
            )
        )
)

;some pre-define color,legal numbers are 1 to 24
c_white =1 c_qing   =6     c_ltgreen=12 c_dkzi =17
c_ltblue=2 c_red    =7    c_golden =13 c_gray =19
c_pink  =3 c_yellow =8     c_ltpink =14 c_jiang=22
c_cyan  =4 c_dkblue =9     c_mud    =15 c_black=23
c_zi    =5 c_dkgray =11    c_blue   =16
c_red1  =22
c_yellow  =8  
c_3 =5
c_4 =20
c_6 =6
c_5 =15
c_7 =5
c_8 =3
c_9 =12
c_10 =3
c_11 =1
c_12 =12
c_13 =13
c_14 =14
c_15 =15
c_16 =16

   

qvcs='(
; you may add many layers as you want
;  q_name            q_layers

("CB_Col_setup"  ("ACKAGE GEOMETRY/SILKSCREEN_BOTTOM" "IN/BOTTOM" "PIN/TOP" "BOARD GEOMETRY/OUTLINE" "PACKAGE GEOMETRY/SILKSCREEN_TOP" "PIN/BOTTOM" "ETCH/BOTTOM" "ETCH/TOP" "ETCH/ART03" "ETCH/ART04" "ETCH/ART05" "ETCH/ART06" "ETCH/ART07" "ETCH/ART08" "ETCH/ART09" "ETCH/ART10" "ETCH/ART11" "ETCH/ART12" "ETCH/ART13" "ETCH/ART14" "ETCH/ART15" "ETCH/ART16" "VIA CLASS/BOTTOM" "VIA CLASS/TOP" "VIA CLASS/ART03" "VIA CLASS/ART04" "VIA CLASS/ART05" "VIA CLASS/ART06" "VIA CLASS/ART07" "VIA CLASS/ART08" "VIA CLASS/ART09" "VIA CLASS/ART10" "VIA CLASS/ART11"  "VIA CLASS/ART12" "VIA CLASS/ART13" "VIA CLASS/ART14" "VIA CLASS/ART15" "VIA CLASS/ART16" "drc error class/BOTTOM" "drc error class/TOP" "drc error class/ART03" "drc error class/ART04" "drc error class/ART05" "drc error class/ART06" "drc error class/ART07" "drc error class/ART08" "drc error class/ART09" "drc error class/ART10" "drc error class/ART11" "drc error class/ART12" "drc error class/ART13" "drc error class/ART14" "drc error class/ART15" "drc error class/ART16" ))

)

/*---------------------------------
ChangeColor()
---------------------------------*/
defun( ChangeColor (whichone)
    axlVisibleDesign(nil)

    foreach(one qvcs
        if(whichone==car(one) then
            foreach(lName cadr(one)
                l_sep=parseString(lName "/")
                sprintf(strOrg,"paramLayerGroup:%s/paramLayer:%s",car(l_sep),cadr(l_sep))
                p=axlGetParam(strOrg)
                if(p then
                    p->visible=t
                    c1=1
                    cond(
                    (rexMatchp("AUTOSILK" lName)                   c1=c_gray   )
                    (rexMatchp("PIN/TOP" lName)                    c1=c_red1 )                    
                    (rexMatchp("ETCH/TOP" lName)                   c1=c_red1 )
                    (rexMatchp("PIN/BOTTOM" lName)                 c1=c_blue)                    
                    (rexMatchp("ETCH/BOTTOM" lName)                c1=c_blue)
                    (rexMatchp("ETCH/ART03" lName)                 c1=c_3)
                    (rexMatchp("ETCH/ART04" lName)                 c1=c_4)
                    (rexMatchp("ETCH/ART05" lName)                 c1=c_5)
                    (rexMatchp("ETCH/ART06" lName)                 c1=c_6)
                    (rexMatchp("ETCH/ART07" lName)                 c1=c_7)
                    (rexMatchp("ETCH/ART08" lName)                 c1=c_8)
                    (rexMatchp("ETCH/ART09" lName)                 c1=c_9)
                    (rexMatchp("ETCH/ART10" lName)                 c1=c_10)
                    (rexMatchp("ETCH/ART11" lName)                 c1=c_11)
                    (rexMatchp("ETCH/ART12" lName)                 c1=c_12)
                    (rexMatchp("ETCH/ART13" lName)                 c1=c_13)
                    (rexMatchp("ETCH/ART14" lName)                 c1=c_14)
                    (rexMatchp("ETCH/ART15" lName)                 c1=c_15)
                    (rexMatchp("ETCH/ART16" lName)                 c1=c_16)
                    (rexMatchp("VIA CLASS/TOP" lName)              c1=c_dkblue )
                    (rexMatchp("VIA CLASS/BOTTOM" lName)           c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART03" lName)            c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART04" lName)            c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART05" lName)            c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART06" lName)            c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART07" lName)            c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART08" lName)            c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART09" lName)            c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART10" lName)            c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART11" lName)            c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART12" lName)            c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART13" lName)            c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART14" lName)            c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART15" lName)            c1=c_dkblue )
                    (rexMatchp("VIA CLASS/ART16" lName)            c1=c_dkblue )
                    (rexMatchp("drc error class/TOP" lName)              c1=c_yellow )
                    (rexMatchp("drc error class/BOTTOM" lName)           c1=c_yellow )
                    (rexMatchp("drc error class/ART03" lName)            c1=c_yellow )
                    (rexMatchp("drc error class/ART04" lName)            c1=c_yellow )
                    (rexMatchp("drc error class/ART05" lName)            c1=c_yellow )
                    (rexMatchp("drc error class/ART06" lName)            c1=c_yellow )
                    (rexMatchp("drc error class/ART07" lName)            c1=c_yellow )
                    (rexMatchp("drc error class/ART08" lName)            c1=c_yellow )
                    (rexMatchp("drc error class/ART09" lName)            c1=c_yellow )
                    (rexMatchp("drc error class/ART10" lName)            c1=c_yellow )
                    (rexMatchp("drc error class/ART11" lName)            c1=c_yellow )
                    (rexMatchp("drc error class/ART12" lName)            c1=c_yellow )
                    (rexMatchp("drc error class/ART13" lName)            c1=c_yellow )
                    (rexMatchp("drc error class/ART14" lName)            c1=c_yellow )
                    (rexMatchp("drc error class/ART15" lName)            c1=c_yellow )
                    (rexMatchp("drc error class/ART16" lName)            c1=c_yellow )
                    
                       
                    
                    
                    
                    
                    (rexMatchp("PACKAGE GEOMETRY/SILKSCREEN_TOP" lName)             c1=c_white)
                    (rexMatchp("PACKAGE GEOMETRY/SILKSCREEN_BOTTOM" lName)          c1=c_mud)
                    (rexMatchp("PACKAGE GEOMETRY/DISPLAY_Bottom" lName)             c1=c_cyan )
                    (rexMatchp("PACKAGE GEOMETRY/DISPLAY_TOP" lName)                c1=c_cyan )                    
                    (rexMatchp("PIN/PASTEMASK_BOTTOM" lName)             c1=c_pink )
                    (rexMatchp("PIN/PASTEMASK_TOP" lName)                c1=c_pink )
                    (rexMatchp("BOARD GEOMETRY/DIMENSION" lName)         c1=c_yellow  )
                    (rexMatchp("BOARD GEOMETRY/SOLDERMASK_BOTTOM" lName)    c1=c_cyan )
                    (rexMatchp("PACKAGE GEOMETRY/SOLDERMASK_BOTTOM" lName)  c1=c_pink )
                    (rexMatchp("PIN/SOLDERMASK_BOTTOM" lName)          c1=c_pink)
                    (rexMatchp("VIA CLASS/SOLDERMASK_BOTTOM" lName)    c1=c_pink )
                    (rexMatchp("BOARD GEOMETRY/SOLDERMASK_TOP" lName)    c1=c_cyan )
                    (rexMatchp("PACKAGE GEOMETRY/SOLDERMASK_TOP" lName)  c1=c_pink )
                    (rexMatchp("PIN/SOLDERMASK_TOP" lName)          c1=c_pink)
                    (rexMatchp("VIA CLASS/SOLDERMASK_TOP" lName)    c1=c_pink )
                    (rexMatchp("VALUE" lName)                      c1=c_pink)
                    (rexMatchp("REF DES" lName)                    c1=c_white)
                    (rexMatchp("PACKAGE GEOMETRY/ASSEMBLY_" lName) c1=c_gray)
                    (rexMatchp("BOARD GEOMETRY/ASSEMBLY_" lName)   c1=c_gray)
                    (rexMatchp("COMPONENT VALUE/ASSEMBLY_" lName)  c1=c_gray)
                    (rexMatchp("OUTLINE" lName)                    c1=c_white)
                    )                                                         
                    p->color=c1
                    axlSetParam(p)
                )
            )
        )
    )
    axlUIWRedraw(nil)
)
;c_cyan绿色
/*
---------------------------------
CreateQViewForm()
---------------------------------
*/
defun( CreateQViewForm ()
    fn=axlTempFile()
    p=outfile(fn "w")
    f_FormBegin(p 16 16 "PCB_Col_setup." "TOOLWINDOW")
    i=0
    foreach(onec qvcs f_Checklist(p car(onec) 0 i car(onec) "cg") i=i+2)
    f_FormEnd(p)
    close(p)
    fn
)

defun( QView ()
    QVFormFile=CreateQViewForm()   
    fw=axlFormCreate((gensym) QVFormFile '("NE" "msglines" 0) 'QViewAction t nil)
    axlUIWPerm(fw t)
    axlFormDisplay(fw)
    axlTempFileRemove(QVFormFile)
)

defun( QViewAction (fw)
    if(fw->curField then
        foreach(onec qvcs if(fw->curField==car(onec) ChangeColor(fw->curField)))
    )
)

axlCmdRegister( "QView" `QView)

2

主题

6

帖子

-8963

积分

未知游客(0)

积分
-8963
4#
 楼主| 发表于 2010-11-26 14:56 | 只看该作者
上面是程序,设层颜色的,运行QView,
提示:
Command > qview
E- *Error* eval: undefined function - f_Checklist
不明白啊

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
5#
发表于 2010-11-26 15:30 | 只看该作者
你的问题在以下的定义

qvcs='(
; you may add many layers as you want
;  q_name            q_layers

("CB_Col_setup"  ("ACKAGE GEOMETRY/SILKSCREEN_BOTTOM" "IN/BOTTOM" "IN/TOP" "BOARD GEOMETRY/OUTLINE" "ACKAGE GEOMETRY/SILKSCREEN_TOP" "IN/BOTTOM" "ETCH/BOTTOM" "ETCH/TOP" "ETCH/ART03" "ETCH/ART04" "ETCH/ART05" "ETCH/ART06" "ETCH/ART07" "ETCH/ART08" "ETCH/ART09" "ETCH/ART10" "ETCH/ART11" "ETCH/ART12" "ETCH/ART13" "ETCH/ART14" "ETCH/ART15" "ETCH/ART16" "VIA CLASS/BOTTOM" "VIA CLASS/TOP" "VIA CLASS/ART03" "VIA CLASS/ART04" "VIA CLASS/ART05" "VIA CLASS/ART06" "VIA CLASS/ART07" "VIA CLASS/ART08" "VIA CLASS/ART09" "VIA CLASS/ART10" "VIA CLASS/ART11"  "VIA CLASS/ART12" "VIA CLASS/ART13" "VIA CLASS/ART14" "VIA CLASS/ART15" "VIA CLASS/ART16" "drc error class/BOTTOM" "drc error class/TOP" "drc error class/ART03" "drc error class/ART04" "drc error class/ART05" "drc error class/ART06" "drc error class/ART07" "drc error class/ART08" "drc error class/ART09" "drc error class/ART10" "drc error class/ART11" "drc error class/ART12" "drc error class/ART13" "drc error class/ART14" "drc error class/ART15" "drc error class/ART16" ))

)


car(onec) ------>

onec = ("CB_Col_setup"  ("ACKAGE GEOMETRY/SILKSCREEN_BOTTOM" "IN/BOTTOM" "IN/TOP" "BOARD GEOMETRY/OUTLINE" "ACKAGE GEOMETRY/SILKSCREEN_TOP" "IN/BOTTOM" "ETCH/BOTTOM" "ETCH/TOP" "ETCH/ART03" "ETCH/ART04" "ETCH/ART05" "ETCH/ART06" "ETCH/ART07" "ETCH/ART08" "ETCH/ART09" "ETCH/ART10" "ETCH/ART11" "ETCH/ART12" "ETCH/ART13" "ETCH/ART14" "ETCH/ART15" "ETCH/ART16" "VIA CLASS/BOTTOM" "VIA CLASS/TOP" "VIA CLASS/ART03" "VIA CLASS/ART04" "VIA CLASS/ART05" "VIA CLASS/ART06" "VIA CLASS/ART07" "VIA CLASS/ART08" "VIA CLASS/ART09" "VIA CLASS/ART10" "VIA CLASS/ART11"  "VIA CLASS/ART12" "VIA CLASS/ART13" "VIA CLASS/ART14" "VIA CLASS/ART15" "VIA CLASS/ART16" "drc error class/BOTTOM" "drc error class/TOP" "drc error class/ART03" "drc error class/ART04" "drc error class/ART05" "drc error class/ART06" "drc error class/ART07" "drc error class/ART08" "drc error class/ART09" "drc error class/ART10" "drc error class/ART11" "drc error class/ART12" "drc error class/ART13" "drc error class/ART14" "drc error class/ART15" "drc error class/ART16" ))

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
6#
发表于 2010-11-26 15:36 | 只看该作者
你要的 onec = "PCB_Col_setup"
其它为List的内容吗?
内容为以下:
("ACKAGE GEOMETRY/SILKSCREEN_BOTTOM" "IN/BOTTOM" "IN/TOP" "BOARD GEOMETRY/OUTLINE" "ACKAGE GEOMETRY/SILKSCREEN_TOP" "IN/BOTTOM" "ETCH/BOTTOM" "ETCH/TOP" "ETCH/ART03" "ETCH/ART04" "ETCH/ART05" "ETCH/ART06" "ETCH/ART07" "ETCH/ART08" "ETCH/ART09" "ETCH/ART10" "ETCH/ART11" "ETCH/ART12" "ETCH/ART13" "ETCH/ART14" "ETCH/ART15" "ETCH/ART16" "VIA CLASS/BOTTOM" "VIA CLASS/TOP" "VIA CLASS/ART03" "VIA CLASS/ART04" "VIA CLASS/ART05" "VIA CLASS/ART06" "VIA CLASS/ART07" "VIA CLASS/ART08" "VIA CLASS/ART09" "VIA CLASS/ART10" "VIA CLASS/ART11"  "VIA CLASS/ART12" "VIA CLASS/ART13" "VIA CLASS/ART14" "VIA CLASS/ART15" "VIA CLASS/ART16" "drc error class/BOTTOM" "drc error class/TOP" "drc error class/ART03" "drc error class/ART04" "drc error class/ART05" "drc error class/ART06" "drc error class/ART07" "drc error class/ART08" "drc error class/ART09" "drc error class/ART10" "drc error class/ART11" "drc error class/ART12" "drc error class/ART13" "drc error class/ART14" "drc error class/ART15" "drc error class/ART16" )

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
7#
发表于 2010-11-26 16:07 | 只看该作者
本帖最后由 XYX365 于 2010-11-26 16:23 编辑

类似这样的Form?

本帖子中包含更多资源

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

x

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
8#
发表于 2010-11-26 16:13 | 只看该作者
本帖最后由 XYX365 于 2010-11-26 16:15 编辑
ofen 发表于 2010-11-26 14:56
上面是程序,设层颜色的,运行QView,
提示:
Command > qview


Function:   f_CheckList --------------- L
not f_Checklist

  foreach(onec qvcs f_Checklist(p car(onec) 0 i car(onec) "cg") i=i+2)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-10-18 16:49 , Processed in 0.066082 second(s), 35 queries , Gzip On.

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

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

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