编辑
2025-06-05
AutoCAD
00

目录

AutoCAD Core Console Script
📚课程概述
🎥演讲者
📌引言
AutoCAD 脚本与核心控制台的拯救作用
核心控制台的优势
如何减少鼠标、按键及各类手动操作
几种常用的自动化方法
学习在桌面和AutoCAD内编写并运行脚本文件
关于脚本编写
编写首个脚本前的准备
常用命令列表
命令排序与测试
脚本创建工具推荐
善用AutoCAD文本窗口(F2)
脚本录制与编辑流程
脚本编写避坑规则
1. 空格与回车键等效性
2. 注释行规则
3. 文件结尾空行
4. 禁用对话框(添加连字符前缀)
5. 调试技巧(批量撤销)
6. 恢复系统变量
脚本命令详解
DELAY - 延时命令
RESUME - 恢复脚本执行
RSCRIPT - 循环执行脚本
SCRIPT - 执行脚本文件
SCRIPTCALL - 嵌套调用脚本
命令组合实战
注意事项
脚本可搜索性设置
脚本加载/运行方式
学习批量处理图纸目录进行修订控制和符合企业/客户标准
批量处理流程
ScriptPro(现更名为 AutoScript)
工具简介
使用限制与下载
编辑属性的挑战与解决方案
常规对象 vs. 属性编辑
Lee Mac 的 LISP 例程(推荐参考)
批量处理最佳实践
学习结合.bat文件与脚本文件集成核心控制台
从何入手?
核心控制台(Core Console)概述
批量处理命令示例
脚本优化与效率测试
关闭交互对话框(关键设置)
效率对比
多核并行处理演示
集成应用场景

AutoCAD Core Console Script

作者:Michael Best
公司:The Arthur G. Russell Company

学习目标

  • 学习如何减少鼠标点击、按键操作及各类手动操作
  • 学习在桌面和 AutoCAD 内编写并运行脚本文件
  • 学习批量处理整个目录的图形文件,以实现版本控制、符合公司和 / 或客户标准
  • 学习结合.bat文件和脚本文件与核心控制台集成

📚课程概述

AutoCAD 脚本编写是软件自 90 年代初就内置的 “开箱即用” 工具之一。2013 年引入的 AutoCAD 核心控制台(Core Console),使用户处理图形的时间仅为手动打开图形并修改所需时间的一小部分。

在本课程中,您将学习如何通过脚本文件直接向核心控制台输入命令、创建.bat文件,以及快速高效地批量处理整个目录的图形文件,无需任何重复性用户输入。

掌握核心控制台的动态功能后,您回到办公室工作时将大幅提升效率。

注:本课程以 AutoCAD 为主,但核心控制台包含于所有 AutoCAD 垂直领域产品中。

🎥演讲者

Michael Best 是康涅狄格州布里斯托尔市 The Arthur G. Russell(AGR)公司的高级项目工程师。他负责通过应用可靠的机械设计实践开发设计概念,协调项目设计团队活动,并作为主要技术联系人,确保设计目标稳健且准确实现。

Michael 在过去 18 年中参加了 11 次 AutoCAD 用户大会(AU),同时担任讨论小组和焦点小组的成员,曾主讲 4 门课程并协助其他课程的教学工作。

他拥有 30 多年使用 AutoCAD 及其多个版本的经验,在有限的业余时间还为 AutoCAD、Inventor 和 Windows 产品编写程序。

Michael 的联系方式如下:
电子邮箱:Michael.Best@ArthurGRussell.com
备用邮箱:MikeBest05@comcast.net

📌引言

AutoCAD 始终具备强大的自定义能力,能够实现几乎所有您能想到的操作,而重复性任务却是生产力的“杀手”!无论是创建新图形还是更新现有图形,随着时间的推移,反复点击命令和按钮会变得乏味且令人麻木。更不用说,长时间重复执行这些命令有时反而会适得其反。
试想一下,为了满足客户要求的内部或外部标准,需要对成千上万张图形进行此类操作。此时,我们可能会感到枯燥,开始查看电子邮件、参与其他对话,甚至快速浏览社交媒体,来逃避枯燥乏味的工作。在某些极端情况下,可能会质疑自己在公司的价值,进而上网寻找新工作。(此处露出狡黠的微笑)

