第一范文网 - 专业文章范例文档资料分享平台

可视opendcl的学习笔记

来源:用户分享 时间:2025/6/3 15:05:48 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

ObjectDCL学习笔记(1)

初识ObjectDCL

AutoLisp简洁、易学、功能强大,可满足用户的绝大多数需求。对一般的AutoCAD用户来说,AutoLisp是进行开发的首选语言。但AutoLisp使用的对话框编程语言DCL和PDB却实在不敢恭维,其功能、界面、编程方法都不能令人满意。

ObjectDCL应运而生。 1.安装和设置ObjectDCL

1.1运行ObjectDCL文件包中的Setup.exe,一路Next下去,ObjectDCL就被安装到C:\\Program Files\\3rd Day Software\\ObjectDCL文件夹中。

1.2在安装ObjectDCL的文件夹中,有ObjectDCL.arx和ObjectDCL2004.arx两个arx库文件。ObjectDCL.arx用于Acad2000/2002,ObjectDCL2004.arx用于Acad2004。为方便编程,把它们拷贝到Acad的支持搜索路径中,或直接把安装ObjectDCL的文件夹设置为Acad的支持搜索路径。

1.3创建一个准备存放ObjectDCL编程结果的文件夹,假设为D:\\MyOdcl。把D:\\MyOdcl也设置为Acad的支持搜索路径。

现在就可以开始学习ObjectDCL了。 2.启动和认识ObjectDCL

在安装ObjectDCL的文件夹中,有个ObjectDCL.exe文件,它就是ObjectDCL的主程序。运行ObjectDCL.exe,即进入ObjectDCL编辑环境。

ObjectDCL的主窗口很简洁,各菜单项的意义也很清楚,且大部分都在工具条和4个停靠子窗口中有对应的功能,而View菜单是ObjectDCL工具条和下面要说明的4个工具停靠子窗口的开关。工具条中的第一个图标对应的是工程菜单Project的前5个菜单项,用来添加对话框窗体;工具条中的最后一个图标(照相机)对应的是工程菜单View/Edit Picture Folder菜单项,用来管理图形资源文件夹。

在ObjectDCL窗体的左侧,上面是控件工具箱(ToolBox),下面是控件上下次序显示调整窗口(Z/Tab Order)。

在ObjectDCL窗体的右侧,上面是工程结构树窗口(Project Tree),下面是对话框/控件属性(Properties)和事件(Events)窗口。

ObjectDCL窗体的中间,就是以后摆放新创建的对话框的位置了。 3.创建一个最简单的对话框

既然是要创建一个最简单的对话框,那就是所谓的“Hello”了。 3.1编写对话框驱动程序框架

在开始创建对话框以前,先创建一个对话框驱动程序的框架:

