CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

示例:对话框快速概述 (DCL)

2023-1-8 09:17| 发布者: admin| 查看: 345| 评论: 0|来自: AutoCAD

摘要: 此示例说明如何使用 AutoLISP 创建基本对话框并显示它。

此示例说明如何使用 AutoLISP 创建基本对话框并显示它。

创建 DCL 文件

此 DCL 定义一个标记为“示例对话框”的对话框,其中包含一个文本磁贴和一个“确定”按钮。DCL 驻留在名为hello.dcl 的文件中。

hello : dialog
{
  label = "Sample Dialog Box";
  : text {
    label = "Hello, world.";
  }
  ok_only;
}
窗户
  1. 突出显示上面的示例 DCL 代码并按 Ctrl+C,或右键单击并选择“复制”以将文本复制到剪贴板。
  2. 执行下列操作之一:
    • (视窗 8.1)在“开始”屏幕上,键入注释,然后单击“记事本”。
    • (视窗 10)单击“开始”按钮“所有应用程序窗口附件记事本”。
  3. 在记事本中,在新编辑器窗口中单击,然后按 Ctrl+V,或右键单击并选择“粘贴”以粘贴剪贴板中的内容。
  4. 单击文件菜单另存为。
  5. 在“另存为”对话框中,浏览到要存储 DCL 文件的位置。
    注意:确保 DCL 文件保存到 AutoCAD 支持文件搜索路径中的某个文件夹中。
  6. 在“文件名”文本框中,键入hello.dcl
  7. 单击保存类型下拉列表,然后选择所有文件 (*.*)。
  8. 单击编码下拉列表,然后选择 ANSI。单击保存。
苹果操作系统
  1. 突出显示上面的示例 DCL 代码并按 Command+C,或辅助单击并选择“复制”以将文本复制到剪贴板。
  2. 在“访达”的 Mac OS 菜单栏上,点按“前往”菜单“应用程序”。
  3. 在“应用程序”窗口中,双击“文本编辑”。
  4. 在“文本编辑”的 Mac OS 菜单栏上,单击“文本编辑”菜单“偏好设置”。
  5. 在“首选项”对话框中的“格式”部分下,单击“纯文本”。单击关闭按钮。
  6. 在编辑器窗口中单击,然后按 Command+V,或辅助单击并选择粘贴。
  7. 在 Mac OS 菜单栏上,单击“文件”菜单“另存为”。
  8. 在“无标题”对话框中,浏览到要在其中保存 DCL 文件的文件夹。
    注意:确保 DCL 文件保存到 AutoCAD 支持文件搜索路径中的某个文件夹中。
  9. 在另存为文本框中,键入hello.dcl,然后单击保存。
  10. 如果系统提示使用 .dcl 文件扩展名,请单击“使用”。鼎通.

显示对话框并响应用户按“确定”

(defun C:HELLO ( / dcl_id )
  (setq dcl_id (load_dialog "hello.dcl")) ; Load the DCL file.
  (if (not (new_dialog "hello" dcl_id))   ; Initialize the dialog.
    (exit)                                ; Exit if this does not work.
  )
  (start_dialog)                          ; Display the dialog box.
  (unload_dialog dcl_id)                  ; Unload the DCL file.
 (princ)
)
  1. 突出显示上面的示例 LSP 代码并将其复制到剪贴板。
  2. 在记事本或文本编辑中创建一个新文件,并将其保存到与以前使用 hello.lsp 文件名保存的hello.dcl文件相同的位置
  3. 在 AutoCAD 的命令提示下,输入appload
  4. 在“加载/卸载应用程序”对话框中,浏览并选择hello.lsp文件。单击加载。
  5. 如果显示“文件加载 - 安全问题”对话框,请再次单击“加载”。
  6. 单击“关闭”返回到应用程序窗口。
  7. 在命令提示下,输入hello
  8. 在“示例”对话框中,单击“确定”。

下面逐行解释 AutoLISP 程序的功能:

  • 第 1 行 – 定义一个以局部变量 of 命名的命令。HELLOdcl_id
  • 第 2 行 – 使用函数将 DCL 文件加载到内存中。该函数返回 DCL 标识号。您需要在后续函数调用中标识对话框。load_dialogload_dialog
  • 第 3-5 行 – 使用函数初始化对话框。对话框名称和 DCL 标识号作为参数传递。new_dialog

    使用其他对话框,还可以设置磁贴值、列表和图像。上面的此 DCL 示例使用名为的预定义磁贴,因此除非要覆盖其默认值,否则无需初始化磁贴。磁贴还具有一个名为“已分配”的操作。如果用户按“确定”按钮,AutoCAD 会将调用传递给 AutoLISP 应用程序并结束对话框。ok_onlyok_onlydone_dialogdone_dialog

  • 第 6 行 – 对话框的控制权将传递给 AutoCAD 以使用该函数显示。start_dialog
  • 第 7 行 – 使用函数完成响应后从内存中删除对话框。unload_dialog
  • 第 8 行 – 静默存在命令。
  • 第 9 行 – 结束 HELLO 命令的定义。

    为简单起见,此示例中不包含任何错误处理。

请注意,在用户选择其关联操作表达式调用的磁贴(通常是按钮)之前,调用将保持活动状态。调用可以由磁贴显式发出。如果所选磁贴将调用设置为,则调用也会发出。start_dialogdone_dialogdone_dialogdone_dialogis_canceltrue

谨慎:理论上,对话框工具在您调用时控制输入,但操作系统在您调用时控制输入。这对编写程序没有影响。但是,如果以交互方式调用这些函数(在 AutoCAD 命令提示符下),则必须将它们作为一个语句输入。将它们括在另一个函数中。否则,交互式调用 tocan 将冻结屏幕。在调试期间,以交互方式调用可能很有用。start_dialognew_dialogprognnew_dialognew_dialogstart_dialog

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 12:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部