AutoCAD 排版脚本 · 功能与命令速查

适用范围:AutoLISP 脚本,面向 CAD 图纸中的文字译前预处理和译后文字调整。
脚本目录:Scripts(共 21 个提供功能的 .lsp 文件,清单见文末「附一」)。

加载与使用

  • APPLOAD 加载 Scripts 文件夹内的 .lsp 文件;建议把常用脚本一起加入「启动组」,或把 Scripts 文件夹加入 AutoCAD 支持文件搜索路径。
  • 除特别注明外,多数命令采用 先选中对象、再输入命令 的操作方式。
  • 命令名即上表所列的完整命令名(如 ARRANGEADTPSELECTADTPALL),在命令行直接输入即可。
  • 术语约定:
  • Adtp 样式:译文文字。
  • 原文:位于译文上方、样式名非 Adtp 的其他单行/多行文字。

一、Adtp 译文相关

1. 选择 Adtp 译文及其上方原文(selectadtpall.lsp)

先选中「译文 + 其上方原文」所在区域,命令会把样式为 adtp 的文字选出,同时把每个译文上方 3 倍字高、左右 2 倍字高范围内最近的其他样式文字一并选中。

命令 功能
SELECTADTPALL 选中全部 adtp 单行+多行译文,并各自连带选中其上方最近原文
SELECTADTPALLT 同上,译文仅限单行文字(TEXT)
SELECTADTPALLM 同上,译文仅限多行文字(MTEXT)

2. 译文自身居中并对齐原文中心(ADTPCENTERX.lsp)

把每个 adtp 译文的自身对齐方式改为居中——单行文字为水平居中、多行文字为中上对齐——并移动译文,使其「文字横向中心」(文字的实际几何中心,而非插入点)贴齐其上方 3 倍字高范围内最近原文的文字横向中心;Y 坐标不变。

命令 功能
ADTPCENTERX 处理选中区域内的全部 adtp 译文(单行+多行)
ADTPCENTERXT 同上,仅处理单行译文(TEXT)
ADTPCENTERXM 同上,仅处理多行译文(MTEXT)

3. 筛选 Adtp 样式文字(selectadtp.lsp)

在已选中的对象里筛选出指定样式的文字并重新设为选中状态。

命令 功能
SELECTADTP 从当前选中对象中筛选样式名为 adtp 的单行+多行文字
SELECTADTPT 同上,仅筛选 adtp 单行文字(TEXT)
SELECTADTPM 同上,仅筛选 adtp 多行文字(MTEXT)
SELECTTEXTBYSTYLE 按命令行提示输入任意样式名,筛选该样式的文字

4. 筛选「因框宽自动折行」的 Adtp 多行文字(SelectAdtpMWrap.lsp)

从所选文字中挑出因固定框宽自动折行成两行及以上的 adtp 多行文字,并把它们设为当前选中集。判断条件(需全部满足):对象为 MTEXT、样式名为 adtp、内容不含手写换行符 \P、有固定框宽(> 0),且把文字复制一份并取消宽度限制后,原文字沿「行叠排方向」的跨度大于取消宽度后的 1.5 倍。对文字旋转 0°/90°/任意角度均适用。

命令 功能
SELECTADTPMWRAP 选中因固定框宽自动折行(≥2 行)的 adtp 多行文字

5. Adtp 文字字高缩放(adtp20off.lsp / adtp20up.lsp)

对选中对象中的 adtp 单行/多行文字整体缩放字高,支持进入块定义处理嵌套文本

命令 功能
ADTP20OFF 将选中对象(含块内嵌套)中 adtp 文字字高缩小至原高度的 80%
ADTP20UP 将选中对象(含块内嵌套)中 adtp 文字字高放大至原高度的 120%

6. 修正 Adtp 样式名(FixAdtpStyle.lsp)

扫描整张图纸(模型空间、布局及所有块),把样式名为「Adtp+纯数字」(如 Adtp1、Adtp2)的文字统一修正为正式样式 Adtp;若该样式不存在会自动创建。

命令 功能
FIXADTPSTYLE 全图修正 Adtp+数字 样式为正式 Adtp 样式

二、译文行位置与重叠消除

7. 译文等间距重排、消除重叠(ArrangeAdtp.lsp)

