开发人员信息

AutoCAD 2008

开发人员信息

可能影响脚本的更改

对以下命令或系统变量的修改可能会影响已存在的脚本:

  • EXTEND - 对于 EXTEND 命令,如果在“选择要延伸的对象”提示下不选择对象,则现在将提示您指定窗交窗口的对角点。此更改可能会影响已存在的脚本,该脚本可调用 EXTEND 并提供未选择对象的拾取点。通过忽略未选择对象的点可以修复传统脚本。
  • -INSERT - 如果使用“块定义”对话框中的“按统一比例缩放”选项,则在使用 -INSERT 命令插入块时,将不再提示您为 X,Y,Z 坐标分别输入比例因子。
  • MENULOAD - 默认情况下,MENULOAD 命令仅加载 AutoCAD 2006 或更高版本中的 CUI 文件。要加载 AutoCAD 2006 或更高版本中的 MNU 或 MNS 文件,必须将扩展名明确地包含在文件名中,如下例所示:

    (command "menuload" "myMenu.mnu")


    但是,强烈建议您不要更改代码,而在运行使用传统菜单文件的应用程序之前,先在 AutoCAD 2008 中打开这些文件。AutoCAD 会自动将它们转换为 CUI 文件,并且 CUI 文件将通过使用不带扩展名的文件名的现有代码进行加载。

    应更改指定 MNU、MNS 或 MNC 扩展名的传统代码,以使其参照 CUI 文件,而且基于 AutoCAD 2007 的应用程序应附带 CUI 文件,而不是 MNU、MNS 或 MNC 文件。

  • TRIM - 对于 TRIM 命令,如果在“选择要修剪的对象”提示下不选择对象,则现在将提示您指定窗交窗口的对角点。此更改可能会影响已存在的脚本,该脚本可调用 TRIM 并提供未选择对象的拾取点。通过忽略未选择对象的点可以修复传统脚本。
  • Visual LISP

    通知

    • 在某些情况下,一个系统变量的更改会触发多次 vlr-sysVarWillChange 和 vlr-sysVarChanged 通知。

    夹点

    • AutoCAD 不再支持未选定对象上的夹点。因此,AutoLISP sssetfirst 函数的 gripset 参数将被忽略,ssgetfirst 将为第一个返回的选择集返回 nil。

    真彩色

    • 如果完全安装了 AutoCAD,则使用“真彩色”的实用程序位于“\Sample\VisualLISP”文件夹中的“color-util.lsp”文件中。这些实用程序用于与真彩色相关的操作,例如获取真彩色编号的部件,将颜色索引或颜色名转换为真彩色值,返回 DXF 组码列表,以及使用图元列表。

      使用以下 AutoLISP 函数可以访问“真彩色”用户界面:

      (acad_truecolordlg color [allowbylayer] [currentlayercolor])。
      通过对话框提示输入颜色。颜色参数是一个说明默认颜色的点对;点对的第一个元素必须是颜色相关 DXF 组码(62、420 或 430)之一。如果 allowbylayer 参数存在且不为 nil,则显示“随层”和“随块”按钮。如果操作成功,则该函数将返回说明选定颜色的一个或多个点对的列表。列表中发最后一个点对指示选定的颜色。如果用户取消对话框,则该函数返回 nil。

      (acad_truecolorcli color [allowbylayer] [alternatePrompt])。
      在命令行提示输入颜色。前两个参数与 acad_truecolordlg 相同,第三个参数是一个可选的提示字符串。如果省略此字符串,则默认值为“新颜色”。

    entmod 和 entmake 函数

    • 在 AutoCAD 2004 及更高版本中,entmod 和 entmake 函数在颜色操作方面中具有新的表现。DXF 组码 62 保留了 AutoCAD 颜色索引 (ACI) 值,而组码 420 保留了真彩色值。如果真彩色值与 ACI 值冲突,则 AutoCAD 将使用 420 值,因此在试图使用组码 62 值之前应删除组码 420 值。有关详细信息,请完整安装 AutoCAD 并参见 \Sample\VisualLISP 文件夹中的 color-util.lsp 文件。

    加载错误

    • 如果加载独立名称空间 VLX 时 LOAD 遇到错误,则某些函数可能在检测到错误之前已输出到当前文档名称空间中。必须确保修复此错误、重新编译并重载 VLX,才能确保所有函数的正确版本输出到当前文档。
    • 使用 CUILOAD 命令在 MDI 中加载部分菜单时,该菜单的 MNL 文件将为每个打开的文档加载一次,同时所有用户交互操作都发生在当前文档中。为避免在使用 AutoCAD 打开多个图形时出现多余的打印信息或用户提示,建议不要在 MNL LISP 代码中包含任何用户交互操作。而使用 MNL 代码为后续菜单项选择加载任何所需的 AutoLISP 文件。使用“acad.lsp”或“acaddoc.lsp”文件执行打开图形时要处理的 AutoLISP 代码。

    “多文档设计环境”对话框的显示

    • “多文档设计环境”对话框使用户可以更改 AutoLISP 环境初始化的默认功能。此对话框在以下情况下显示:
      • AcadLspAsDocDlg 注册键的“Do Not Show”值设置为 0。
      • 未运行任何脚本,并且未运行 AutoLISP 或 ActiveX 应用程序。
      • ACADLSPASDOC 系统变量设置为 0。
      • AutoCAD 搜索路径中存在 acad.lsp 文件。
      • AutoCAD 搜索路径中不存在 acaddoc.lsp 文件。
      • SDI 系统变量设置为 0。
      如果所有这些条件都为真,则在每个任务中首次打开第二个文档时,将显示“多文档设计环境”对话框。

    ActiveX 和 VBA

    AutoCAD 进程的可见性

    • 启动时运行的 VBA 脚本应检查 AutoCAD 进程是否可见。如果该进程不可见,则不应该执行脚本,因为该进程可能正在执行后台打印或发布操作。要检查 AutoCAD 进程是否可见,可以使用 AutoCAD 对象模型中 Application 对象的 Visible 特性。