Opendcl制作简单对话框

合集下载

DCL对话框自学教程

DCL对话框自学教程

第1课
<第一篇 基本知识> (第 2 节)
定义档 BASE.DCL
ACAD.DCL
预设在 SUPPORT 的目录中,它包含了各元件的原型定义,及各类型巳 定义的其它基本元件;而所有自行开发的对话方块定义档,都可以 使用在 BASE.DCL 定义档中的各个元件 预设在 SUPPORT 的目录中,它包含了 AutoCAD 中所有标准对话方块 的定义
引数是要载入的对话框定义档名称字串(所以要在前后加双引号);若不设定 副档名则预设为.DCL 函数会依资源搜寻路径找寻该定义档;不在搜寻路径中的档案,要在档案名 称前加上指定的路径 函数若成功载入该定义档,会传回一正整数值的档案处理码,供其它函数呼 叫使用;无法载入时则传回负整数值 一般会将传回的档案处理码以 SETQ 函数存入变数中 e.g. (SETQ DCL_ID (LOAD_DIALOG "C:/RECT.DCL"))
课程简介
DCL 对话框自学教程
课程主要介绍 AutoLISP 程式的编写,配合使用 DCL(Dialog Control Language) 语言,作对话方框的开发及应用.本课程只适合对 AutoLISP 程式设计有相当认识 之人仕.全课共分为 12 篇,每篇一个主题;而每篇再分为若干小节,每天顺序显示.
表示如果要设定对话框显示时的位置则必须同时设定预设动作对话框位置为2d的点串列指定对话框左上角的xy座标如果以11为对话框位置则会在绘图萤幕的中心点开启对话框如果成功开启对话框函数会传回t否则传回nil开始接受使用者输入startdialog函数不须提供任何引数使前一个用newdialog函数开启的对话框开始作用直至动作表示式或回复函数呼叫donedialog函数为止一般donedialog与关键字accept一般是按下确定按钮或关键字cancel一般是按下取消按钮相关若传回值为1表示使用者按下确定钮结束对话框

DCL对话框基础知识

DCL对话框基础知识

