自动化·性能优化·协作 - 从 AutoLISP 到 Autodesk Docs

AutoCAD · AutoLISP & Automation

概述

若在反复做同一作业,可以用 AutoLISP·宏·脚本 自动化。

再用 PURGE/AUDIT/OVERKILL 等 整理命令 保持图纸轻量,借 Autodesk Docs·Trace·Share 等协作功能与团队同步,个人生产力可提升 2~3 倍,团队工作流数倍改善。

> 基础快捷键·编辑命令参见 01-shortcuts.md,块/Xref 运营参见 03-blocks-xref.md。


1. AutoLISP — AutoCAD 的内置脚本

AutoLISP 是 AutoCAD 从 1986 年起 搭载的 LISP 派生语言。扩展名 .lsp(源码)·.fas/.vlx(编译)。

1.1 加载方法

方法说明
APPLOAD在对话框中选择文件
(load "C:/my.lsp")命令行直接加载
Startup SuiteAPPLOAD → Contents → 注册自动加载列表
acaddoc.lsp每次打开图纸时执行
acad.lspAutoCAD 启动时执行一次

提示: 个人·团队实用程序不要全堆进 acaddoc.lsp,分别注册到 Startup Suite 更有利于版本管理·调试。

1.2 基本结构 — Hello World

(defun c:HELLO ()
  (princ "\nHello, AutoCAD!")
  (princ)
)
  • defun:定义函数。
  • c: 前缀:可在命令行以 HELLO 调用。
  • princ:输出函数。末尾的 (princ) 是 惯例调用,用于防止返回值(nil)显示在命令行。

1.3 常用基础函数

函数用途
getpoint向用户获取点坐标
getdist距离输入(两点或数字)
getreal / getint实数·整数输入
getstring字符串输入
getangle / getorient角度输入
entsel单对象选择
ssget生成选择集(支持过滤器)
command调用 AutoCAD 内置命令
entget / entmod读写对象的 DXF 数据
assoc / cons / subst关联列表操作
mapcar / foreach列表遍历

1.4 实用例程 — "锁定选中对象的图层"

(defun c:LL ( / ss i ent lay)
  (princ "\nSelect objects to lock their layers: ")
  (setq ss (ssget))
  (if ss
    (repeat (setq i (sslength ss))
      (setq ent (ssname ss (setq i (1- i))))
      (setq lay (cdr (assoc 8 (entget ent))))
      (command "_.LAYER" "_LO" lay "")
    )
  )
  (princ)
)

加载后在命令行输入 LL,选中对象所属的 图层全部锁定。关键点在于 DXF 代码 8 承载实体的图层名。