同一栏的译文上下行距忽大忽小、甚至互相压字时使用。框选一栏(或一整块)的 adtp 译文后运行命令,译文会保持原有的上下先后顺序,自动重新排布到互不重叠。左右位置不变,不会跑出原来所在的栏位。只有 adtp 样式的文字会被处理,选区里的直线等其他对象自动忽略。

命令 功能
ARRANGEADTP 译文在框选范围内上下均匀分布、互不重叠;上下两端仍保持在原选区范围内(空间不够时会提示)
ARRANGEADTP20 从最上面一条译文起依次向下紧排,条与条之间只留一点空隙,排列更紧凑,整列可能超出行框范围

8. 多行文字上移贴近横线(MTNearUpLine.lsp)

用于把折行成两行及以上的多行文字整体上移,贴到它上方那条横线的下面(例如表格单元格里文字离横线太远、需要往上顶的情况)。框选「文字 + 横线」后运行命令:命令会自动找到文字正上方最近的横线,把文字上移到位,贴近但不压到横线;左右位置不变。只有折行成多行的文字会被移动,单行文字不受影响,也不限文字样式。

命令 功能
MTNEARUPLINE 把折行成两行及以上的多行文字上移贴到上方横线下(左右位置不变)

三、通用文字批量调整

9. 任意文字字高缩放(text20off.lsp / text20up.lsp)

与 adtp 专用版不同,这两个命令对选中的全部单行/多行文字生效,不限样式(也不进入块内)。

命令 功能
TEXT20OFF 将选中文字(不限样式)字高缩小至原高度的 80%
TEXT20UP 将选中文字(不限样式)字高放大至原高度的 120%

10. 文字统一对齐并按 X 对齐(TXMATCHX.lsp)

运行后按提示选择统一对齐方式(左 / 中 / 右),命令会把所选文字统一为该对齐方式,再让所有文字的对齐点 X 对齐到其中位置最高文字的 X。

命令 功能
TXMATCHX 所选文字统一为 左/中/右 对齐,并按最高文字的 X 竖线对齐

11. 多行文字行距设置(MTLineSpace.lsp)

批量清除多行文字原有行距设置后,按输入的行距系数重新设置。

命令 功能
MTLINESPACE 输入行距系数(如 1.2、1.5),统一重设所选多行文字行距

12. 单行文字转多行文字(TextToMText.lsp / TextToMTextTC.lsp)

两个脚本都是把 TEXT 转成 MTEXT 并保留原外观,区别在于转换后的多行文字附着方式。

命令 功能
TEXTTOMTEXT 将所选单行文字(TEXT)转为多行文字(MTEXT),保留位置、字高、颜色、样式、图层及对齐语义
T2M 将文字统一为中上对齐:单行文字转为多行文字(宽度保持原显示宽度),已是多行文字的只改为中上对齐点

四、文字合并

13. 简单横向合并(MERGETEXT.lsp)

把所选文字按从左到右的顺序合并到最左侧的文字中(内容直接连接),并删除其余文字对象;保留最左侧对象的位置、图层、颜色与样式。

命令 功能
MERGETEXT 将选中文字从左到右合并到最左侧一个文字内

14. 按视觉行合并段落(MergeTextLines.lsp)

自动按 Y 坐标把选中的文字划分成若干「视觉行」(行判定容差 = 行首对象字高 × 0.7,系数可由全局变量 mrgline-tol-factor 调整),再对每一行按 X 从左到右合并到该行最左侧文字,并删除该行其余对象;各行互不干扰。

命令 功能
MERGETEXTLINES 选中断开的段落文字,按行自动合并,内容落到每行最左侧

五、按文字内容处理

15. 选择相同文字(SelectSame.lsp)

选中一个或多个文字后,命令会在全图中选中所有内容与之完全相同的单行/多行文字(比较前自动去除 MTEXT 格式代码,TEXT 与 MTEXT 可互相匹配)。

命令 功能
SELECTSAME 全图选中与当前所选文字内容完全相同的文字

16. 选择含剪贴板文字(SelectClip.lsp)

先复制一段文字到剪贴板,命令会遍历全图,选中所有文字内容中包含剪贴板文字的单行/多行文字;剪贴板若含多行,则按行拆分、包含任意一行即选中。

