dcl驱动程序实用教案

上传人:cl****1 文档编号:568846917 上传时间:2024-07-27 格式:PPT 页数:26 大小:662KB
返回 下载 相关 举报
dcl驱动程序实用教案_第1页
第1页 / 共26页
dcl驱动程序实用教案_第2页
第2页 / 共26页
dcl驱动程序实用教案_第3页
第3页 / 共26页
dcl驱动程序实用教案_第4页
第4页 / 共26页
dcl驱动程序实用教案_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《dcl驱动程序实用教案》由会员分享,可在线阅读,更多相关《dcl驱动程序实用教案(26页珍藏版)》请在金锄头文库上搜索。

1、2024/7/271DCL基本(jbn)语法结构1.以文件形态存在的DCL程序(ASCLL文件),其扩展名最好是.DCL。2.编写的环境不挑剔,只要是一般(ybn)的文本编辑软件均适用(如记事本Notepad、Wordpad、VisualLisp等)。3.一个DCL文件内,可以设计多组的dialog对话界面如同一个LISP程序内可以设计多个可执行命令一样。第1页/共25页第一页,共26页。2024/7/2724.适时的增加批注,将程序更具可读性、学习(xux)性及完整性,DCL程序中的批注有两种方式(请注意,不能用AutoLISP的“;”分号)。第一种方式:加上“/”两个斜线,双斜线后的一行文

2、字为批注。如:/本DCL设计时间2007/6/设计者:四川理工学院/欢迎学习(xux)第2页/共25页第二页,共26页。2024/7/273第二种方式:以“/*”及“*/”之间夹带的方式,中间的文字内容不受行数限制。如:/*这是DCL批注测试范例以夹带的方式处理这三行(snxn)说明如此一来,才不用在每行前面都要加双斜线*/第3页/共25页第三页,共26页。2024/7/274DCL程序设计的基本(jbn)结构(实例)namename:dialoglabel=“对话框DEMO”;:edit_boxlabel=“编辑框”;edit_width=12;key=“edit_1”;:buttonlab

3、el=“按钮”;width=8;key=“button_1”;ok_cancel;/enddialog第4页/共25页第四页,共26页。2024/7/275说明:NAME相当于AutoLISP中的defun后定义的函数或程序一样。“:dialog”相当于AutoLISP中的defun函数。“:edit_box”与“:button”都是DCL对象(duxing)。“label”、“width”与“edit_width”都是各对象(duxing)的属性,属性值设定后,都需要加一个“;”分号。对话框定义结束前,请注意一定至少有一个“OK”或“Cancel”键。属性key值,相当于各DCL对象(dux

4、ing)的名称,如“edit_1”与“button_1”,它们非常重要,是LISP与DCL沟通的惟一桥梁,若DCL对象(duxing)未定义key值,则根本无法用LISP控制信息的设定、取得与修改、变化。第5页/共25页第五页,共26页。2024/7/276DCLDCL控件的类型控件的类型(lixng)(lixng)及其相及其相应的控件应的控件操作(cozu)控件1button按钮2edit_box编辑框3image_button图像按钮4list_box列表框5popup_list下拉列表6radio_button单选按钮7slider滑动条8toggle切换开关第6页/共25页第六页,共2

5、6页。2024/7/2771.按钮button 用途:以按钮上的文字提示用户,一触动此按钮要执行(zhxng)某一动作。 实例1:第7页/共25页第七页,共26页。2024/7/2782.编辑框 edit_box: 用途:参数化设计(shj)的数值字符串输入。编辑框前可带提示文字(label属性)。 实例2:第8页/共25页第八页,共26页。2024/7/2793.单选框 radio_button: 用途:需求功能(gngnng)或数据是多选一时。 实例3:第9页/共25页第九页,共26页。2024/7/27104.切换(qi hun)开关(复选框) toggle: 用途:控制此定义(dngy

6、)的功能或选项是“开”或“关”。当开关内出现打勾记号时,响应值为“1”,反之,则为“0”。 实例4:第10页/共25页第十页,共26页。2024/7/27115.图像(t xin)按钮 image_button: 用途:与button按钮功能类似,差异在于image_button 的框内提示图形可以是幻灯片SLD、填满单一色块、或绘制(huzh)示意线。 实例5:第11页/共25页第十一页,共26页。2024/7/27126.下拉选单(xun dn) popup_list: 用途:功能类似list_box,正常状况属于收缩单一(dny)列状态。右侧有一向下箭头,选取后,会拉下一列选单供用户选取

7、。 实例6:第12页/共25页第十二页,共26页。2024/7/2713DCL驱动程序(AutoLISP)AutoLISP控制(kngzh)DCL的关键技术对于一个完整的程序来说,只有漂亮的对话框界面是不够的。AutoCAD的对话框驱动程序可由AutoLISP完成,为了便于学习和理解驱动程序的主要构造及解决方法(fngf),我们以AutoLISP程序来介绍AutoCAD中的对话框处理函数。第13页/共25页第十三页,共26页。2024/7/2714AutoLISP控制(kngzh)DCL相关函数一览表AutoLISPAutoLISP函数名函数名功能简述功能简述加载与释放加载与释放DCLDCLl