AutoCAD 脚本与核心控制台的拯救作用

AutoCAD 脚本编写和核心控制台(Core Console)正是解决这一问题的利器!脚本使用的命令与您通过鼠标点击反复执行的命令完全相同,但这些命令被集中编写在一个文本文件中。经过初步的输入尝试和调试后,您可以通过菜单插入脚本文件,或将其“拖放”至界面中运行。最棒的是,无需学习任何编程语言!脚本功能是免费的,并且一直是 AutoCAD 的内置功能。如果您知道如何在 AutoCAD 中输入命令,那么您已经掌握了 AutoCAD 脚本编写的基础。在本课程中,我们将涵盖脚本编写的基础知识,并进一步深入探讨。

核心控制台的优势

使用核心控制台(CC),您可以以标准 AutoCAD 无法企及的速度批量处理数百甚至数千张图形。核心控制台是 AutoCAD 的精简版本,无需依赖我们在 AutoCAD 中常用的外围图形界面。您只需创建一个 .bat 文件和一个或多个脚本文件,即可一次性处理所有图形文件。需要注意的是,如今大多数计算机都运行多核处理器,核心控制台可以配置为在不同核心上的不同文件夹中运行一系列 .bat 文件。

如何减少鼠标、按键及各类手动操作

我相信在座的大多数人都会承认,身体里最强壮的肌肉是食指……其次是中指。当然,中指是用于右键点击的。
在任何设计项目或互联网使用中,鼠标操作都是我们重复最多的工作。您几乎可以自动化 AutoCAD 中的任何流程。任何形式的编程总是充满挑战,这是一种“爱恨交织”的关系——当程序运行时,您会喜欢它;当程序出错时,您会讨厌它!当程序出错时,需要尝试不同的方法,或者暂时离开,理清思路后再试,有时看看茶叶的形状(译注:西方占卜方式)或献祭一只鸡寻找答案也会奏效。而我会选择吃掉一桶炸鸡。

几种常用的自动化方法

  1. VBA (Visual Basic for Applications)
    AutoCAD VBA 在 R14 版本首次推出。最初版本功能强大,但如果您习惯为 Windows Office 产品创建 VBA 应用程序,可能会觉得有些难以上手。目前 VBA 不再包含在 AutoCAD 安装包中,必须从 Autodesk 网站单独下载安装。

  2. AutoLISP/Visual LISP
    AutoLISP 是一种解释型编程语言,在 AutoCAD 中使用前无需编译。自 1986 年 AutoCAD 2.18 版本起,AutoLISP 就已存在,至今仍被广泛使用,网上有上百万行代码可供下载使用。它是 AutoCAD 中处理和操作 .dwg 文件的强大编程语言。

  3. 宏与功能区
    将宏分配到功能区按钮非常简单,但根据复杂程度,调试可能会很困难。理解语法是创建从简单到复杂的按钮宏的关键。

  4. 脚本编写
    让命令提示符成为您的朋友! 没错,如果您知道想要使用的命令,那么屏幕底部那个总是出现的小面板(很烦人,对吧?)将成为您脚本编写时最好的朋友。您的第二好朋友是谁?当然是 AutoCAD 文本窗口(或 F2 键)!

脚本编写的优势

  • 无需学习新的编程语言(只需掌握 AutoCAD 命令)
  • 完全免费(内置功能)
  • 易于调试和修改
  • 适合批量处理重复性任务
  • 可通过简单的文本文件创建复杂工作流

在接下来的课程中,我们将重点学习如何利用脚本编写和核心控制台大幅提高您的工作效率!

学习在桌面和AutoCAD内编写并运行脚本文件

什么是脚本?脚本只做一件事:模拟你在屏幕或命令提示符(过去固定在屏幕底部的那个工具)中输入的操作。输入命令,按照提示完成操作,你就基本编写了第一个脚本。例如想清理图形?无需从菜单中选择(见下文),可以直接在AutoCAD命令行运行清理命令。

image.png image.png

只需在命令行输入 Pu,即可调出清理命令对话框。

image.png

以下是输入 Pu 后显示的对话框示意图。

image.png

关于脚本编写

对于脚本编写,我们不能使用对话框,因为它会完全停止/取消脚本命令的执行。通过在命令行输入 “-PU”,命令行会在下方显示,询问你希望对“Purge”命令执行何种操作。

