第六讲对话框驱动及应用实例

上传人:平*** 文档编号:48877536 上传时间:2018-07-21 格式:PPT 页数:34 大小:374.15KB
返回 下载 相关 举报
第六讲对话框驱动及应用实例_第1页
第1页 / 共34页
第六讲对话框驱动及应用实例_第2页
第2页 / 共34页
第六讲对话框驱动及应用实例_第3页
第3页 / 共34页
第六讲对话框驱动及应用实例_第4页
第4页 / 共34页
第六讲对话框驱动及应用实例_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《第六讲对话框驱动及应用实例》由会员分享,可在线阅读,更多相关《第六讲对话框驱动及应用实例(34页珍藏版)》请在金锄头文库上搜索。

1、 能够编写对话框文件,仅仅是迈出了 对话框设计的第一步,事实上,编写对 话框文件比较容易,而要控制对话框, 使之实现应有的功能,就要下更大的功 夫。要显示编写的对话框并有效控制它 ,需要结合AutoLISP编程。AutoLISP提供了处理对话框的各种 管理函数,利用它们可以实现DCL文件 的各种控制。第6讲 对话框驱动及应用实例1) action_tile函数格式: (action_tile 控件操作名 动作描述符)功能:将控件与操作表达式联系起来。当用 户选择了该控件时,就执行操作表达式所指 定的内容。 例: (action_tile “a3” “(setq l 594 h 420 c 5)

2、”) (action_tile “accept” “(done_dialog)”) (action_tile “cancel” “(setq a 1) (done_dialog)”)6.1 常用对话框处理函数2) add_list函数格式:(add_list 字串)功能:将指定的字串加入到当前已激活的列 表中。 例: (add_list “1 1.5 2 2.25 2.5 3 3.5 4 5”)3) client_data_tile函数格式: (client_data_tile 控件操作名 数据属性名)功能:把应用程序专用数据与由参数控制操 作名指定的控件相联系。4) dimx_tile函数和

3、dimy_tile函数格式:(dimx_tile 控件操作名) 或(dimy_tile 控件操作名)功能:用于获得控件的宽度和高度。控件的 坐标原点在控件的左上角。 5) done_dialog函数格式: (done_dialog 结束码 )功能: 结束当前对话框。结束码是由( start_dialog)函数返回的值,可以省去,若有 ,必须为正整数。6) end_image函数格式:(end_image) 功能:结束创建当前活动图像,一般应与( start_image)函数成对调用。7) end_list函数格式: (end_list)功能: 结束当前列表框或弹出式列表的选 择列表项的处理。一

4、般与(start_list)函数成对 出现。8) fill_image函数格式:(fill_image x1 y1 x2 y2 color) 功能:在当前激活的图像中画填充矩形。该 矩形的两个角点坐标是(x1, y1)和(x2, y2), color为填充的颜色号。9) get_attr函数格式: (get_attr 控件操作名 属性名)功能: 获取DCL文件中指定控件和属性的 属性值。10) get_tile函数格式:(get_tile 控件操作名) 功能:得到正在运行的控件的关键字的值。 返回该控件的value属性值的字符串。11) load_dialog函数格式: (load_dialo

5、g 对话框文件名) 功能: 加载一个DCL文件中,这个DCL文 件可以包含多个对话框的定义。若加载成功 该函数返回一个整数,否则,返回一个负整 数。12) mode_tile函数格式:(mode_tile 控件操作名 mode) 功能:用于设置控件的显示状态。参数mode 的值和含义见下表:mode 含义0启用控件1禁用控件2设置聚焦的控件3高亮度显示编辑框中的内容4切换图像控件的高亮度显示13) new_dialog函数格式:(new_dialog 对话框名 dcl_id) 功能:初始化并显示对话框,若该函数调用 成功,将返回T,否则返回NIL。参数dcl_id 为(load_dialog)

6、函数返回的值。14) set_tile函数格式:(set_tile 控件操作名 value)功能:设置控件的值,参数value是要新设置 的值,为字符串类型。15) slide_image函数格式:(slide_image x1 y1 x2 y2 幻灯片名) 功能:在当前激活的图像控件中显示一个 AutoCAD幻灯片。显示位置由坐标点(x1,y1) 和(x2,y2)指定。 16) start_dialog函数格式:(start_dialog )功能:开始对话框并接受用户输入。在调用 该函数之前,你必须通过(new_dialog)函数来 初始化。同时这个对话框必须在一个动作表 达式或一个返回函数