:slider 滚动条
:toggle 开关
每个片型框包含一系列的属性,这些属性的值确定了片型框的位置、大小、长度、高度和文件标识等,例如lable属性确定了在片型框上显示的文字。用户可以根据dcl语法将这些基本的片型框组装起来,形成更为复杂,功能更为详尽的对话框,也可以定义与基本片型框无关的新片型框,并将其与基本片型框组合成新的片型框组。为了方便对话框的布局,可将一行或一列片型框当作一个新的片型框,并在其周围画上边框。对话框的基本布局有以下几种:
:column 列。定义,可以与行、列嵌套。
:row 行。片型框组按行平行分布,显示顺序同column,也可与行列嵌套。
:radio_column 单选列。包含一列单选片型框,同时只能选择一个片型框。
:radio_row 单选行。包含一行单选片型框,同时只能选择一个片型框。
(load_dialog dclfile)用与装入一个dcl文件,返回一个整数标识。
(unload_dialog dcl_id)卸载标识为dcl_id的dcl文件。
(new_dialog dialog_name dcl_id)初始化对话框,并在屏幕显示对话框,其中dialog_name是在对话框文件中定义的对话框名称。
下面的autolisp程序就是对上面的example.dcl对话框文件的管理:
;;;example.dcl管理example.dcl对话框文件的autolisp程序
(defun c:showdcl(/dcl_id)
(setq dcl_id (load_dialog"example.dcl"))
在可编程对话框pdb中已预定义了以下基本片型框:
:dialog 对话

可视opendcl的学习笔记

可视opendcl的学习笔记

ObjectDCL学习笔记(1)初识ObjectDCLAutoLisp简洁、易学、功能强大,可满足用户的绝大多数需求。

对一般的AutoCAD用户来说,AutoLisp 是进行开发的首选语言。

但AutoLisp使用的对话框编程语言DCL和PDB却实在不敢恭维,其功能、界面、编程方法都不能令人满意。

ObjectDCL应运而生。

1.安装和设置ObjectDCL1.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菜单项,用来管理图形资源文件夹。

opendcl

opendcl

似乎很久没有弄过DCL这个东西了。

今天又看了下,DCL有他自己的优点,就是不需要额外的安装库等。

但是DCL编写出来的对话框有点难看。

所以有人就开始了像OpenDCL这样一类比较漂亮的东西。

还好,这个东西是免费的。

很适合我。

接下来我就直接做个简单的介绍。

DCL语言相信大家接触过,这个没有什么集成的开发工具,所有的东西只能靠自己手写,所以写代码就是一件非常麻烦的事情。

还好,它很简单,所以用的相对较多。

但是现在网上出来了DCL的代替品—OpenDCL,我们得尝一尝了。

首先,下载OpenDCL:/wordpress/其次,安装CAD,现在用CAD2008及以上,顺便提下,2009和2010的默认界面很漂亮,高贵的气质。

下面,举个例子,说明如何应用。

1.打开OpenDCL Studio,单击菜单“project”->“Add Modal Dialog” ,这个时候你会看到出现了一个空的窗体。

如图中的第一部分所示:有了这个空的窗体后,需要用到的控件就能够画在上面了。

接下来我们就在空白窗体上放置两个东西:文本标签和按钮。

2.在空白窗体上放置文本标签和按钮这个工作很简单,读者自己完成就行了。

完成后结果如下:完成这个工作后,将工程存为“HelloWorld.odcl” 。

当然为了在CAD中能够调用,我们最好将它保存在CAD支持的搜索路径中。

既然已经有了对话框,那么我们就可以在CAD中应用了。

如何用呢?和DCL 一样,需要lisp程序的驱动。

3.编写驱动程序。

打开任意的记事本,键入以下代码:(command "OPENDCL")(defun c:Hello (); 加载对话框文件(dcl_Project_Load "HelloWorld" T); 显示对话框dcl_Form_Show HelloWorld_Form1)(princ))其中dcl_Project_Load 后面的"HelloWorld"是对话框文件(工程)的路径名,T指的是重新加载,其中的HelloWorld_Form1应该是对话框的名字,从第一个图片的第三部分来看,对话框的名字应该是Form1,但是在程序中是HelloWorld_Form1,那就说明了一个问题:在程序中,工程名+对话框名=真正使用的名字。

对话框设计(1)

对话框设计(1)

5.6 (dimx_tile key) 返回控件的宽。 5.7 (dimy_tile key) 返回控件的高。 5.8 (start_image key)打开图像,准备建立图像。 5.9 (vector_image x1 y1 x2 y2 color)按给定坐标和颜色 画线。 5.10 (fill_image x1 y1 x2 y2 color)按给定坐标和颜色画 填充的矩形。 x1,y1 x1,y1 X2,y2
装入DCL文件 启动对话框
设置控件的初值
设置控件的动作 显示对话框控制权交给用户
(start_dialog)
(done_dialog[status])”) (unload_dialog dcl_id)
OK按钮动作,读 数据,对话框消失
Cancel 按钮 对话框消失
卸载对话框文件
hello对话框的驱动程序 (defun c:hello ( / dcl_id ) (setq dcl_id (load_dialog “test.dcl”));装入DCL文件
预视对话框
VLISP 下拉菜单
Tools Interface Tools Preview DCL in Editor
四. 编写对话框驱动程序
(load_dialog “test.dcl”) (new_dialog “hello” dcl_id) ) (set_tile key value) (action_tile key “动作”)
第九讲
对话框设计
(一)
一. 概述
对话框的特点:形象、直观、随意输入、 随时修改,鼠标、键盘并用,操作方便。 对 话 框 用 DCL ( Dialog Control Language)定义,得到 “.DCL” 类型的文 件,用 AutoLISP 或 C 程序驱动。 也可以用 VB、VC++ 通过 MFC 定制。 AutoCAD 系 统 定 义 的 对 话 框 存 放 于 ACAD.DCL文件。 文件 BASE.DCL 为用户提供了一些常用的 标准控件和组件。

对话框的设计与制作

对话框的设计与制作