image.png

之前对话框中所有可供选择的选项,在命令行中均以文本形式呈现。注意列表中的大写字母了吗?这些字母对应脚本中可输入的选择项。我们大多数人会选择 “All” 来清理所有未使用的对象。

编写首个脚本前的准备

在创建首个脚本前,请先记录你希望脚本实现的功能。以下是可供使用的潜在命令列表,随后需梳理这些命令的执行顺序:

常用命令列表

  • 关闭对话框
  • 模型空间/图纸空间
  • 缩放范围(Zoom Extents)
  • 设置线型比例(LTS)
  • 保存(Save)
  • 另存为(SaveAs)
  • 创建/设置/修改图层颜色/线型图层(Create/Set/Change Colors/LT of Layers)
  • 图形审核(Audit)
  • 清理(Purge)
  • 直线(Line)
  • 重命名(layers)
  • 重生成(Regen)
  • 缩放(Scale)
  • 设置系统变量(Setvar)
  • 文字样式(Style)
  • 标注属性(Dimension Properties)
  • Vault 检入(Vault Checkin)
  • 块(Block)
  • 复制(Copy)
  • 修改属性(Change Props)
  • 关闭(Close)
  • 输出为DXF(Dxfout)
  • 添加文字(Add Text)
  • 分解(Explode)
  • 导入/导出(.sat, .bmp, .dwf, .pdf, .iges, .stl, .dgn, .tif)
  • 发布(Publish)
  • 修复(Recover)
  • 写块(Wblock)
  • 外部参照绑定(Xbind)
  • 外部参照(Xref)
  • 编辑属性(Edit Attributes)
  • 插入(Insert)

命令排序与测试

在确定需要对图形集进行的修改、调整或清理操作后,需将命令按逻辑顺序排列。最佳实践是先在测试图形上尝试这些命令,以验证执行顺序是否符合预期。在输入命令时,可使用 AutoCAD 文本窗口(F2)查看每个命令及后续命令的执行结果,直至完成所有操作。(参见上文“Purge”命令示意图)

脚本创建工具推荐

以下工具均可用于创建脚本文件:

这些工具均能高效支持脚本编写与编辑。

善用AutoCAD文本窗口(F2)

如前所述,为节省时间,建议充分利用AutoCAD文本窗口(F2)。该窗口会记录命令提示符历史,当前图形中的所有命令均可滚动查看。历史记录包括所有AutoCAD提示、命令、系统变量、默认值和设置、错误消息、报告,当然还有您通过键盘输入或菜单/工具栏点击执行的所有操作。

脚本录制与编辑流程

确定操作流程并通过手动输入命令验证顺序后,可按以下步骤创建脚本:

  1. 捕获命令历史:在文本窗口中选中所需命令序列。
  2. 复制粘贴到编辑器:将命令粘贴到记事本或其他文本编辑器中。
  3. 精简内容:仅保留必要的按键输入(如命令、参数、空格等)。
  4. 保存为.scr文件:确保文件扩展名为.scr

脚本编写避坑规则

1. 空格与回车键等效性

  • 脚本中的空格通常等同于“回车”(Enter),除非命令允许包含空格。
    示例Zoom E 中“m”和“E”之间的空格等效于一次“回车”,表示执行“缩放范围”命令。

2. 注释行规则

  • 以分号(;)开头的行将被AutoCAD忽略,可用于添加注释。
    示例
    ; 下一条命令将缩放至图形范围 Zoom E

3. 文件结尾空行

  • 脚本文件必须以空行结尾,表示所有命令执行完毕。
    示例
    Zoom E (光标需位于此空行,确保“缩放范围”命令完成)

4. 禁用对话框(添加连字符前缀)

  • 在命令前添加连字符(-)可阻止对话框弹出(对话框会中断脚本执行)。
    示例
    -Insert ; 仅通过命令行执行“插入”命令,避免弹出对话框

5. 调试技巧(批量撤销)

  • 调试脚本时,若需回滚操作,可使用Undo命令一次性撤销脚本执行的所有步骤(脚本执行被视为单个整体命令)。

