自动化·性能优化·协作 - 从 AutoLISP 到 Autodesk Docs
概述
若在反复做同一作业,可以用 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 Suite | APPLOAD → Contents → 注册自动加载列表 |
acaddoc.lsp | 每次打开图纸时执行 |
acad.lsp | AutoCAD 启动时执行一次 |
提示: 个人·团队实用程序不要全堆进 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 系统变量推荐值
| 变量 | 默认 | 推荐 | 说明 |
|---|---|---|---|
SAVETIME | 10 | 5 | 自动保存周期(分钟) |
ISAVEBAK | 1 | 1 | 生成 .bak 备份 |
INDEXCTL | 0 | 3 | Xref 部分加载优化 |
WHIPTHREAD | 1 | 3 | 多线程显示 |
VTENABLE | 15 | 0 | 关闭缩放·平移动画(提速) |
BACKGROUNDPLOT | 2 | 0~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已用于新员工设置