命令 功能
SELECTCLIP 全图选中内容包含剪贴板文字的文字对象

17. 重复文字标红(DupTextRed.lsp)

遍历所选单行/多行文字,去掉 MTEXT 格式控制码后按内容查重:整段内容与所选范围内另一个文字对象完全相同(部分相同不算)即视为重复,统一改为红色(颜色号 1);空内容不参与判断。仅改颜色、不改坐标,所选范围之外的文字不参与比较。

命令 功能
DUPTEXTRED 把选区内内容完全重复的文字改为红色

六、打印设置

18. A3 横向 PDF 打印设置(PrintSelPDF.lsp)

将当前布局的默认打印参数统一设为:DWG To PDF.pc3 绘图仪、monochrome.ctb 单色打印样式表、ISO full bleed A3 横向、窗口范围、居中打印、布满图纸。之后在打印对话框中框选要打印的窗口即可。

命令 功能
PDFSET 把当前布局默认打印设置改为 A3 横向单色 PDF

附一、脚本文件清单

文件名 命令 一句话功能
adtp20off.lsp ADTP20OFF adtp 文字字高缩小 80%(含块内嵌套)
adtp20up.lsp ADTP20UP adtp 文字字高放大 120%(含块内嵌套)
ADTPCENTERX.lsp ADTPCENTERX / ADTPCENTERXT / ADTPCENTERXM 译文居中并横向对齐原文中心 X
ArrangeAdtp.lsp ARRANGEADTP / ARRANGEADTP20 adtp 译文等间距重排、消除重叠(仅 Y 轴,X 不变)
DupTextRed.lsp DUPTEXTRED 选区内内容完全重复的文字改为红色
FixAdtpStyle.lsp FIXADTPSTYLE 全图把 Adtp+数字 样式修正为 Adtp
MERGETEXT.lsp MERGETEXT 所选文字从左到右合并到最左侧
MergeTextLines.lsp MERGETEXTLINES 按 Y 坐标分行,逐行从左到右合并
MTLineSpace.lsp MTLINESPACE 按输入系数统一重设多行文字行距
MTNearUpLine.lsp MTNEARUPLINE 超一行的多行文字上移贴近上方横线
PrintSelPDF.lsp PDFSET 当前布局设为 A3 横向单色 PDF 打印
selectadtp.lsp SELECTADTP / SELECTADTPT / SELECTADTPM / SELECTTEXTBYSTYLE 按样式名筛选文字
selectadtpall.lsp SELECTADTPALL / SELECTADTPALLT / SELECTADTPALLM 选 adtp 译文及其上方邻近原文
SelectAdtpMWrap.lsp SELECTADTPMWRAP 选因固定框宽自动折行(≥2 行)的 adtp 多行文字
SelectClip.lsp SELECTCLIP 全图选含剪贴板文字的文字
SelectSame.lsp SELECTSAME 全图选与所选内容完全相同的文字
text20off.lsp TEXT20OFF 选中文字(不限样式)字高缩小 80%
text20up.lsp TEXT20UP 选中文字(不限样式)字高放大 120%
TextToMText.lsp TEXTOMTEXT TEXT 转 MTEXT,保留位置/字高/颜色/样式/图层
TextToMTextTC.lsp T2M 文字统一为中上对齐(TEXT 转为 MTEXT)
TXMATCHX.lsp TXMATCHX 文字统一对齐方式并按最高文字 X 对齐

附二、常用组合示例

  1. 译文对齐:框选「译文 + 其上方原文」区域 → 运行 SELECTADTPALL 一次选全译文及其原文 → 运行 ADTPCENTERX,译文自动改为居中/中上对齐并贴齐各原文中心。
  2. 译文列消重叠重排:框选一列 adtp 译文 → 运行 ARRANGEADTP(在框选范围内均匀分布,不超出选区)或 ARRANGEADTP20(自上而下紧凑排列);若还需让译文贴近上方横线,再运行 MTNEARUPLINE
  3. 查重处理:框选待检查区域 → 运行 DUPTEXTRED 把内容完全重复的文字标红 → 再用 SELECTSAME 按需定位全图同类文字。