6. 恢复系统变量

  • 脚本开始前若修改了系统变量(如关闭对话框),建议在脚本结束后恢复默认设置。这对批量处理图形尤为重要,否则可能导致后续操作异常(如对话框无法弹出)。

遵循以上规则可大幅降低脚本编写错误率,确保自动化流程稳定运行。

脚本命令详解

DELAY - 延时命令

  • 作用:在脚本中插入指定时长的暂停,控制命令执行节奏。
  • 格式DELAY [毫秒值]
  • 示例
    DELAY 1000 ; 暂停1秒
  • 实际应用场景
    • 外部程序响应等待:执行 EXPORT PDF 后延时等待文件写入完成。
    • 动画效果演示:循环脚本中控制幻灯片切换间隔(如 DELAY 3000)。

RESUME - 恢复脚本执行

  • 作用:继续执行因错误或手动中断(按 ESC/Backspace)的脚本。
  • 用法
    • 脚本暂停后,在命令行输入 RESUME 即可继续。
  • 实际应用场景
    • 交互式脚本:在 INPUT 命令等待用户输入时临时中断,确认后恢复。
    • 调试场景:执行 SAVEAS 前暂停检查参数,确认后继续保存。

RSCRIPT - 循环执行脚本

  • 作用:重复运行脚本文件,直至手动终止。
  • 格式
    • 直接在脚本末尾添加 RSCRIPT
  • 实际应用场景
    • 展会自动演示:循环执行 ZOOM EXTENTSPANROTATE 动态展示图纸。
    • 定时数据更新:配合 DELAY 实现每隔5分钟自动刷新 EXTERNALREFERENCE

SCRIPT - 执行脚本文件

  • 作用:调用 .scr 脚本文件并按顺序执行命令。
  • 用法
    • 在命令行输入 SCRIPT,选择脚本文件路径。
  • 实际应用场景
    • 批量图纸初始化:执行 LAYERSTYLEDIMSTYLE 统一设置新图模板。
    • 一键导入配置:执行 APPLOADMENULOAD 快速加载自定义插件。

SCRIPTCALL - 嵌套调用脚本

  • 作用:在主脚本中调用子脚本,支持多层嵌套,实现模块化编程。
  • 格式
    SCRIPTCALL "路径\子脚本.scr"
  • 实际应用场景
    • 多阶段批处理
      ; 主脚本:图纸标准化流程 SCRIPTCALL "CheckLayers.scr" ; 检查图层合规性 SCRIPTCALL "PurgeData.scr" ; 清理冗余数据 SCRIPTCALL "SaveFinal.scr" ; 保存并归档
    • 部门协作模板
      ; 建筑图纸主流程 SCRIPTCALL "Arch\Foundation.scr" ; 基础层处理 SCRIPTCALL "Arch\Structure.scr" ; 结构层处理

命令组合实战

场景1:图纸批量合规性检查

; 主脚本:建筑图纸合规性检查 SCRIPTCALL "CheckLayers.scr" ; 检查图层命名规范 SCRIPTCALL "CheckText.scr" ; 检查文字样式和高度 SCRIPTCALL "CheckBlocks.scr" ; 检查块引用完整性 SAVEAS "合规版\" ; 另存为合规文件夹

场景2:自动化会议演示

; 演示脚本:动态展示设计方案 ZOOM E ; 初始全图显示 DELAY 2000 ; 暂停2秒 ZOOM W 0,0 100,100 ; 局部放大 DELAY 1500 RSCRIPT ; 循环执行,按ESC停止

场景3:版本批量转换

; 批量转换脚本 -OPEN "D:\旧图纸\*.dwg" ; 打开文件夹中所有图纸 -PURGE A ; 清理所有未使用对象 SAVEAS "D:\新图纸\*.dwg" AC1032 ; 保存为2018版本 CLOSE ; 关闭当前图纸 RSCRIPT ; 循环处理下一个

注意事项

  1. 对话框阻断
    • 命令前加 - 禁用对话框(如 -INSERT 代替 INSERT),避免脚本中断。
  2. 路径规范
    • 路径包含空格时需用英文引号包裹(如 "C:\My Scripts\File.scr")。
  3. 调试技巧
    • 结合 F2文本窗口 查看命令执行日志,定位错误行。
    • 使用 UNDO 命令一次性撤销脚本所有操作,快速回滚。