THANKS FOR WATCHING
感谢您的观看
要求用户输入一些信息,如 文本、数字等,通常用于表
单填写、搜索等场景。
列出多个选项供用户选择 ,用户可以从下拉列表中 选择一个或多个选项。
优秀对话框实例
模态对话框
在用户进行某项操作时弹出一个 对话框,要求用户进行确认或选 择,通常用于需要用户重点关注
的操作。
提示对话框
在用户进行某项操作时弹出一个对 话框,提示用户该操作的意义和后 果,帮助用户更好地理解操作的含 义。
04 对话框的制作技巧
使用合适的字体和颜色
字体选择
选择清晰易读的字体,确保用户 在阅读对话框内容时不会感到疲 劳。
颜色搭配
使用适当的颜色搭配,突出重要 信息,同时保持整体视觉上的协 调和美观。
保持对话框的简洁明了
精简内容
避免在对话框中包含过多的信息,只 保留关键内容,以便用户快速理解和 操作。
02 对话框的设计原则
用户体验原则
01
02
03
明确目的
对话框的设计应明确其目 的,确保用户能够快速理 解并完成所需操作。
简洁明了
对话框的内容应简洁明了, 避免过多的文字和不必要 的元素,以免干扰用户。
易于操作
对话框的操作应简单易懂, 避免用户在操作过程中产 生困惑或误操作。
信息架构原则
信息分类
清晰度
对话框中的文字、图标等元素应清晰 可辨,以确保用户能够快速获取信息。
03 对话框的元素设计
文本设计
总结词
文本是对话框中最重要的信息传递方式,需要清晰、简洁、 易于理解。
详细描述
文本设计需要考虑字体、字号、颜色、对齐方式等元素,以 确保信息传递的准确性和可读性。同时,对于重要信息或提 示信息,可以使用加粗、斜体或不同颜色等方式进行强调。

AutoCAD可视化对话框开发工具OpenDCL使用简介

AutoCAD可视化对话框开发工具OpenDCL使用简介

文章编号:1672-8262(2009)06-87-03 中图分类号:P209 文献标识码:BAutoCAD 可视化对话框开发工具OpenDCL 使用简介兰度** 收稿日期:2009 02 12作者简介:兰度(1977 ),男,工程师,主要从事城市测绘技术及AutoCAD 应用开发工作。

(南宁市勘测院,广西南宁 530001)摘 要:Opendcl 是A utoCAD 可视化对话框界面开发的第三方工具,适用于L isp /V li sp 开发环境,使用简单,功能强大,使您通过L ISP /V li sp 就能充分利用W i ndow s 资源,制作出漂亮实用的对话框界面;本文通过简单实例介绍在V isuale L isp 开发环境下,利用O pendcl 可视化对话框开发工具进行A utoCAD 对话框开发的方法。

关键词:Au t oC A D ;L i sp /vlisp ;DCL;O penDCL;O b j ect DCL 可视化对话框1 引 言对一般的Auto CAD 用户来说,Lisp /V lisp 是进行Au -toC AD 二次开发的首选语言。

但Lisp /V lisp 使用的对话框编程语言DCL 和PDB 没有一个可视化的编程环境,主要依靠开发者手工写入代码,且与Lisp /V lisp 的数据交换和相互控制实现起来比较麻烦,难于掌握。

而Ope nDCL 是一款可视化的对话框制作工具,并且是一款完全免费的开源软件,起源于3r d Day 软件公司著名的商业软件Object D CL ,两者都是同一个作者开发出来的,功能基本一样,他们的目标正是要取代原有的DCL 语言。

2 OpenDCL 软件的下载和安装2 1 OpenDCL 的下载你可以登陆网址:http ://sourceforge .net/pro j e cts /opendcl 或者http ://opendc.l co m /wordpress/免费下载OpenDCL 软件。

DCL对话框自学教程

DCL对话框自学教程

DCL对话框自学教程DCL(Dialog Control Language)是一种用于创建对话框的编程语言。

DCL对话框可以用于创建图形用户界面(GUI),以便用户可以与程序进行交互。

在这篇自学教程中,我们将学习如何使用DCL语言来设计和创建自定义对话框。

第一步是了解DCL的基本语法。

DCL使用一种类似于AutoLISP的语法,并且集成到AutoCAD环境中。

