
机械cadcam(7).ppt
42页机械CAD/CAMykee126@AutoCAD对话框设计技术• 对话框具有操作直观、方便、易于输入和修改数 据等特点,是现代软件设计中必不可少的风格 • AutoCAD从12版本起提供了对话框语言,用户 基于AutoCAD开发自己的应用程序时,可以利用 AutoCAD所提供的可编程对话框PDB( Programmable Dialog Box)功能创建新的对话 框,也可以修改一个已经存在的对话框 AutoCAD对话框新颖直观,在一定程度上简化了 用户交互操作,极大地提高了软件的使用效率 • AutoCAD为用户提供的可编程对话框技术是由专 用的对话框描述语言(DCL)和AutoLISP驱动函 数两部分内容组成的• 对话框的组成 ▫ 对话框由框架和包含在框架内的控件组成一个对 话框由位于其中的按钮(单选框、复选框、图像、 动作)、文本编辑框、弹出式列表框和滑动条等控 件组成类 型DCL对象名 称操 作 控 件button按钮edit_box编辑框image_button图像按钮list_box列表框popup_list弹出表radio_button单选按钮slider滚动条toggle切换开关控 件 组row行column列boxed_row有界行boxed_column有界列radio_row单选行radio_column单选列boxed_ radio_row有界单选行boxed _radio_column有界单选列修 饰 和 信 息 控 件image图像text文本spacer空白衬框spacer_0spacer_1文本组 控 件text_ part文字组成concatenationparagraph对 话 框 退 出 按 钮ok_only“确定”按钮ok_cancel“确定”与“取消”按钮行组合ok_cancel_help“确定”、“取消”与“帮助”按 钮行组合ok_cancel_help _info“确定”、“取消”、 “帮助” 与 “信息”按钮行组合错误信 息控件errtileok_cancel_help _errtileok_cancel _err• 控件的属性控件的布局和功能由该控件的属性和AutoLISP 驱动程序控制使用,属性就如同编程语言中的变量 ,包含名字和值两部分内容,属性必须时下列类型 之一: (1)整型:通常表示距离,如控件高度和宽度, 用字符宽度和高度单位的整数倍表示。
(2)实数型:也可以表示距离属性,注意实数的 小数点前一定要有数字,例如0.1,不能表示为.1 (3)字符串:由双括号起的文本或转义符意义 (4)保留字:DCL语言预定义的具有特殊意义的 字符串,需用小写字母表示,并对字母的大小写敏 感类属性名相关控件说明关键字 和 值属性key所有的控件控件名称value文本激活的控件( 除去按钮和图像按 钮)控件的初始 值布局 与 尺寸 属性is-bold文本label行,列单选行,单选 列,有界行,有界列 ,有界单选行,有界 单选列,对话框,列 表框弹出表,单选 按钮,文本,切换开 关控件标记tabs列表框,弹 出表制表符位置布 局 与 尺 寸 属 性 list列表,弹出 表显示表中的初 始值alignment全部控件组群中水平、垂直 方向对齐方式color图像,图像按 钮图像背景色edit-limit编辑框用户可输入的 最大字符串edit-width编辑框控件中编辑 部分的宽度height全部控件控件高度width全部控件控件宽度aspect-ratio图像,图像按 钮图像长宽比动 作 响 应 属 性action全部控件AutoLISP操作 表达式allow- accept编辑框,图像 按钮,列表框当选中该控件时, 激活is-default按钮initial-focus对话框指明按当初键 盘聚焦的控件 is-cancel按钮取消对话框按 钮 is-default按钮接受按钮,当输入 enter按钮时有效is-enabled全部控件控件缺省时可 用的 is-tab-top所以激活控件控件可制表暂停mnemonic全部激活控件控件助记符 multiple- select列表框允许多项选择表项名称属性说 明按钮 buttonlable是一个由引号括起来的字符串,出现 在文本框内的文本标记(无缺省)。
is_cancel可为true或false若为true,则所选中的按钮与按 取消键(如Esc)的作用相同;对话框中只能有一 个按钮的is_cancel为true,且该按钮应在操作会调 动作完成后终止对话框is_defaul t也可为true或flase若为true,其作用与按接受键 (如Enter)相同;通常该按钮应以一种与众不同 的方式显示对话框中只能由一个按钮可置 is_default为真(true).独立控件的属性对话框 dialoglable显示对话框的标题文本,缺省 为空Value与label一样,其属性将字符串当作一 个可选择的对话框标题显示,该值在 布局时不作检查,因此应确定对话框 由足够的宽度来满足该值的要求使 用set_tile函数可以动态的改变对话框 的标题initial _focus指明对话框内初始聚焦的控件 编辑框 edit_bo xlabel为显示在逻辑框左边的标识文本allow_acc ept逻辑型值(true或false)当该值为true时,用户按 下接受键(如enter或双击鼠标键等),就如同激活 了缺省按钮(is_default为true的按钮)edit_wi dth可控制编辑框的宽度,该缺省值为0时,宽度不固定 ,编辑框可根据需要自动扩充到整个可用空间,当 该值为非0时,该框右对齐,控制编辑框宽度并在标 识和编辑框之间保留一个空格。
edit_lim it为编辑框中允许输入的最多字符数, 默认为132个,最大可达256个字符value为编辑框中的初始文本字符串列表框 lisp_boxlabel为显示在列表框上方的标识字符串allow _accept意义与edit_box 中allow_accept属性 相同list为表中显示表项内容(字符串),行间用“\n”分 隔,行内用制表符“\t”分隔multiple _select为是否允许一次选择表中多个选项的控制逻辑值 (true或false),缺省值为falsetabs包含整数或实数,并由空格分开的字符串,没一 个数均表示相应的制表站(tabs)所处的位置 以确定制表符“\t”的文本的位置value是初始的类表项的索引值,如value=“1 3 5“,分 别表示初始选中第1,3,5行,该值缺省为空“” 弹出表 popup_lis plabel为显示在弹出表左方的标识字符串 edit _width可控制编辑框或弹出框的宽度,与 edit_box作用相同;缺省或为0时 ,该控件宽度可扩展到整个可用空 间list与list-box相应属性意义作用相同 tabs与list-box相应属性意义作用相同 。
value与list-box相应属性意义作用 相同图像按钮 image _buttonAllow_a ccept是一逻辑型值(true或false)当为true时,选 中该控件等同于同时选中缺省按钮;缺省为false aspect_r atio为图像的长宽比,若为零,则控件 即为图像的原有大小color为图像的背景色(填充色)单选按钮 Radio_ buttonlable为单选按钮右边的标记文本value为单选按钮是否被选中的标志:“1”表示被选中 ;“0”表示不选中当用户将多个单选按钮置为 “1”时,只有一个单选按钮被选中单选列组 radio -column 有界单选列组 boxed -radio -columnvalue为当前被选中(value=“1”)的关 键字字符串boxed-radio-rowlabel为显示在boxed-radio-column左上 方的标记文本只有boxed-radio -column有此属性)单选行组 radio-row 有界单选行组 boxed- radio-rowvalue为当前被选中(value=“1”)的 boxed-radio-rowlabel为显示在boxed-radio-column左上 方的标记文本。
只有boxed-radio -row有此属性)文本 textlable为显示的文本内容value如lable一样也表示文本控件的显示内容但它对控件的 布局不发生影响若试图将文本信息静态表示,直接在lable中指定内容即 可,若试图在运行过程改变这些信息,可用lable指定它 ,并用一足够长的width来包含将来可能赋给value的字 符串长度;一但布局完成,该文本的尺寸就不能改变, 当发生大于限定宽度的字符串对value赋值时,显示文本 将自动截断is_bol d为一逻辑值(ture或false)控制是 否以黑体显示,缺省为false切换开关 Togglelable为显示在开关框右边的标记文本value为开关的初始状态值:‘0’为空; ‘1’为开缺省状态为‘0’图像 imagecolor与Image_button说明相同ascpect与Image_button说明相同空白 spacer只具有‘布局实现和尺寸属性’•对话框设计的一般原则 1.布局 将对话框中的控件按逻辑关系安排成有界行或有界 列,以便操作人员从左至右或从上到下地进行扫描水 平或垂直地对齐相关的录入域(如编辑框或列表框), 以便操作人员利用Tab切换时,光标能沿直线或对角线 移动。
同时尽可能沿水平和垂直方向对齐有界行或有界 列控件组,在组群之间不要保留太多地空间,必要时应 优先向右扩展空间2.对话框的尺寸和放置位置对话框的大小应以能把必要地信息以一种简洁明 了地方式显示为宜,当对话框大小超过屏幕尺寸时,就 应考虑重新阻止对话框(应考虑不同分辨率下地清晰程 度)缺省时,AutoCAD对话框显示在屏幕中心3.控件禁止禁止或“置灰”控件是控制操作人员操作地有效途径,但不可 滥用禁止控件特征对控件已显示的值,不能因为加入“禁止”而 改变原值4.嵌套对话框嵌套对话框是组织既相互关联又相互区别控件的有效手段通 常要求子对话框比父对话框小AutoCAD一般用(…)标识启动子对 话框的控件嵌套深度一般不要超过三层若第四层是报警框,允 许又四层深度5.隐藏对话框在使用对话框过程中有时需要选择图形实体或使用命令行,此时 就应隐去对话框,通常AutoCAD用“<”来标识产生隐藏动作的控件 对话框隐藏时,应用程序在命令行提示操作人员输入信息;当对 话框再现时,应包含刚才操作人员动作的反馈信息,如编辑框中的 新信息、更新的列表框、表示状态的文本等•对话框控制语言 对话框实际上是由控件所组成的树状结构,而对话框 控制语言DCL(Dialogue Contral Language)就是描述树 的ASCII文本文件(扩展名为 .dcl),它包括一个对话框 (或多个对话框)的描述控件或子部件的定义,也可包 含来自其它DCL文件的控件定义。
由于DCL文件是可读 的文本文件,因此,可以由任何文字编辑器来创造和维 护DCL文件DCL文件通常分成以下三部分,并且可以任何顺序出现:(1 )引用其它DCL文件 (2)典型控件以及组合控件的定义3)对话框定义DCL编程技巧 在用户设计对话框的过程中会涉及到一些技巧性的内容 这里向大家作一些简单的介绍,以便设计出美观合理,实 用的对话框 (1)尝试缺省布局 布局中应尝试缺省布局,当缺省布局不能满足要求时,应 限在组群级进行调整,如还不能满足要求,再进行调整单个 控件 (2)控制组群中的控件分布,可以用spacer_0和spacer_1来 调整这个控件实际上是spacer的变形,其中spacer。