通过严谨应用这些脚本命令,可实现真正符合工程需求的 AutoCAD 自动化流程。

脚本可搜索性设置

是否应设置搜索路径?这并无坏处。可前往 「选项」「支持文件搜索路径」「添加」「浏览」,然后添加脚本文件的保存路径。该路径可以是本地硬盘,也可以是网络共享位置。这将使您在通过功能区(「管理」「运行脚本」)或命令行(输入 script)调用脚本时更加便捷。

image.png

脚本加载/运行方式

  • 脚本设置
    在开始编写脚本前,我们需要修改一些变量。我通常会关闭的三个主要变量是 属性对话框文件对话框命令对话框。这些设置不会阻止所有对话框打开,但能覆盖大多数情况。

  • 属性对话框(ATTDIA) 控制 INSERT 命令是否使用对话框进行属性值输入。

  • 命令对话框(CMDDIA) 控制 DIMEDITQLEADER 命令的在位文字编辑器显示,以及基于 AutoCAD 的产品中某些对话框的显示。

  • 文件对话框(FILEDIA) 抑制 SAVEASOPEN 等文件导航对话框的显示。

  • DWG 检查(DWGCHECK) 在打开图形时检查潜在问题。建议关闭此功能,以免在处理从其他 CAD 软件导出的图形时弹出对话框。

通过这些设置,您可以创建更加流畅的自动化工作流程,减少对话框干扰,提高脚本执行效率。

以下脚本用于关闭这些对话框。出于稳妥考虑,这样做很有必要。在脚本执行期间,任何对话框的弹出都会导致脚本中断。(0=关闭,1=开启)

script
;Turn off Variables attdia 0 cmddia 0 filedia 0 dwgcheck 0 do work do work do work do work attdia 1 cmddia 1 filedia 1 dwgcheck 1 (optional to turn this back, your call)

保存脚本时,请确保将其保存为脚本(.scr)文件。使用 Windows 记事本保存文件时,需将文件名设置为带.scr 扩展名,并将 “保存类型” 更改为 “所有文件(.)”。如果保留为 “文本文档”,文件名会变为 “脚本名称.scr.txt”,此时 AutoCAD 将完全无法读取该文件。

学习批量处理图纸目录进行修订控制和符合企业/客户标准

批量处理流程

尽管略显“原始”,但批量处理整个项目目录及其子目录的有效方法是使用 .bat 文件,并将其与 .lsp.scr 文件关联到批处理例程中。以下是一个示例命令(需注意路径格式):

batch
FOR %%f IN ("C:\Translate_Files\*.dwg") DO "C:\Program Files\AutoCAD 2019\acad.exe" /I "%%f" /s "C:\Translate_Files\Cleanup.scr"
FOR %%f IN ("C:\Translate_Files\*.dwg") DO "C:\Program Files\AutoCAD 2019\acad.exe" /I "%%f" /s "C:\Translate_Files\Cleanup.scr"

说明:该命令会遍历指定目录下的所有 .dwg 文件,调用 AutoCAD 并执行 Cleanup.scr 脚本。但需注意,此过程会全程占用计算机和软件许可。

ScriptPro(现更名为 AutoScript)

工具简介

  • 免费工具:根据 Autodesk 官方文档,ScriptPro(现名 AutoScript)可将 AutoCAD 脚本编写提升到新水平,具备以下功能:
    • 易用界面与日志记录
    • 可复用的项目文件
    • 支持新关键字和实用工具的增强脚本
    • 强大的错误恢复机制
  • 核心功能:通过指定脚本文件和目标图形列表,对多个图形批量执行命令序列。

使用限制与下载

编辑属性的挑战与解决方案

常规对象 vs. 属性编辑

  • 常规对象:文本、几何图形等可通过脚本直接编辑。
  • 属性编辑难点
    • 属性位置可能因图形比例不同而变化,难以通过固定坐标定位。
    • 解决方案:结合 .lsp 脚本调用,基于块名称和属性名称动态修改值。

Lee Mac 的 LISP 例程(推荐参考)

  • 功能:按名称编辑图形中的属性值。
  • 使用方法
    1. 下载例程文件(如 attributefunctions.lsp)。
    2. 在脚本中添加加载命令:
      autocad
      (load "lispfilename") ; 替换为实际文件名
  • 参考链接Lee Mac 属性编辑函数库