8、oad_dialogload_dialog加载加载DCLDCL文件,并返回一个编号整数值文件,并返回一个编号整数值unload_dialogunload_dialog释放释放DCLDCL激活与终止激活与终止dialogdialog对话框对话框new_dialognew_dialog激活激活DCLDCL对话框画面对话框画面start_dialogstart_dialog将控制权交给将控制权交给DCLDCLdone_dialogdone_dialog终止显示当前终止显示当前DCLDCL对话框对话框选择与触发选择与触发DCLDCL对象、连接、调用子程序对象、连接、调用子程序action_tileac

9、tion_tile触发触发DCLDCL对象,并执行其后指定的动作及表达式对象,并执行其后指定的动作及表达式第14页/共25页第十四页,共26页。2024/7/2715驱动程序的结构(jigu)框架 第15页/共25页第十五页,共26页。2024/7/27161加载对话框DCL文件(wnjin)(load_dialogDclfile)使用对话框的第一件事就是通过load_dialog函数加载DCL文件(可省略扩展名),该函数可包含多个对话框。若加载成功(chnggng),则返回一个大于零的正整数值(假设存入变量Dcl_id中);否则返回一个负整数,这个Dcl_id在随后调用new_dialog和

10、unload_dialog函数时可用作被装入的DCL句柄使用。同时可以检测到该值不大于零时,可以及时地显示出错信息并返回系统。如:(setqdcl_id(load_dialog“*.dcl”)若加载成功(chnggng),返回大于0的值,否则返回小于0的值。第16页/共25页第十六页,共26页。2024/7/27172显示(xinsh)特定的对话框(new_dialognameDcl_id)初始化一个新的对话框并显示它。该函数中name变量是指DCL文件所包含的某一对话框的一个字符串;Dcl_id变量用来识别一个对话框(load_dialog的返回值)。当对话框显示成功时,该函数返回true否

11、则返回false。在调用这一函数时,检测该返回值状态很重要,因为当new_dialog调用失败(shbi)而又试图调用start_dialog激活对话框时,将产生不可预料的后果。第17页/共25页第十七页,共26页。2024/7/27183对话框控件的初始化new_dialog调用成功后,系统自动根据DCL文件中的内容对控件初始化,此时用户也可根据自己的需要利用程序对控件作相应的初始化设置,如函数set_tile和mode_tile可改变控件的初始值及控件的初始状态;函数start_list,add_list,endlist可以(ky)变更列表框的内容;函数start_image,vector

12、_image,fill_image,slide_image和end_image均用于初始化图像控件的显示内容。同时用户可以(ky)通过函数action_tile对控件设置动作和回调函数,也可通过client_data_tile将应用程序中的特定数据与对话框中对话框中某些组成部分相联系。第18页/共25页第十八页,共26页。2024/7/27194激活(jhu)对话框(start_dialog)此函数将控制权交给对话框,并可开始交互操作。此时对话框中的控件均成为可选择(xunz)控件(用mode_tile“禁止”的控件除外),并始终处于活动状态;直至执行done_dialog关闭对话框为止,对话

13、框选中的控件会自动执行由action_tile设定的动作。第19页/共25页第十九页,共26页。2024/7/27205处理(chl)用户操作激活对话框后,根据用户的交互动作,应同时执行相应的动作函数,此过程被称为回调(callback)。通常用户须使用get_tile,get_attr函数返回(fnhu)控件的value及相应的属性值,再通过set_tile,mode_tile进行相应的处理。第20页/共25页第二十页,共26页。2024/7/27216接受(jishu)键的回调对话框通常包含二组变量:随控件回调而变化的局部变量以及对应于对话框最终控件取值的全局变量。当用户选择接受键以后,应

14、用程序需调用一个函数将局部变量永久性地赋给相应地全局变量。接受键的另一个重要调用函数时(done_dialog1)。注意此时(csh)的状态值一定为1。接受键的回调函数可按以下二种方式进行:(action_tileaccept(set_variables)(done_dialog1))(action_tilecancel(done_dialog0))或(action_tileaccept(done_dialog1))(action_tileaccept(done_dialog0))(if(1=result)(set_varibles)式中ste_varibles是用户自定义地将局部变量赋给永久

15、性全局变量地函数。第21页/共25页第二十一页,共26页。2024/7/27227卸载(xizi)对话框文件(unload_dialogDcl_id)对话框完成操作(cozu)并且不再使用时,应从内存中释放对话框文件。这是对话框操作(cozu)的最后一个步骤,注意:若DCL文件中有多个对话框(dialog)定义,其中有的对话框仍再使用时,不应卸载DCL文件。第22页/共25页第二十二页,共26页。2024/7/2723DCL驱动程序(操作(cozu)实例)1.编辑框eidt_box2.DCL对话框程序(chngx)第23页/共25页第二十三页,共26页。2024/7/2724编辑框驱动程序第2

16、4页/共25页第二十四页,共26页。2024/7/27AutoCAD二次开发DCL对话框基础(jch)25感谢您的欣赏(xnshng)!第25页/共25页第二十五页,共26页。内容(nirng)总结2021/11/10。第1页/共25页。用途:以按钮上的文字提示用户,一触动此按钮要执行某一动作。选择与触发DCL对象、连接、调用(dioyng)子程序。同时可以检测到该值不大于零时,可以及时地显示出错信息并返回系统。当对话框显示成功时,该函数返回true否则返回false。式中ste_varibles是用户自定义地将局部变量赋给永久性全局变量地函数。第24页/共25页。AutoCAD二次开发DCL对话框基础。感谢您的欣赏第二十六页,共26页。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号