如果您之前已经有AutoLISP的经验,那么学习DCL将会更加容易。

在DCL中,对话框由一系列的控件组成,如文本框、按钮、下拉列表等。

您可以使用DCL语言来定义这些控件的属性和行为。

```lispdialoglabel = "My Dialog";:edit_boxkey = "my_textbox";label = "Enter Text:";}:buttonkey = "my_button";label = "OK";on_click = "(setq my_text (get-kword));";}```现在让我们学习如何处理对话框中的输入。

在上面的代码中,我们在按钮的`on_click`属性中定义了`(setq my_text (get-kword));`,这段代码将在按钮被点击时执行。

`get-kword`函数用于获取文本框中的输入,并将其保存到一个变量`my_text`中。

为了展示输入的结果,我们可以在代码的最后添加一行代码来显示一个提示框。

完整的代码如下所示:```lispdialoglabel = "My Dialog";:edit_boxkey = "my_textbox";label = "Enter Text:";}:buttonkey = "my_button";label = "OK";on_click = "(setq my_text (get-kword));(alert (strcat \"You entered: \" my_text));";}```在这个代码中,我们通过使用`(alert (strcat \"You entered: \" my_text))`来显示一个提示框,其中包含了用户在文本框中输入的内容。

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

Opendcl工具制作简单对话框
一、使用前准备工作
第一步:安装编辑和支持工具
1、OpenDCL.Studio.ENU.5.1.1.5.msi →编程序使用
2、OpenDCL.Runtime.5.1.1.5.msi →自编工具支持文件。

第二步:创建自己的文件存放目录
新建“Chaiyu”文件夹,存放在位置“C:\Program Files\Chaiyu”。

同时将该文件设置为AutoCAD支持搜所目录。

-→保证自编工具正常加载。

第三步:复制基础文件
1、将Opendcl工具的“samples”文件中的"_OpenDclUtils.lsp"文件复制到“Chaiyu”文件夹。

同时将该文件中的" SamplesFolder"改成" Chaiyu Folder"。

二、定制简单对话框
第一步:建立所需文件
1、在“Chaiyu”文件夹新建“test.lsp
件。

2、启动“Opendcl”工具。

点击新建“Add
modal dailog”,在Properties(属性)面板中
将“name”定义为“Demotest”。

最后将文件保存
到“Chaiyu”文件夹,文件名设置为
“test.odcl”。

同时将“Title Bar Text
“测试”。

3、在右图所示窗口中点击“”设置
“test.lsp”连接。

第二步:定义“test.lsp”和“test.odcl”文件。

1、打开“test.lsp”文件,并输入如下函数(用于加载)
(DEFUN c:test ( / )
(or LoadRunTime (load "_OpenDclUtils.lsp") (exit))
(LoadRunTime)
(LoadODCLProj "test.odcl")
(dcl_FORM_SHOW test_Demotest)
(PRINC)
)
2、在对话框文件中填加一
个“Text Botton
按钮,在其属性面板中将
“name”设置为“cmd1”,
“Caption”设置为“直线”。

3、设定“直线“按钮动作。

在“Events”面板中选中
“Clicked”项,出现
“c:test_demotest_cmd1_OnC
licked”。

点保存。

再点击
后打开“test.lsp”
文件,选择粘贴。

出现如下函
数:
(defun c:test_demotest_cmd1_OnClicked (/)
(dcl_MessageBox "To Do: code must be added to event
handler\r\nc:test_demotest_cmd1_OnClicked" "To do")
)
将函数更改为:
(defun c:test_demotest_cmd1_OnClicked (/)
(dcl_Form_Close test_Demotest) ;关闭对话框
(command “line” );执行画线命令。

)
Test.Lsp源码
(DEFUN c:test ( / )
(or LoadRunTime (load "_OpenDclUtils.lsp") (exit)) (LoadRunTime)
(LoadODCLProj "test.odcl")
(dcl_FORM_SHOW test_Demotest)
(PRINC)
)
(defun c:test_demotest_cmd1_OnClicked (/)
(dcl_Form_Close test_Demotest)
(command “line” )
)
Test.odcl界面。

相关文档
最新文档