1.5 Visual LISP·COM·.NET

  • VLIDE:Visual LISP 集成开发环境。含调试器·控制台。
  • (vl-load-com) 之后通过 (vla-*) 函数族操作 ActiveX 对象模型。更强的自动化。
  • .NET(C#/VB):用 NETLOAD 加载 DLL,分发公司内工具。属专业开发者领域。
  • ObjectARX:基于 C++。第三方插件的标准 开发环境。

提示: 一般用户无需专门学习 .NET。即使只把同事做的 10 个 .lsp 加载到 acaddoc.lsp 用,体感生产力就已 翻倍。


2. 命令宏(Command Macro)

在 CUI 的 "Macro" 字段 以字符串撰写命令序列,绑定到工具栏·功能区按钮·键盘快捷键。

2.1 语法

符号含义
^C^C按两次 Esc(中断进行中的命令)
_下划线。强制英文命令(多语言环境兼容)
.忽略用户重定义,使用默认命令
; 或换行Enter
\等待用户输入
*命令自身重复

2.2 示例

切换当前图层为 DIMS 后开始线性标注:

^C^C_-LAYER;S;DIMS;;_DIMLINEAR

将公司标准块 TB-A3 插入到 Paper space 原点:

^C^C_-INSERT;TB-A3;0,0;1;1;0

提示: 在宏前加 *,命令会自动重复。对连续插入·连续注释很有用。


3. SCR 脚本 & 批量执行

3.1 SCR 文件

.scr 是将命令行输入 逐行记录的简单文本文件。

ZOOM EXTENTS
PURGE ALL * N
AUDIT Y
QSAVE

用 SCRIPT 命令加载后执行,或在 AutoCAD 启动时通过 /b 选项指定。

3.2 大量 DWG 批处理

  • ScriptPro 2.0(Autodesk 免费):将 SCR 与 DWG 列表连接进行 批量执行。
  • accoreconsole.exe(AutoCAD 2013+):无 GUI 在后台打开 DWG 执行 SCR。在服务器夜间处理 数千个 DWG 的正道。

提示: 将 定期维护 SCR(AUDIT → -PURGE A * N → SAVE)对所有 DWG 每周执行,可预防文件膨胀·损坏征兆。

注意: SCR 内部若弹出对话框(FILEDIA=1 状态)自动化会停止。在脚本开头用 FILEDIA 0 · CMDDIA 0 切换到非对话框模式,结束时 务必恢复。


4. 性能优化 — 保持图纸轻量

4.1 PURGE

PURGE(PU) 清除 未被使用的定义(图层·块·线型·文字样式·标注样式·材质等)。

选项说明
默认对话框选择勾选项
-PURGE命令行自动化
-PURGE R清理 Registered Applications(Regapps)
Purge nested items连块内的块也清理
Purge zero-length geometry零长度线·空文字

提示: 若 PURGE 一次仍有定义残留,说明它 仍被其他定义引用。-PURGE A * N 反复 2~3 次 大多能清干净。

4.2 AUDIT / RECOVER / RECOVERALL

  • AUDIT:当前图纸的 完整性检查。"Fix errors? Y"自动修复。
  • RECOVER:以 恢复模式 打开损坏的 DWG。用于普通 OPEN 打不开的文件。
  • RECOVERALL:对当前 DWG 和 所有 Xref 整体恢复。

提示: 打不开 DWG 时顺序为 (1) DWG TrueView 等查看器 → (2) RECOVER → (3) .bak 文件恢复 → (4) 自动保存 .sv$(SAVEFILEPATH)→ (5) 商用恢复服务。

4.3 OVERKILL

OVERKILL 将 同位置重叠的重复对象 或 同一直线上断裂的线 整合为一条。

  • 按图层·颜色·线型 过滤。
  • Numeric fuzz(公差):稍有偏差的对象也视为同一。
  • Optimize polylines:简化连续直线段。
  • Combine co-linear objects:合并同线对象。

提示: PDF→DWG 转换·扫描描图 结果的重叠线可达 数千条。OVERKILL 是 整理第一优先。

4.4 系统变量推荐值

变量默认推荐说明
SAVETIME105自动保存周期(分钟)
ISAVEBAK11生成 .bak 备份
INDEXCTL03Xref 部分加载优化
WHIPTHREAD13多线程显示
VTENABLE150关闭缩放·平移动画(提速)
BACKGROUNDPLOT20~2大批 Publish 时 0 更安全

4.5 大型图纸故障应对

症状原因候补处理
打开慢大量 Xref·超大图像INDEXCTL ↑、图像分辨率 ↓
保存慢Drawing History 激活关闭 History、-PURGE
选择延迟重复对象OVERKILL
填充慢密集图案Scale ↑、替换为 Solid、Draw Order 置后
REGEN 漫长对象过多冻结多余图层、VP Freeze
打印中断BACKGROUNDPLOT值 0、调整 PDF 质量

5. 协作 — Autodesk Docs·AutoCAD Web·Share·Trace

5.1 Autodesk Docs / Construction Cloud

  • 项目共用文件存储库。整合了 DWG·PDF 审阅·Markup·发布管理。
  • 在 AutoCAD 可通过 Open from Autodesk Docs / Save to Autodesk Docs 直接打开和保存。
  • 版本·权限·活动日志 自动记录。

提示: 相比 Windows 共享·SharePoint 等传统存储库,内置 图纸锁定 与 版本历史 是其强项。5 人以上团队值得转换。

5.2 AutoCAD Web / Mobile

  • 在浏览器·平板上 打开 DWG·简单修改·测量·注释。
  • 适合 现场 快速确认·标注。全功能编辑仍在桌面端。

5.3 SHARE — 链接共享

SHARE 将当前图纸生成可在 Autodesk Viewer 打开的链接。收件人 无需安装仅凭 URL 即可查看。默认有效期 7 天。

5.4 Drawing History / COMPARE / XCOMPARE

  • 位于 Autodesk Docs 等版本管理存储库的 DWG,可在 Drawing History 用 滑动条 与过去版本对比。
  • COMPARE / XCOMPARE:以颜色叠加呈现两 DWG 的差异。

5.5 Trace (2022+)

TRACE 是在 不修改原图纸 的前提下,将注释·修改方案 覆盖到半透明图层 的功能。

可在桌面调入 Web·移动端创建的 Trace 并 审批·反映。

Markup Assist:以 AI 识别 PDF·图像标注,建议转换为 Trace 图层中可编辑的对象。

5.6 Markup Import (2023+,2026 改进)

MARKUPIMPORT 将外部 PDF·PNG·JPG 标注 作为 Trace 图层插入。

2026 起 与 Autodesk Docs 双向同步,在 Docs 中修改的标注会自动反映到 AutoCAD 侧。

5.7 eTransmit — 外部分发的标准

ETRANSMIT 将当前 DWG + 所有 Xref + 图像 + SHX/TTF 字体 + 打印样式打包为 一个 ZIP 或文件夹。

单纯复制容易漏掉参照·字体,因此 外包·监理·投标提交 务必用 eTransmit。

5.8 Trusted DWG

指由 Autodesk 正版·认证应用创建·保存的 DWG。打开其他 CAD 保存的 DWG 可能弹出"Not a Trusted DWG"警告。

功能上差异不大,但为防兼容事故,建议 重要图纸用 AutoCAD 打开并重新保存一次。


6. 协作基础设施 — 标准分发

  • DWS + CHECKSTANDARDS:公司·国家 标准检查。
  • Sheet Set:项目图纸一致管理(详见 03-blocks-xref.md)。
  • Block Library 网络 Tool Palette:全员同一块。
  • CUIx Partial 分发:统一功能区·快捷键·宏。
  • Profile(.arg):通过 export/import 同步 OPTIONS 设置。

提示: 要自动化 新员工设置,可在登录脚本中包含 (1) Profile import (2) Template 路径映射 (3) 向 Startup Suite 注册公司内 LSP。


7. 实务检查清单

  • 常用 LSP 已注册到 Startup Suite
  • acaddoc.lsp 管理得当不致膨胀
  • 公司内标准宏通过 Partial CUIx 分发
  • 夜间批处理基于 accoreconsole.exe
  • 每周定期维护 SCR(AUDIT→PURGE→SAVE)在运行
  • SAVETIME=5、ISAVEBAK=1 自动保存·备份已启用
  • 对大型 Xref 应用了 INDEXCTL=3
  • OVERKILL 已应用到扫描·PDF→DWG 结果
  • 外部提交以 ETRANSMIT 打包
  • Autodesk Docs 或等效 VCS 为团队存储库
  • Markup Import·Trace 工作流已在团队共享
  • Profile .arg 已用于新员工设置

请将本站加入书签!
PC: Ctrl + D
手机: 浏览器菜单 → 添加书签