- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
lisp对话框
第一篇 基本知识
第1节
基本知识
对话框是现今最流行的人机互动面接口;在早期的AutoCAD版本中巳经使用,但只有在R12版本开始,才提供给使用者自行编程的对话框开发功能。
对话框的描述定义在一纯文字文件(扩展名为DCL)内,无须特别的开发环境。
定义文件中的对话框描述,均以对话控制语言(Dialog Control Language,简称DCL语言)所建立。
在AutoLISP程序中,配合可编程对话框(Porgrammable Dialog Box,简称PDB)函数,激活及操控对话框。
可以在一个定义档(扩展名DCL)中定义多个对话框。
对话框由方块本身,及包含于其内的组件(或称为控件、构件)所组成。
每个组件的属性定义均包含在一对大括号{ }中。
在定义文件中,各组件及其属性均为小写,只有在赋值给属性,或设定对话框名称时才可使用大写字母。
属性以等号=赋值,并以分号;结束(注意:在AutoLISP程序中,分号是作为批注)。
一般要在组件名称前加上一个冒号:,但若组件并不设定属性,则不需要在组件名称前加冒号,但却要以分号结束。
空行会被忽略。
若定义档发生严重的错误,会在当前的目录下,产生ACAD.DCE文件,以指明所发生的错误。
第2节
定义档
BASE.DCL 预设在SUPPORT的目录中,它包含了各组件的原型定义及各类型巳定义的其它基本组件。而所有自行开发的对话框定义文件,都可以使用在BASE.DCL定义文件中的各个组件。
ACAD.DCL 预设在SUPPORT的目录中,它包含了AutoCAD中所有标准对话框的定义
参考定义档
可在自行开发的对话框定义文件中,经由include指令,取得指定DCL文件中所定义的组件,其语法如下:
@include 对话框定义档
例如 @include david.dcl
定义档名称要包含在双引号中,可以在档名前加上指定的目录路径。
先在当前的目录中搜寻该定义文件,然后是定义文件所在的目录,若指定档案的路径,则只会在指定的目录内寻找。
不可以参考ACAD.DCL所定义的对话框,即不可以使用@include acad.dcl
预视对话框
若在Visual LISP中开启一对话框定义文件,即可使用:
工具 -- 接口工具 -- 预览编辑器DCL
在下拉式列示框中,选取该定义文件中所设定的对话框名称,即可预视对话框
亦可直接输入该对话框的名称(要注意大小写)
第3节
批注
// 表示其右边(至该行末端)的文字被视为注释。
/* */ 包括在两个批注符号中间的所有文字(可跨越多行)均视为注释。
语义检核
提供4个等级的检核,该些检核会在对话框载入时完成。可以将下列语句放在定义文件中的任何位置,但不能在任何对话框的属性定义内。
dcl_settings : default_dcl_settings {audit_level = 3;}
等级0 不检查:只有在该定义档巳被检核,且不再作修改时使用。
等级1 错误:找出可能造成AutoCAD终止的错误,此等级为默认值。
等级2 警告:找出配置或行为模式的错误,所有定义在修改后,最少应执行此等级的检查一次。
等级3 提示:找出多余的属性定义。
对话框的设计
美观性 颜色配比,组件整齐排列等。
方便性 相同功能的项目要编排在一起,或使用线框包围。
使用频繁的项目应设置在最显眼及方便的位置。
适当设置快速键及默认值(缺省值)。
除非对话框中的项目过多,否则应避免使用巢状(嵌套)式对话框。
互锁或互换 项目选取(或不选取)时,是否会导致其它项目功能的改变(enable或disable...等)
第4节
对话框定义文件的内容模式
对话框名称:dialog
{ label=对话框标题 ;
:组件名称
{ 属性名称=属性值;
} //组件定义结束
} //对话框结束
定义说明:
1 对话框名称就是由AutoLISP程序启动对话框时所呼叫的名称。可以自行设定,要区分大小写字母。dialog为对话框中最外层的组件(即整个对话框),其它的组件均包含在其中。一般组件要以冒号:开始,并为小写字母,因为不是属性,所以不须使用分号;结束。
2 开大括号{紧随组件名称之后,以包含该组件的属性或其它组件。label为属性名称,并以等号=赋以其右边的属性值,最后以分号;结束该行叙述。
3 包含在对话框中的其它组件。
组件要以冒号:开始,并为小写字母,因为不是属性,所以不须使用分号;结束。
4 开大括号{紧随组件名称之后
文档评论(0)