批量处理最佳实践

  1. 路径规范
    • 目录和文件名避免使用空格或特殊字符,或用英文引号包裹(如 "C:\Program Files\")。
  2. 许可管理
    • 优先使用未被占用的计算机执行批量任务,避免影响日常工作。
  3. 混合脚本调用
    autocad
    ; 在 .scr 脚本中调用 .lsp 例程 (load "EditAttributes.lsp") ; 加载属性编辑 LISP -INSERT MyBlock ; 插入带属性的块 AttributeValue ; 通过 LISP 动态赋值

通过结合批处理文件、脚本工具和 LISP 编程,可高效实现图形批量标准化、版本控制及属性编辑,显著提升团队协作效率。

学习结合.bat文件与脚本文件集成核心控制台

从何入手?

我所在的公司在项目结束时需向客户交付图形包,有时涉及数百甚至数千张图纸。由于我们使用三维软件生成所有文件,导出的.dwg文件既不符合典型的.dwg标准,更不符合公司标准。

若手动逐个修改数千张图纸以符合标准,可能需要数周时间。20年前我在另一家公司时曾接手类似任务:将近1000张从其他二维软件导出的文件转换为我们的AutoCAD标准。

在手动修改40-50张图纸的块、线型、颜色和图层后,我开始将字符串命令绑定到自定义菜单按钮。很快,我创建了一系列菜单按钮,几乎能完成所有所需修改——甚至有一个按钮可缩放至标题栏查看比例,暂停并等待输入以按比例调整图形(该按钮调用VBA代码实现此功能,其余按钮均基于脚本编写)。

如今,市场上有定制程序可批量处理数千张图纸,这些程序大多由擅长VBA、VB、C++和C#的CAD爱好者编写。但事实上,任何熟悉AutoCAD命令的用户,只需借助核心控制台(Core Console)和一点巧思,即可通过脚本实现与定制程序相同的功能。

核心控制台(Core Console)概述

什么是核心控制台(accoreconsole.exe)?
可将其视为“静默模式”的AutoCAD:无需显示器、鼠标或键盘,仅凭命令行批量处理图形,效率远超传统界面。更强大的是,可在多核CPU上并行运行多个核心控制台实例——每个批次处理不同文件夹,每个实例占用独立CPU核心(此功能需通过VB.net编程实现,可在实操课程中深入学习)。

批量处理命令示例

image.png

batch
FOR %%f IN ("%~dp0*.dwg") DO "C:\Program Files\Autodesk\AutoCAD 2019\accoreconsole.exe" /i "%%f" /s "%~dp0saveDXFas_2018.scr" /l en-US

说明

  • 遍历当前目录下所有.dwg文件
  • 调用核心控制台执行saveDXFas_2018.scr脚本
  • /l en-US指定语言环境

脚本优化与效率测试

关闭交互对话框(关键设置)

autocad
; 脚本开头添加以下命令 filedia 0 ; 关闭文件对话框 cmddia 0 ; 关闭命令对话框 isavebak 0 ; 禁止生成.bak备份文件 +saveas ; 执行“另存为”(+号表示持续按下回车键) dwg 2018dwg 2018 ; 脚本结尾恢复设置 filedia 1 cmddia 1 isavebak 1 close

image.png

效率对比

  • 测试案例:在“Folder-6_1k”文件夹中仅执行“打开→保存”操作
  • 结果:单文件平均处理时间仅1.6秒,远快于传统AutoCAD界面。

多核并行处理演示

image.png image.png

说明

  • 3个核心控制台实例同时处理不同文件夹
  • CPU利用率约50%(主频3.6GHz),内存占用稳定
  • 无需显卡加速(仅Intel集成显卡处理DOS界面更新)

集成应用场景

核心控制台适用于以下场景:

  1. 项目交付前标准化:将三维软件导出的图纸批量转换为客户标准。
  2. 跨平台数据迁移:将其他CAD软件的文件转换为AutoCAD格式并清理冗余数据。
  3. 大规模版本转换:例如将2004版图纸批量升级为2018版。

提示:结合.bat文件的循环逻辑与核心控制台的静默处理能力,可构建无人值守的自动化流水线,大幅降低重复性劳动成本。

祝您高效工作!