7、调用(done_dialog)函数之 前,一直保持激活状态。17) start_image函数格式:(start_image 控件操作名) 功能:在图像控件中开始建立图像。应当与 函数(end_image)成对使用,在这两个函数之 间可以调用(fill_image), (slide_image)和 (vector_image)等函数建立图像。 18) start_list函数格式:(start_list 控件操作名 index )功能:开始处理由控件操作名指定的列表框 或弹出式列表控件中的选择列表。应与函数 (end_list)成对使用,在这两个函数之间可以 调用(add_list)来处理选择

8、列表。参数index指 出使用(add_list)时要改变的表项,可以省去 。19) unload_dialog函数格式:(unload_dialog dcl_id) 功能:卸载与dcl_id有关的DCL文件。 参数dcl_id是调用函数(load_dialog)时的 返回值。20) vector_image函数格式:(vector_image x1 y1 x2 y2 color )功能:在当前的图像控件中,由两点画 一条直线,颜色由color确定。6.2 对话框设计举 例例1、图幅单选按钮对话框设计:1) 对话框程序定义(dxan.dcl)dxan:dialog label=“确定图纸幅面“

9、; :boxed_radio_rowlabel=“幅面规格“; :radio_buttonlabel=“A0“; key=“a0“; :radio_buttonlabel=“A1“; key=“a1“; :radio_buttonlabel=“A2“; key=“a2“; :radio_buttonlabel=“A3“; key=“a3“; :radio_buttonlabel=“A4“; key=“a4“; :radio_buttonlabel=“A5“; key=“a5“; value=1; ok_cancel; 2) 对话框驱动程序设计(htf.lsp)例2、 带圆正多边形对话框驱动1)

10、 对话框设计程序(zdbx.dcl)zdbx:dialoglabel=“带圆正多边形“; :row :boxed_column :edit_boxlabel=“边数“;key=“number“;value=6; :edit_boxlabel=“半径“;key=“rad“;value=20; :boxed_column :radio_buttonlabel=“内接圆“;key=“nq“; :radio_buttonlabel=“外切圆“;key=“wq“;value=1; ok_cancel;2)带圆正多边形对话框驱动程序 (zdbx.lsp) (defun dbx () (setq id (l

11、oad_dialog “d:/cad_1/zdbx“) (if ( what 0) (draw_zdbx n r flag) );end带圆正多边形绘图及数据读取函数(defun draw_zdbx (n r flag) (setq bp (getpoint “nBase point:“) (command “circle“ bp r) (command “polygon“ n bp flag r) ) ;- (defun qsj () (setq n (atoi (get_tile “number“) (setq r (atof (get_tile “rad“) (if (= fg 1) (

12、setq flag “i“) (setq flag “c“) (setq what 1) );end 带圆正多边形对话框运行结果:例3、 等腰梯形对话框驱动1) 对话框设计程序(dytx.dcl)dytx:dialoglabel=“等腰梯形“; :row :boxed_column :edit_boxlabel=“上底“;key=“sd1“;value=30; :edit_boxlabel=“下底“;key=“xd1“;value=60; :edit_boxlabel=“高度“;key=“gd1“;value=40; :image_blockkey=“tx1“;width=18; :row :

13、retirement_buttonlabel=“显示梯形面积:“;key=xsmj;width=10; :edit_boxkey=mj1;width=10; :row :retirement_buttonlabel=“显示梯形周长:“;key=xszc;width=10; :edit_boxkey=zc1;width=10; ok_cancel;2)等腰梯形对话框驱动程序 (dytx.lsp) (defun c:tx (/ id) (setq id (load_dialog “d:shilidytx“) (if ( id 0) (exit) (if (not (new_dialog “dytx

14、“ id) (exit) (image1 “tx1“ “d:shilidytx“) (action_tile “xsmj“ “(calculate1)“) (action_tile “xszc“ “(calculate2)“) (action_tile “accept“ “(done_dialog)“) (action_tile “cancel“ “(setq flag 0) (done_dialog)“) (start_dialog) (unload_dialog id) (if (= flag 1) (dytx sd xd gd) (princ);end等腰梯形数据读取计算及回填函数(de

15、fun calculate1 () (setq sd (atof (get_tile “sd1“) (setq xd (atof (get_tile “xd1“) (setq gd (atof (get_tile “gd1“) (setq mj (+ (* sd gd) (* (- xd sd) 0.5 gd) (setq f1 (rtos mj 2 4) (set_tile “mj1“ f1) (setq flag 1);end ;- (defun calculate2 () (setq sd (atof (get_tile “sd1“) (setq xd (atof (get_tile “xd1“)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

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