右栏
欢迎您:游客!请先
登录
或
注册
风格
恢复默认设置
|
展区
文件集浏览
图片集浏览
Flash浏览
音乐集浏览
电影集浏览
|
搜索
|
社区游戏中心
曙海教育集团论坛
→
Cadence专区
→
Cadence PCB设计初中级
→ Cadence Allegro SKILL语言
新的主题
投票帖
交易帖
小字报
下一主题 >>
<< 上一主题
共有
4755
人关注过本帖
树形
打印
主题:Cadence Allegro SKILL语言
wangxinxin
小
大
1楼
个性首页
|
博客
|
信息
|
搜索
|
邮箱
|
主页
|
UC
加好友
发短信
等级:青蜂侠
帖子:
1393
积分:14038
威望:0
精华:0
注册:
2010-11-12 11:08:23
Cadence Allegro SKILL语言
Post By:2010-12-8 13:34:29
大纲:
(一)、SKILL基础
(二)、利用AXL接口操作Allegro PCB对象
(三)、注册和使用自定义Allegro命令
(四)、Allegro UI界面设计和响应
Email:
TrizDev@yahoo.cn
(以前的邮箱丢了)
四、Allegro UI界面设计和响应
1、简介
界面是交互设计中不可缺少的一部分,很多时候我们无法只让程序孤芳自赏地运行
2、基于文本描述的SKILL界面设计
例子:Example.form(简单的几段文字已经勾勒出我们想要的界面)
FILE_TYPE=FORM_DEFN VERSION=2
FORM
FIXED
PORT 26 20
HEADER "FINDER..."
TILE
TEXT "COMPONENT LIST"
TLOC 1 1
FSIZE 25 3
ENDTEXT
FIELD Placed_List
FLOC 1 3
LIST "" 24 16
OPTION sort
ENDFIELD
FIELD done
FLOC 9 33
MENUBUTTON " OK " 10 3
ENDFIELD
ENDTILE
ENDFORM
3、测试Form的方法
Form测试接口函数axlFormTest(s_formPath)
示例:
axlFormTest("C:\\Example.form")
功能:
利用这个函数可以检查Form文件的语法以及Form的显示效果, 编辑界面时不断使用,使你的界面更加漂亮
Tips:
A、Allegro所有的Form文件都放在Setup - User Preferences...菜单,选择UI_Path列别中的formpath。
查看Allegro所有界面文件,很好的界面重用资源
B、将自定义的Form文件放在formpath下可以不用写绝对路径调用,不信试试
4、界面工具开发ABCDE
A、创建界面文件并使用axlFormCreate或axlMiniStatusLoad打开Form句柄(注意卸磨杀驴)
B、使用axlFormSetField初始化界面区域
C、axlFormDisplay显示界面
D、在axlFormCallback中定义用户交互和区域响应
E、使用axlFormClose关闭界面窗口
/*
功能:通过选择界面列表框中的器件名称浏览器件
命令:OverviewComps
*/
;注册命令
axlCmdRegister("OverviewComps" 'TestFormAppMainModule)
;创建界面文件并显示界面(主模块)
procedure( TestFormAppMainModule()
prog( (FileName FilePort)
;写文件生成界面文件
FileName = "TestForm.form"
FilePort = outfile(FileName "w")
fprintf(FilePort "FILE_TYPE=FORM_DEFN VERSION=2\n")
fprintf(FilePort "FORM\n")
fprintf(FilePort "FIXED\n")
fprintf(FilePort "PORT 26 20\n\n")
fprintf(FilePort "HEADER \"FORM TEST...\"\n\n")
fprintf(FilePort "TILE\n\n")
fprintf(FilePort "TEXT \"ComponentList:\"\n\n")
fprintf(FilePort "TLOC 1 1\n")
fprintf(FilePort "FSIZE 25 3\n")
fprintf(FilePort "ENDTEXT\n\n")
fprintf(FilePort "FIELD ComponentList\n")
fprintf(FilePort "FLOC 1 3\n")
fprintf(FilePort "LIST \"\" 24 16\n")
fprintf(FilePort "OPTION sort\n")
fprintf(FilePort "ENDFIELD\n\n")
fprintf(FilePort "FIELD Quit\n")
fprintf(FilePort "FLOC 9 33\n")
fprintf(FilePort "MENUBUTTON \"EXIT\" 10 3\n")
fprintf(FilePort "ENDFIELD\n\n")
fprintf(FilePort "ENDTILE\n\n")
fprintf(FilePort "ENDFORM\n\n")
close(FilePort)
;创建界面句柄,删除界面文件(卸磨杀驴...)
fw = axlFormCreate(gensym() FileName '("E" "OUTER") 'TestFormAppCallBack t)
deleteFile(FileName)
;界面区域初始化
TestFormFieldInit(fw)
;显示界面
axlFormDisplay(fw)
return(t)
))
;界面区域初始化
procedure( TestFormFieldInit(fw)
prog( (CompsNameList)
;获取所有的器件名称
CompsNameList = axlDBGetDesign()->components~>name
;设置器件列表区域
axlFormSetField(fw "ComponentList" CompsNameList)
return(t)
))
;界面区域响应回调函数
procedure( TestFormAppCallBack(fw)
prog( (CompName CompId)
case(fw->curField
("ComponentList"
CompName = fw->curValue
CompId = axlSelectByName("COMPONENT" CompName)
;定位到对象
axlZoomToDbid(CompId t)
;显示对象详细信息
axlShowObject(CompId)
)
("Quit"
;清理现场
axlClearSelSet()
axlSetFindFilter(?enabled "NOALL" ?onButtons "NOALL")
axlFormClose(fw)
)
)
return(t)
))
5、参考文档
%CDSROOT%\doc
例子:
D:\DesignAdvance\Cadence\SPB_15.2\doc
参考手册列表:
algroskill AXL接口函数参考手册
Tips:
看看下面的路径下是什么东西,保证乐死你... ...
%CDSROOT%\share\pcb\example\skill
6、课后习题
搞懂%CDSROOT%\share\pcb\example\skill路径下所有的程序代码,然后恭喜你入门了... ...
支持
(
0
)
中立
(
0
)
反对
(
0
)
单帖管理
举报帖子
使用道具
|
引用
|
回复
下一主题 >>
<< 上一主题
返回版面帖子列表
Cadence Allegro SKILL语言
回复标题:
上传附件:
签名
:
不显示
显示
RSS2.0
Xhtml无图版
Xslt无图版
Copyright © 2000 - 2009
曙海
教育集团
Powered By
曙海教育集团
Version 2.2
页面执行时间 0.03101 秒, 3 次数据查询