关于文件组织

程序文件和支持文件的默认文件夹结构旨在有效地将这些文件组织到逻辑组中。

如果程序和支持文件的默认组织不符合您的需要,可以对其进行更改。但有些应用程序需要在特定位置查找某些文件,用户进行修改时应避免与这些应用程序的要求冲突。如果未指定包括驱动器和文件夹的完整路径,则程序仅能定位那些在其库搜索路径中找到的文件。

该程序参照操作系统的用户配置来识别本地和可漫游的可自定义文件应存储的位置。可以使用以下系统变量来访问本地和可漫游文件夹的位置:

从 Windows 上基于 AutoCAD 2013 SP1 的产品和 AutoCAD 2014 for Mac 开始,仅可从产品的默认安装文件夹加载保留的 acad<release_number>.lspacad<release_number>doc.lsp 文件及其后续文件。根据 SECURELOAD 系统变量的设置,TRUSTEDPATHS 系统变量将指定基于 AutoCAD 的产品可以从中加载并执行包含代码的其他文件的文件夹。此外,LEGACYCODESEARCH 系统变量控制是否搜索起始文件夹以获取可执行文件。

注: AutoCAD LT 不支持 AutoLISP 应用程序。

下面的 AutoLISP 示例代码定义了 CUSTFILES 命令并且将在安装了可漫游的可自定义文件的位置上打开 Windows® 资源管理器或文件资源管理器。

注: SHELL 命令仅在 Windows 上可用并且 AutoLISP 在 AutoCAD LT 中不可用。
(defun c:custfiles ()
  (command "shell" 
    (strcat "explorer \"" (getvar "roamablerootprefix") "\"")
  )
 (princ)
)

库搜索路径

库搜索路径用于在用户未指定完整路径名时指定程序搜索文件的位置,如下所示:

根据当前环境,两个或多个文件夹可能相同。

重要: 从基于 AutoCAD 2016 的产品开始,LEGACYCODESEARCH 系统变量可控制是否搜索“起始”文件夹和“图形”文件夹来获取可执行文件。由于“起始”文件夹和“图形”文件夹通常是恶意软件攻击的目标,因此建议您将 LEGACYCODESEARCH 保持设置为 0(零),即关闭。

如果文件不在此搜索路径中,则必须指定其完整或相对路径名和文件名,程序才能找到该文件。例如,如果要将 part5.dwg 文件插入到当前图形中,且该文件不在库搜索路径中,则必须基于库搜索路径中的有效路径来指定其完整路径名称或相对路径名称。相对路径名称显示如下:

命令:-insert

输入块名或 [?]: /files2/olddwgs/part5

文件夹结构

该程序将使用树状结构的文件夹和子文件夹。建议用户将补充文件(例如,AutoLISP 应用程序(不在 AutoCAD LT 中))、自定义文件或第三方应用程序与已安装的程序文件和支持文件分开存放。这样更容易查找可能的冲突,并可以单独升级每个应用程序,而不影响其他应用程序。

程序的默认位置在 Windows 的 Program Files 文件夹和 Mac OS 的 Applications 中。用户可以在同一级文件夹(例如 /AcadApps)中创建新文件夹,并将自定义程序、自定义文件以及其他第三方应用程序存储到下一级的子文件夹中。如果要维护独立作业文件的多个图形文件夹,可以创建一个诸如 /AcadJobs 的文件夹,然后在其下为每个作业创建一个子文件夹。

命令搜索过程

输入命令后,应用程序将评估命令名的有效性。命令可以是

注: AutoLISP、ObjectARX 和托管 .NET 应用程序不受 AutoCAD LT 支持。托管 .NET 应用程序在 Mac OS 上不受支持。

可以在命令提示下输入命令或从用户界面中启动命令。也可以从脚本文件或者由 AutoLISP、ObjectARX 或托管 .NET 应用程序启动命令。

下表描述了用于验证命令名的搜索次序。

  1. 如果输入空响应(按空格键或 Enter 键),程序将使用上次执行的命令名称。HELP 是默认命令。
  2. 命令根据内置命令表进行检查。如果命令在该列表中,并且没有前缀句点 (.),程序接着将根据未定义命令列表检查该命令。如果该命令未被定义,则继续搜索;否则将执行该命令,除非有其他原因使命令不能执行。不允许透明地运行或在“透视”模式下运行命令。
  3. AutoCAD 根据设备驱动程序定义的命令名检查该命令名,然后根据显示驱动程序定义的命令名检查该命令名。
  4. 根据在程序参数文件中定义的外部命令,对该命令进行检查。如果该命令名对应一个已经定义的外部命令,则将运行该命令,并结束搜索。
  5. 根据 AutoLISP、ObjectARX 和托管 .NET 应用程序定义的命令列表检查该命令。自动加载的命令在此时加载。(在 AutoCAD LT 中不可用)
  6. 程序根据系统变量列表检查该命令名。如果命令名在该列表中,将把输入作为变量名,执行 SETVAR 命令。
  7. 如果该命令名与在其关联的程序参数文件中定义的命令别名、自动更正名称或同义词相对应,请使用扩展的命令名并使用内置命令列表重新开始搜索过程。
  8. 如果前面所有步骤都失败了,则搜索终止,并显示非法命令的警告消息。