dcl驱动程序

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

20112011-1-2
AutoCAD二次开发——DCL对话框基础 AutoCAD二次开发——DCL对话框基础
12
6.下拉选单 popup_list: 6.下拉选单
用途:功能类似list_box,正常状况属于收缩单 用途 : 功能类似 , 一列状态。 右侧有一向下箭头, 选取后, 一列状态 。 右侧有一向下箭头 , 选取后 , 会拉下一 列选单供用户选取。 列选单供用户选取。 实例6: 实例 :
AutoCAD二次开发 AutoCAD二次开发 DCL对话框基础 DCL对话框基础
标准默认的DCL单一对象 。 设计好 单一对象。 设计好DCL对 标准默认的 单一对象 对 话画面后, 真正让对话框各DCL对象动起来的 话画面后 , 真正让对话框各 对象动起来的 “幕后高手”就是AutoLISP ,否则,光有漂亮 幕后高手”就是 否则, 是没有用的。 的DCL是没有用的。 是没有用的
20112011-1-2 AutoCAD二次开发——DCL对话框 AutoCAD二次开发——DCL对话框 基础 17
2.显示特定的对话框(new_dialog
20112011-1-2
AutoCAD二次开发——DCL对话框基础 AutoCAD二次开发——DCL对话框基础
4
DCL程序设计的基本结构(实例)
name:dialog{ name:dialog{ label=“对话框DEMO”; label=“对话框DEMO”; :edit_box{ label=“编辑框”; label=“编辑框”; edit_width=12; key=“edit_1”;} :button{ label=“按钮”; label=“按钮”; width=8; key=“button_1”;} ok_cancel; }//end dialog
按钮 编辑框 图像按钮 列表框 下拉列表 单选按钮 滑动条 切换开关
7
AutoCAD二次开发——DCL对话框基础 AutoCAD二次开发——DCL对话框基础
1.按钮button 1.按钮 按钮button
用途: 以按钮上的文字提示用户, 用途 : 以按钮上的文字提示用户 , 一触动此按 钮要执行某一动作。 钮要执行某一动作。 实例1: 实例 :
20112011-1-2 AutoCAD二次开发——DCL对话框基础 AutoCAD二次开发——DCL对话框基础 2
4.适时的增加批注,将程序更具可读性、 4.适时的增加批注,将程序更具可读性、 学习性及完整性,DCL程序中的批注有 学习性及完整性,DCL程序中的批注有 两种方式(请注意,不能用AutoLISP的 两种方式(请注意,不能用AutoLISP的 “;”分号)。 ;”分号)。 ※ 第一种方式:加上“//”两个斜线, 第一种方式:加上“//”两个斜线, 双斜线后的一行文字为批注。 如: //本DCL设计时间2007/6 //本DCL设计时间2007/6 //设计者:四川理工学院 //设计者:四川理工学院 //欢迎学习 //欢迎学习
驱动程序的结构框架
20112011-1-2
AutoCAD二次开发——DCL对话框 AutoCAD二次开发——DCL对话框 基础
16
1.加载对话框DCL文件(load_dialog Dclfile) 加载对话框DCL文件 文件( Dclfile) 使用对话框的第一件事就是通过load_dialog函数 使用对话框的第一件事就是通过load_dialog函数 加载DCL文件(可省略扩展名),该函数可包含 加载DCL文件(可省略扩展名),该函数可包含 多个对话框。若加载成功,则返回一个大于零的 正整数值(假设存入变量Dcl_id中);否则返回 正整数值(假设存入变量Dcl_id中);否则返回 一个负整数,这个Dcl_id在随后调用new_dialog和 一个负整数,这个Dcl_id在随后调用new_dialog和 unload_dialog函数时可用作被装入的DCL句柄使 unload_dialog函数时可用作被装入的DCL句柄使 用。同时可以检测到该值不大于零时,可以及时 地显示出错信息并返回系统。 如:(setq 如:(setq dcl_id (load_dialog “*.dcl”)) *.dcl” 若加载成功,返回大于0的值,否则返回小于0 若加载成功,返回大于0的值,否则返回小于0的 值。
20112011-1-2
AutoCAD二次开发——DCL对话框基础 AutoCAD二次开发——DCL对话框基础
9
3.单选框 radio_button: 3.单选框
用途:需求功能或数据是多选一时。 用途:需求功能或数据是多选一时。 实例3: 实例 :
20112011-1-2
AutoCAD二次开发——DCL对话框基础 AutoCAD二次开发——DCL对话框基础
20112011-1-2 AutoCAD二次开发——DCL对话框基础 AutoCAD二次开发——DCL对话框基础 6
DCL控件的类型及其相应的控 DCL控件的类型及其相应的控 件
操作控件 1 2 3 4 5 6 7 8
20112011-1-2
button edit_box image_button list_box popup_list radio_button slider toggle
10
4.切换开关(复选框) toggle: 4.切换开关 复选框) 切换开关(
用途:控制此定义的功能或选项是“开”或 当开关内出现打勾记号时, 响应值为“ , “ 关 ” 。 当开关内出现打勾记号时 , 响应值为 “ 1”, 反之,则为“ 。 反之,则为“0”。 实例4: 实例 :
20112011-1-2
20112011-1-2
AutoCAD二次开发——DCL对话框基础 AutoCAD二次开发——DCL对话框基础
13
DCL驱动程序 DCL驱动程序(AutoLISP) 驱动程序(AutoLISP) ——AutoLISP控制DCL的关键技术 AutoLISP控制 控制DCL的关键技术
对于一个完整的程序来说,只有漂亮的对 话框界面是不够的。 AutoCAD的对话框驱动程序可由AutoLISP AutoCAD的对话框驱动程序可由AutoLISP 完成,为了便于学习和理解驱动程序的主 要构造及解决方法,我们以AutoLISP程序 要构造及解决方法,我们以AutoLISP程序 来介绍AutoCAD中的对话框处理函数。 来介绍AutoCAD中的对话框处理函数。
20112011-1-2 AutoCAD二次开发——DCL对话框基础 AutoCAD二次开发——DCL对话框基础 1
DCL基本语法结构
1.以文件形态存在的DCL程序(ASCLL文 1.以文件形态存在的DCL程序(ASCLL文 件),其扩展名最好是.DCL。 ,其扩展名最好是.DCL。 2.编写的环境不挑剔,只要是一般的文本 2.编写的环境不挑剔,只要是一般的文本 编辑软件均适用(如记事本Notepad 编辑软件均适用(如记事本Notepad、 Notepad、 Wordpad、 Wordpad、Visual Lisp等)。 Lisp等)。 3.一个DCL文件内,可以设计多组的 3.一个DCL文件内,可以设计多组的 dialog对话界面如同一个LISP程序内可以 dialog对话界面如同一个LISP程序内可以 设计多个可执行命令一样。
AutoCAD二次开发——DCL对话框基础 AutoCAD二次开发——DCL对话框基础
11
5.图像按钮 image_button: 5.图像按钮
用 途 : 与 button 按 钮 功 能 类 似 , 差 异 在 于 image_button 的框内提示图形可以是幻灯片 的框内提示图形可以是幻灯片SLD、 、 填满单一色块、或绘制示意线。 填满单一色块、或绘制示意线。 实例5: 实例 :
功能简述
unload_dialog new_dialog start_dialog done_dialog action_tile
20112011-1-2
释放DCL 释放DCL 激活DCL对话框画面 激活DCL对话框画面 将控制权交给DCL 将控制权交给DCL 终止显示当前DCL对话框 终止显示当前DCL对话框
20112011-1-2
AutoCAD二次开发——DCL对话框基础 AutoCAD二次开发——DCL对话框基础
3
※ 第二种方式:以“/*”及“*/”之间夹 第二种方式:以“/*”及“*/”之间夹 带的方式,中间的文字内容不受行数限 制。 如:/* 这是DCL批注测试范例 如:/* 这是DCL批注测试范例 以夹带的方式处理这三行说明 如此一来,才不用在每行前面都 要加双斜线 */
两个最重要的DCL文件 文件 两个最重要的
文件夹下, 文件, 在CAD的SUPPORT文件夹下,有两个重量级的 的 文件夹下 有两个重量级的DCL文件,非常重要, 文件 非常重要, 不要轻易加以修改!以免造成CAD无法正常执行的惨状! 无法正常执行的惨状! 不要轻易加以修改!以免造成 无法正常执行的惨状 1.BASE.DCL 内含 内含DCL的原始定义与整合性 的原始定义与整合性DCL对象定义。 对象定义。 的原始定义与整合性 对象定义 2.ACAD.DCL 内含 内含CAD所用的各个 所用的各个DCL画面,是一个不错的观摩学 画面, 所用的各个 画面 习文件。 习文件。
20112011-1-2 AutoCAD二次开发——DCL对话框基础 AutoCAD二次开发——DCL对话框基础 5
说明: ※ NAME相当于AutoLISP中的defun后定 NAME相当于AutoLISP中的defun后定 义的函数或程序一样。 ※ “:dialog”相当于AutoLISP中的defun函数 “:dialog”相当于AutoLISP中的defun函数 。 ※ “:edit_box”与“:button”都是DCL对象。 “:edit_box”与“:button”都是DCL对象。 ※ “label”、“width”与“edit_width”都是各 “label”、“width”与“edit_width”都是各 对象的属性,属性值设定后,都需要加一个“; ”分号。 ※ 对话框定义结束前,请注意一定至少有 一个“OK”或“Cancel”键。 一个“OK”或“Cancel”键。 ※ 属性key值,相当于各DCL对象的名称 属性key值,相当于各DCL对象的名称 ,如“edit_1”与“button_1”,它们非常重要,是 ,如“edit_1”与“button_1”,它们非常重要,是 LISP与DCL沟通的惟一桥梁,若DCL对象未定义 LISP与DCL沟通的惟一桥梁,若DCL对象未定义 key值,则根本无法用LISP控制信息的设定、取得 key值,则根本无法用LISP控制信息的设定、取得 与修改、变化。
20112011-1-2 AutoCAD二次开发——DCL对话框 AutoCAD二次开发——DCL对话框 基础 14
AutoLISP控制 AutoLISP控制DCL相关函数一览表 控制DCL相关函数一览表
AutoLISP函数名 AutoLISP函数名 加载与释放DCL 加载与释放DCL
load_dialog 加载DCL文件,并返回一个编号整数值 加载DCL文件,并返回一个编号整数值
20112011-1-2
AutoCAD二次开发——DCL对话框基础 AutoCAD二次开发——DCL对话框基础
8
2.编辑框 edit_box: 2.编辑框
用途: 参数化设计的数值字符串输入。 用途 : 参数化设计的数值字符串输入 。 编辑框 前可带提示文字( 属性) 前可带提示文字(label属性)。 属性 实例2: 实例 :
触发DCL对象,并执行其后指定的动作及表达式 触发DCL对象,并执行其后指定的动作及表达式
AutoCAD二次开发——DCL对话框 AutoCAD二次开发——DCL对话框 基础 15
激活与终止dialog对话框 激活与终止dialog对话框 dialog
选择与触发DCL对象、连接、调用子程序 选择与触发DCL对象、连接பைடு நூலகம்调用子程序
相关文档
最新文档