CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2020 开发者帮助

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

2024-5-18 18:17| 发布者: admin| 查看: 169| 评论: 0|原作者: admin|来自: AutoCAD

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

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

注意:AutoLISP 中的 DCL 支持仅限于 Windows。

创建 DCL 文件

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

  1. 将以下代码复制到剪贴板。

    突出显示 DCL 代码并按 Ctrl+C,或右键单击并单击“复制”。

    hello : dialog
    {
      label = "Sample Dialog Box";
      : text {
        label = "Hello, world.";
      }
      ok_only;
    }
  2. 在 Visual LISP 编辑器中,单击 File New File。
  3. 在新的编辑器窗口中,按 Ctrl+V,或右键单击并单击粘贴。
  4. 单击“文件另存为”。在“另存为”对话框的“保存类型”下拉列表中,选择“DCL 源文件”。在“文件名”字段中,输入 hello.dcl。浏览到存储 DCL 文件的位置,然后单击保存。
    注意:确保将 DCL 文件保存到 AutoCAD 支持文件搜索路径中的某个文件夹。

显示对话框并响应用户按 OK

  1. 将以下代码复制到剪贴板。
    突出显示 DCL 代码并按 Ctrl+C,或右键单击并单击“复制”。
    (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)
    )
  2. 在 Visual LISP 编辑器中,单击 File New File。
  3. 在新的编辑器窗口中,按 Ctrl+V,或右键单击并单击粘贴。
  4. 单击“文件另存为”。在“另存为”对话框的“保存类型”下拉列表中,选择“Lisp 源文件”。在“文件名”字段中,输入 hello.lsp。浏览到要存储 LSP 文件的位置,然后单击保存。
    注意:确保将 LSP 文件保存到 AutoCAD 支持文件搜索路径中的某个文件夹。
  5. 单击“工具”(Tools)、“在编辑器中加载文本”(Load Text)。
  6. 在AutoCAD中,在命令提示下,输入hello,然后按Enter键。
  7. 在“示例对话框”中,单击“确定”。

下面逐行解释 AutoLISP 程序的作用:

  • 第 1 行 – 定义以局部变量 命名的命令。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 命令提示符下),则必须将它们作为一个语句输入。将它们包含在一个或另一个函数中。否则,交互式调用可能会冻结屏幕。在调试期间,调用和交互式功能非常有用。start_dialognew_dialogprognnew_dialognew_dialogstart_dialog

路过

雷人

握手

鲜花

鸡蛋

最新评论

群   号:715888130

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

GMT+8, 2025-6-3 05:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部