(defun C:MyHello()

(if (not (member \

(arxload \加载objectdcl.arx 失败.\ )

(princ) )

以MyHello.lsp为名保存到D:\\MyOdcl文件夹中备用。建议,MyHello.lsp的编辑器不要关闭,我们下面还要用到它。

3.2创建对话框

(1)在Projects菜单中选取Add Modal Form菜单项,窗体中就添加了一个没有控件的对话框。这个对话框的默认名为DclForm1。用鼠标单击对话框窗体,则ObjectDCL窗体中右下方的属性页(Properties)中显示出当前对话框的所有属性值。把标题栏文本 (TitleBarText)项的内容改为:“Hello”。

(2)在控件工具箱中选择Label控件放到对话框适当的位置。这个Label控件的默认名为Label1。 把Label1的标题(Caption)内容改为:“各位网友,新年好!”。 把Label1的字体(Font)改为你喜欢的字体和大小。 把Label1的背景颜色(BackColor)改成你喜欢的颜色。 把Label1的前景颜色(ForeColor)改成你喜欢的颜色。 调整对话框和Label1的大小。 (3)保存对话框文件

直接单击“Save”工具图标,把新设计的对话框以Hello.odc为名保存到D:\\MyOdcl文件夹中。我们这个Hello对话框就制作完成了。

3.3指定与对话框关联的Lisp程序

展开工程结构树窗口中的Visual / Auto Lisp File name节点,双击图标,在弹出的“打开”对话框中选择我们已预备好的程序文件D:\\MyOdcl\\MyHello.lsp。则两者就关联了起来。

4.完善控制对话框的Lisp程序

为了能让上面设计的对话框显示出来,需要在MyHello.lsp中添加几条命令。用鼠标右键点击对话框窗体中没有任何控件的位置,在弹出的鼠标菜单中选择Object Browser,则弹出Object Browser对话框。

4.1在Object Browser对话框中找到并选中Loadproject项,其右侧显示加载工程项的方法定义。点击[Copy To Clipboard] 按钮,则函数的定义已被复制到剪切板里。

进入MyHello.lsp的编辑器,把剪切板里的内容复制到MyHello.lsp程序的(princ)语句的前面。然后把这条新语句

(Odcl_LoadProject FileName [as Integer] [Optional] Reload [as T])

改为

(ODcl_LoadProject \

4.2在Object Browser对话框中找到并选中Show项,把Show方法的函数定义复制到MyHello.lsp程序的(princ)语句的前面。然后把这条新语句

(Odcl_Form_Show MyHello_DclForm1 [Optional] UpperLeftXCoordinate [as Integer] [Optional] UpperLeftYCoordinate [as Integer]) 改为

(Odcl_Form_Show \ 4.3完整的MyHello.lsp

(defun C:MyHello()

;确保加载ObjectDcl动态连接库 (if (not (member \

(arxload \加载objectdcl.arx 失败.\ )

;加载对话框odc文件

(ODcl_LoadProject \ ;显示DclForm1对话框

(Odcl_Form_Show \ (princ) )

5.运行MyHello

进入AutoCAD2000,加载MyHello.lsp。执行MyHello命令,显示的对话框如图所示。

通过上面的讨论,我们已经对ObjectDCL有了一个初步的了解。MyHello对话框尽管太简单,但包括了创建ObjectDCL对话框和编写对话框驱动程序的基本过程。下一次,我们再编制一个复杂一点的对话框,并对控件的事件进行编程。

注:本文经作者同意在本站使用,本来要放到CAD杂志中,但由于杂志一直不能出版,故先在此使用。

ObjectDCL学习笔记(2)

ObjectDCL控件的属性和事件

在ObjectDCL 2.1的控件工具箱中,有30个控件,其中的部分控件是DCL没有的。让我们用常用的控件创建一个稍微复杂的对话框,以便对控件的属性设置、属性提取和事件进行讨论。

在设计对话框之前,建议还是先创建一个AutoLisp框架程序,文件名叫MySetVar.lsp,还是存放到

D:\\MyODcl文件夹中。

1.对话框的静态属性设置

1.1设计对话框

运行ObjectDCL.exe,进入ObjectDCL编辑环境。添加一个模式对话框Form,然后像图2.1那样,摆上各个控件。然后,以MySetVar.odc为名存盘。当然,还是保存在D:\\MyODcl文件夹中。

1.2设置控件的属性

控件TextButton1:把Caption的属性值改为“浏览 <”。

控件TextButton2:把Caption的属性值改为“确 定”,把Enabled的属性值改为“False”。 控件TextButton3:把Caption的属性值改为“取 消”。 控件ComnoBox1:在List的属性值中输入:

AutoCAD DWG MicroStation DGN MapInfo MIF/MID ArcViewGIS Shape

控件ComnoBox2:不做改动。

控件ComnoBox3:在List的属性值中输入:

1:500 1:1000 1:2000

控件OptionList1:不做改动。 1.3指定对话框的关联程序

展开工程结构树窗口中的Visual / Auto Lisp File name节点,双击图标,在弹出的“打开”对话框中选择我们已预备好的框架程序文件D:\\MyOdcl\\ MySetVar.lsp。

2.给对话框的事件编程

在编辑器中打开对话框关联程序,MySetVar.lsp现在是下面的样子: (defun c:MySetVar(/ #file #form #map #scale #type #stat) ; Ensure the ObjectDCL.arx file is loaded (ObjectDCL_LoadArx)

; Call the method to load the odc file. (Odcl_LoadProject \

; Call the method to show the dialog box

(Odcl_Form_Show \ (if #stat (progn

(setq #file (strcat \图形文件 = \ (setq #form (strcat \数据格式 = \ (setq #map (strcat \图幅编号 = \ (setq #scale(strcat \比 例 尺 = \ (setq #type (strcat \数据类型 = \

(princ (strcat \

搜索更多关于: 可视opendcl的学习笔记 的文档
可视opendcl的学习笔记.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2ewja1mu2l5uqa87qrzn_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top