做过成套图纸交付的人都懂那种场面:几十上百张图,一张一张Ctrl+P,选打印机、选纸张、选打印样式、定比例、点窗口、框选图框、确定、等它转圈、再手动改文件名存到指定文件夹,一套流程下来人是麻木的。CAD批量出图这件事,本质就是把这条重复链路交给机器跑,而Auto批量打印插件这类工具的价值,不在于界面做得多漂亮,而在于它能不能准确识别图框、正确套用页面设置、按规则自动命名、把成品规规矩矩落到目录里,并且在出错的时候告诉你错在哪。这篇内容就围绕这套逻辑展开,从方案选型、参数配置、实操流程一直讲到踩坑排查,适合刚接触批量出图的新手,也适合已经用过插件但总觉得"跑出来的东西不太对"的老用户对照检查。
1. 批量出图到底卡在哪:先把问题拆清楚再谈工具
1.1 手工打印被忽略的四笔隐性成本
很多人觉得手工打印只是"费点时间",实际上时间只是最表层的一笔账。第一笔是操作成本,一张图从唤起打印对话框到文件落盘,熟练的人也要四十秒到一分钟,一百张图就是一个半到两个小时,这期间人必须盯着,不能干别的。第二笔是出错成本,手点的时候最容易出的事是比例选错、打印样式忘了切、图框框偏了两毫米,这类错误在屏幕上不明显,等图纸打出来或者发出去被对方指出来,返工的是整批。第三笔是一致性成本,两个人交替打图,命名规则、存放路径、纸张方向几乎不可能完全一致,后期归档和送审时对不上号。第四笔是心理成本,明知道这活儿没技术含量却必须干完,越干越烦躁,烦躁到后面几十张就更容易错。
这四笔账里,真正值得用工具解决的是第二笔和第三笔。速度提升是顺带的结果,如果你只盯着"快",很容易选到一个跑得飞快但错误率同样高的方案,最后返工的时间比省下来的还多。我在实际使用中的判断标准是:一个批量出图方案,先看它出错时能不能被及时发现,再看它快不快。
1.2 批量插件真正接管的是哪几个环节
把手工打印拆成动作序列,大概是这么几步:定位图框范围、确定输出设备、确定纸张与单位、确定打印比例、确定打印样式表、确定打印范围、确定文件名与路径、执行、检查结果。批量打印插件接管的是第一步和第六到第八步,中间那几步设备、纸张、比例、样式,它通常不帮你"想",只帮你"套"——也就是从你预先做好的页面设置里读,或者从插件界面上统一指定一次,然后对每张图重复套用。
理解这一点非常关键,因为它决定了你的准备工作该做在哪。很多人装完插件就直接框选开跑,跑出来一片空白或者比例乱七八糟,然后回头骂插件不好用,实际上问题出在页面设置根本没做对。插件是执行者,不是决策者,它不会替你判断这张A1的图该按1:100还是1:50出,这个判断必须由你在模板里定死。
还有一类插件会额外做"图框识别"和"文件名提取",这两项才是真正拉开差距的地方。图框识别决定了它能不能在一张乱糟糟的模型空间里准确找到那十几个矩形;文件名提取决定了它能不能从图签里的属性块或者文字里把图号、图名读出来拼成文件名。这两项做得好的插件,能把整个流程压到"选一次、点一次"的程度。
1.3 四类方案横向对比:别一上来就找插件
批量出图不是只有插件一条路,主流做法至少有四种,各自的适用边界差别很大。选错方案比不会用插件更浪费时间。
| 方案 | 实现方式 | 上手难度 | 适合图纸量 | 主要短板 |
|---|---|---|---|---|
| 纯手工 | 逐张Ctrl+P | 无 | 1到10张 | 量大必错,无法复用 |
| 命令行脚本 | 用SCR文件驱动-PLOT命令 | 中等,需记参数顺序 | 20到200张,图纸高度同构 | 版本差异大,提示顺序会变,容错差 |
| 平台自带发布 | 图纸列表批量发布PDF | 低 | 有规范页面设置的成套图纸 | 不能按图框自动识别,命名偏死板 |
| 专用批量打印插件 | 加载后图形界面配置 | 低到中等 | 50张以上,长期重复 | 依赖图纸规范化程度 |
我一般这么建议:图纸少于十张,手工反而最省事,配工具的时间够你打完两遍。图纸在二十到一百张、而且图框全部标准化、页面设置也统一的,先用平台自带的发布功能试一轮,能跑通就不用装东西。只有当图纸量大、图框位置散乱、或者需要按图框自动切分和命名的时候,专用插件才真正体现出价值。至于SCR脚本,它的定位是"补刀"——遇到插件处理不了的个别情况,或者需要定时无人值守跑,用它兜底最合适。
1.4 什么样的图纸才配得上"自动化"
这句话反过来说更清楚:图纸不规范,自动化只会把错误放大一百倍。手工打图时,一张图比例错了你能当场看出来;批量跑完一百张,你可能一周后才发现整批都是1:1。所以在动手之前,值得花半小时做一次"图纸体检"。
体检项就那么几个:图框是不是统一的块,块名是否一致,块基点是否在左下角,图框有没有被缩放或炸开,图签里的图号图名是属性还是散文字,模型空间里有没有游离在图框外的杂物,图层命名是否统一,打印样式表有没有附着。这几项里任何一项不达标,批量出图的结果都会打折。尤其是"图框被炸开"这一条,一旦图框变成了四根独立的直线,绝大多数按块识别的插件就直接失效了,只能退回按图层或者手动画矩形的方式。
注意:不要在一张已经画了两年的老图上直接跑批量。先另存一份副本,在副本上做清理和规范化,确认跑通之后再回到正式文件。批量打印最容易出的事故就是误改了原图还没发现。
2. 工具选型与运行环境准备
2.1 判断一个批量打印插件是否合格的五条硬指标
市面上这类工具不少,功能描述看着都差不多,实际用起来差别很大。我自己的筛选标准就五条,按重要性排序。
第一条,图框识别方式必须支持多种,至少要有"按图层"和"按块名"两种,最好还能支持"按闭合多段线"和"按图签属性块"。因为实际项目里这四种情况都会遇到,只支持一种的工具迟早会让你卡住。
第二条,必须能读取已有的页面设置。也就是说你在布局或者模板里配好的PC3、CTB、纸张、比例,插件能直接调用,而不是逼你在它的界面上再填一遍。重复填写就意味着两份配置可能不一致,这是错误的重灾区。
第三条,必须支持自动命名,并且命名规则可配置。能拼接固定前缀、图号、图名、日期、版本号,能从块属性里取值。这一条决定了你跑完之后是拿到一堆"Drawing1.pdf"还是拿到一堆能直接归档的文件。
第四条,必须有执行日志和失败跳过。跑一百张图,中间有三张因为图框异常失败,好的工具会把这三张单独列出来并且继续跑完剩下的,差的做法是整个流程中断,你还得从头再来。
第五条,支持合并输出与拆分输出两种模式。送审通常要一个合并的PDF,归档通常要单张PDF,两种需求都真实存在。
至于界面好不好看、有没有中文,这些排在很后面。我见过界面极其简陋但识别逻辑扎实的工具,也见过花里胡哨跑一半崩掉的。
2.2 插件加载的三种方式与信任路径设置
插件拿到手,第一步是让它能被CAD认出来。常见形态有三种:编译好的动态库、LISP程序文件、以及打包好的安装程序。安装程序最省事,一路下一步,通常会自动写入启动组。动态库需要在命令行里手动加载一次,然后把加载路径写进启动组,否则每次开图都要重来一遍。
这里有个几乎所有新手都会踩的坑:CAD出于安全考虑,默认只允许从"受信任的位置"加载可执行代码。你把插件放在桌面或者下载文件夹,加载时可能毫无反应,命令行也不报错,让人一头雾水。解决办法是打开选项配置,找到文件页签下的受信任位置列表,把插件所在目录加进去;或者用系统变量把安全加载级别调低。
命令: TRUSTEDPATHS 作用: 查看和添加受信任的文件夹路径 建议: 把插件目录、模板目录、输出目录统一放在一个工程根目录下,整体加入信任列表 命令: SECURELOAD 取值: 0 关闭安全加载限制 / 1 提示后加载 / 2 直接拒绝 建议: 日常保持1,调试插件时临时设为0,用完改回来启动组的配置路径在选项对话框里,把加载命令或者LISP文件按顺序加进去,注意顺序很重要——如果插件依赖某个前置的库文件,那个库必须排在前面,否则加载时会报找不到依赖。
注意:不要为了图省事长期把安全加载关掉。养成"目录加信任、级别保默认"的习惯,能避免很多莫名其妙的加载失败,也不至于让来路不明的文件随便跑起来。
2.3 打印机、PC3与CTB:批量出图的地基
这三样东西配置不到位,插件再好也白搭。先说输出设备,批量出图九成以上最终要的是PDF,所以第一件事是确认系统里有一个可用的PDF虚拟打印机,并且它已经生成了对应的PC3配置文件。PC3文件里存的是纸张列表、分辨率、是否可打印到文件这些设备级参数,它相当于"这台设备的说明书"。
CTB是打印样式表,管的是颜色到线宽的映射。国内常见的出图习惯是彩色图层配黑白打印样式,把不同颜色映射成不同线宽。这里最容易出的问题是模板里附着的样式表在别人机器上不存在,或者文件名大小写不一致,插件读到空值就按默认样式打,结果线宽全变成一样的细线,图面糊成一片。
配置顺序建议是这样的:先在系统里装好PDF虚拟打印机,确认能正常输出一张测试页;然后在CAD里新建一个页面设置,选好设备、纸张、单位、比例、样式表、打印范围,保存下来;接着确认这个页面设置能被其他图纸引用,方法是打开另一张图,看页面设置的导入列表里能不能找到它。这三步都通过,再谈插件。
| 配置项 | 常见取值 | 出错后果 |
|---|---|---|
| 输出设备 | PDF虚拟打印机 | 找不到设备,整批失败 |
| 纸张 | 按图幅选A0/A1/A2/A3 | 图被裁切或大幅留白 |
| 单位 | 毫米 | 比例整体偏差25.4倍 |
| 打印样式表 | 黑白线宽样式 | 线宽丢失,图面发灰 |
| 打印范围 | 图框/窗口 | 打到模型空间全图,内容缩成一点 |
| 打印比例 | 固定值,不勾选布满图纸 | 每张缩放不一致,无法量测 |
表里最后一行值得单独说。工程图最忌讳的就是"布满图纸",因为每张图的内容范围不一样,勾了它,每张图的缩放比例都不同,图上标的尺寸就对不上了。批量出图必须锁定固定比例,这一点在后面的参数章节还会展开。
3. 核心参数与配置逻辑:批量出图的成败都在这
3.1 图框识别的四种方式与各自的适用场景
图框识别是整个流程的入口,识别错了,后面全错。四种方式我按可靠性从高到低排一下。
按块名识别是最可靠的一种。前提是全套图纸的图框都是同一个块,块名一致,没有被改过名字或者炸开。识别逻辑很简单:遍历模型空间的所有块参照,块名匹配就取它的外框范围。优点是精准,缺点是对图纸规范度要求高,图纸一旦是从别处拷来的,块名很可能带后缀。
按图层识别次之。把所有图框的边线放在一个专用图层上,比如统一叫图框层,插件遍历该图层上的所有闭合多段线,取外接矩形。这种方式对块没有要求,图框是炸开的也能识别,缺点是对图层纪律要求高,画图时不小心把别的线画进了图框层,就会多识别出一个错误区域。
按闭合多段线识别是兜底方案。不管图层不管块名,只要是闭合的四点多段线,面积在合理范围内就当作图框。这种方式在图纸混乱时反而好用,但误判率也最高,需要设置面积阈值来过滤掉图签里的小方框、表格里的小格子。
按图签属性识别最聪明,也最挑图纸。它读的是图框右下角图签里那个带属性的块,从属性值里直接拿到图号、图名、比例,同时用这个块的位置反推图框范围。这种方式的好处是命名和识别一步到位,坏处是图签必须是属性块,散文字读不了。
实际操作里,我一般让用户先跑一次"预览识别结果",插件会在每个识别到的图框上画个高亮框,这时候你一眼就能看出多识别了还是漏识别了。这一步绝对不能跳过,尤其是有外部参照的图纸,参照里的图框可能被重复识别。
3.2 比例、纸张与图框尺寸的换算关系
这部分是纯计算,但很多人算不清,导致出图比例整体偏移。核心前提只有一个:模型空间的绘图单位是毫米,也就是一个图形单位等于一毫米实长。在这个前提下,图框在模型空间里的尺寸等于纸张尺寸乘以比例分母。
举个例子,A3纸是420乘297毫米,按1比100出图,模型空间里的图框就应该画成42000乘29700。同理,A1纸841乘594,按1比50出图,模型里是42050乘29700;A0纸1189乘841,按1比100出图,模型里是118900乘84100。你可以拿计算器验算一下,凡是按标准比例画的图框,长宽比都应该是根号2,约等于1.414。如果某张图的图框长宽比明显不是这个数,那它要么是非标图幅,要么是被拉伸过,批量跑的时候这张一定会出问题。
搞清楚这个关系之后,插件里那个"打印比例"参数的填法就很明确了:填1比100,就对应模型空间里那个42000宽的图框;填1比50,对应42050宽的图框。同一批图纸如果混了不同比例,就必须分组跑,一组一个比例,不能一次全选。这一点是新手最容易忽略的,看到插件有"自动适应比例"的选项就勾上,结果出来的图有的能量有的不能量。
注意:如果图纸是从其他单位拷来的,模型空间单位可能被设成了米或者英寸。出图前用测量命令量一下图框的实际宽度,A3图框在毫米单位下应该是42000左右(1比100),如果量出来是42,那单位就是米,必须先整体缩放或者改单位设置,否则打出来必然错。
3.3 命名规则怎么设计才经得起归档考验
跑完批量打印,最烦的不是等,而是面对一百个文件名不知道该发哪个。所以我一般要求命名规则在设计阶段就定死,让文件名自己说话。
一个好的命名规则大概长这样:项目代号-专业代号-图号-图名-版本号.pdf。比如一个虚构的代号示例,市政排水专业的第十号图,第二版,命名就是"XMPS-PS-010-排水管道纵断面图-V2.pdf"。这个结构里每一段都有用:项目代号用于区分项目,专业代号用于分包,图号用于排序,图名用于人眼识别,版本号用于区分改版。
几个实操要点。第一,图号和版本号必须补零对齐,用010而不是10,否则在文件夹里按名称排序时2会排在10后面。第二,图名里绝对不能出现斜杠、冒号、问号、星号这些字符,Windows下这些是非法字符,插件写到一半会直接失败,而且失败提示往往很含糊。第三,路径总长度要控制,Windows下完整路径超过两百六十个字符就容易出问题,目录层级别做太深。第四,中文文件名没问题,但如果是跨系统传阅,建议关键字段用英文或拼音,避免对方系统编码不一致。
命名规则的取值来源通常有两种:从块属性里读,或者从插件界面上手工填一个前缀然后自动编号。前者适合图纸规范、图签属性完整的项目,后者适合图号还没定稿、先跑一版看效果的场景。我个人的习惯是先用自动编号跑一版草稿,等图号定稿了再用属性提取跑正式版。
3.4 单份PDF与合并PDF的选择逻辑
输出形态这件事,取决于成品拿去干什么。送审、报批、给甲方看,通常要一个合并的PDF,方便对方从头翻到尾,也方便盖骑缝章。归档、发给各专业配合、后期单张修改替换,则要单张PDF,改哪张换哪张。
合并输出要注意顺序问题。合并顺序默认是按文件名的字母序,所以前面强调的补零对齐在这里就体现价值了。如果图号是1、2、10这种不带零的写法,合并出来就是1、10、2,顺序全乱。有些插件支持按图框在模型空间的位置排序,从左到右或者从上到下,这种排序方式在图纸排列本身就有规律时很好用,但图纸排得乱的时候就靠不住,还是文件名排序最保险。
还有一种中间形态,按专业或者按图幅拆成几个合并包。比如建筑一个包、结构一个包、水电一个包,每包内部合并,包与包之间分开。这种形态在多方配合时最实用,各专业拿到自己的那一包就行,不用在几百页里翻。
另外提醒一句,合并PDF的时候要留意文件体积。一百张A1的矢量图合并起来可能几百兆,如果图里嵌了光栅底图或者大量填充,体积会翻好几倍。有些插件提供压缩选项,会降低图像分辨率,用在报审版上没问题,用在施工版上要谨慎,别把细节压没了。
4. 完整实操流程:从零跑通一次批量出图
4.1 图纸预处理:清理、核查、另存
正式开跑之前,先做一轮清理,这一步能省掉后面一半的麻烦。命令层面就三个:清理无用的块和图层、检查图形错误、删除重叠对象。清理命令反复执行两到三次,直到提示没有可清理的项目为止;检查命令能修掉一些隐藏的图形数据库错误,不修的话批量跑到某一张可能直接崩掉;删除重叠对象要注意,它会删掉重合的线,如果图里有故意叠画的线型,慎用,最好在副本上跑。
清理完之后做三项核查。一是图框核查,用一段小脚本把所有图框块的插入点列出来,看看有没有跑到天边去的异常坐标。二是图层核查,确认图框层、标注层、文字层都规整,没有把图框画进标注层的情况。三是外部参照核查,如果有参照,确认参照路径是相对路径并且文件都在,参照绑定还是保留要提前决定,绑定之后图框识别会更准,但文件体积会变大。
(defun c:CHKFRAME ( / ss i e ed pt) (setq ss (ssget "_X" '((0 . "INSERT") (2 . "TK_A3")))) (if ss (progn (setq i 0) (repeat (sslength ss) (setq e (ssname ss i) ed (entget e) pt (cdr (assoc 10 ed))) (princ (strcat "\n图框 " (itoa (1+ i)) " 插入点: " (rtos (car pt) 2 2) "," (rtos (cadr pt) 2 2))) (setq i (1+ i))) (princ (strcat "\n共找到 " (itoa (sslength ss)) " 个图框"))) (princ "\n未找到指定块名的图框,请检查块名")) (princ))这段代码的作用很朴素,就是把指定块名的所有图框插入点打印出来,块名那里换成你项目里实际的图框块名。跑完看输出,如果某个坐标是几十万甚至上百万,那基本可以判定是误插入,删掉或者移回来再继续。这一步花两分钟,能避免后面出现一张空白页或者一张只打了半个图框的废品。
核查完,另存副本,副本文件名带上日期和"批量出图"字样,后续所有操作都在副本上做。
4.2 插件参数逐项配置
打开插件界面,参数一般分几组,我按配置顺序说。
第一组是识别设置。选识别方式,按块名就把块名填进去,按图层就把图层名填进去,按多段线就设面积阈值。阈值怎么定,量一下最小图框的面积,比如A3按1比100是42000乘29700,约十二亿平方毫米,那阈值下限设个五亿就够了,上限设个五百亿覆盖A0大图。设完点预览,看高亮框是否和图框重合。
第二组是输出设置。选输出设备、纸张、打印样式表、打印比例。比例这里要注意,如果整批图纸比例一致,直接填死;如果混了比例,就分批跑。打印范围选图框或者窗口,不要选范围或者图形界限。
第三组是命名设置。选命名模板,填前缀,勾选要拼接的字段,指定输出目录。输出目录建议单独建一个空文件夹,别和图纸放一起,跑完一眼就能看出数量对不对。
第四组是执行设置。是否合并、合并后的文件名、失败是否继续、是否生成日志、日志存哪。日志一定要开,跑完对着日志核数量是最快的校验方式。
第五组是高级设置,一般包括是否后台打印、是否覆盖同名文件、是否打印戳记。后台打印能提速,但出问题时不容易中断,图纸量大的时候建议关掉,宁可慢一点也要能随时停。
4.3 试打三张:最省钱的一道保险
参数配完,不要直接全选开跑。挑三张有代表性的:一张内容最满的、一张图框位置最偏的、一张比例和其他不一样的。单独跑这三张,然后逐项检查。
检查什么?看页数对不对,一张图框应该对应一页;看纸张尺寸对不对,用PDF阅读器看文档属性里的页面大小;看比例对不对,找图上标了尺寸的地方量一下,量出来和标注一致才算过;看线宽对不对,放大到百分之百看粗线是不是明显比细线粗;看图框位置对不对,图框应该居中或者按你设定的对齐方式摆放,不该偏到边角。这五项都过,再全量跑;任何一项不过,回头改参数重试,就三张图,成本很低。
我见过太多人跳过这一步,一百多张跑完发现整批比例错了,重跑一遍又是半小时,加上前面等待的时间,心态直接崩。
4.4 全量执行与过程监控
全量执行时,如果图纸超过一百张,建议分批次,五十到一百张一批。原因有两个:一是单次任务太大,内存占用高,跑到后面容易卡;二是分批跑完可以中途校验,发现问题只损失一批。
执行过程中盯三个东西。进度条走到哪了,正常情况应该是匀速前进,如果卡在某一张超过半分钟,那张大概率有问题,记下编号。日志有没有在实时写入,如果没有,说明插件可能已经卡死。系统资源占用,如果内存一路飙升不回落,说明临时文件没被清理,得停下来清一次。
跑到一半需要中断的情况也有,比如发现参数填错了。这时候不要直接关程序,先在插件里点停止,让它把当前这张处理完,再退出,避免生成一个损坏的半截PDF。
命令行脚本的写法可以做个补充参考,各版本提示顺序有差异,务必先用命令行逐条走一遍确认:
命令: -PLOT 随后按提示依次输入: 是否详细配置 -> Y 布局或模型 -> Model 输出设备名 -> 你的PDF设备.pc3 纸张名称 -> ISO A1 (841.00 x 594.00 MM) 单位 -> Millimeters 图形方向 -> Landscape 反向打印 -> No 打印区域 -> Extents 或 Window 打印比例 -> 1:100 打印偏移 -> Center 是否布满图纸 -> No 打印样式表 -> 你的线宽样式.ctb 是否打印线宽 -> Yes 是否打印戳记 -> No 是否保存修改 -> No 输出文件名 -> 完整路径 最后确认 -> Y这段序列只是示意,不同版本在"是否打印戳记""是否先打印到文件"这些提示上顺序不一样,甚至有的版本会多问一句着色打印。所以脚本的正确用法不是照抄,而是开着命令行手动走一遍,把每一步实际出现的提示原样记录下来,再拼成脚本文件。这一步花十分钟,比事后调试一小时划算。
4.5 输出结果的三重校验
跑完之后别急着关窗口,做三重校验。
第一重数数量。输出目录里的文件数应该等于识别到的图框数,日志里通常也会写"成功多少、失败多少"。对不上就去日志里找失败的那几条。
第二重查命名。随便抽十个文件名,看格式是否统一、图号是否连续、有没有出现非法字符被替换成下划线的情况。图号不连续说明中间漏识别了图框。
第三重翻内容。打开合并版,从头快速翻一遍,重点看每页是不是完整的图框、有没有空白页、有没有两页内容重叠。翻的速度可以很快,一秒一页,异常页面基本一眼就能看出来。
这三重校验做完,才算真正出完图。整个过程听起来步骤多,但熟练之后,一张新项目的图纸从预处理到出完,一百张的量大概二十分钟到半小时,比手工打快十倍不止。
5. 常见问题与排查实录
5.1 打出来是空白页或者只有半个图框
这是最高频的问题,成因大概四种。一是图框识别到了,但打印范围设置成了"范围"或者"图形界限",而图形界限远大于实际内容,结果整页缩成一个小点。解决办法是把打印范围改成"窗口"或者按图框对象,让插件把识别到的矩形直接作为窗口。
二是图框所在图层被关闭或者冻结了。这里有个容易被误解的点:关闭的图层不打印,冻结的图层也不打印,只有"锁定"的图层照常打印。所以出图前要先全部图层打开解冻,再跑批量。有些插件会自动做这一步,有些不会,得自己确认。
三是视口问题。如果图纸是在布局里出的,布局里的视口可能没有正确设置显示范围,或者视口被关闭了。这种情况要么回到模型空间出图,要么逐个检查布局视口,量大就不划算了。
四是图框本身有问题。比如图框是个块,但块被缩放了零点零几倍,打印出来只占一个指甲盖大小;或者图框的块基点跑到了图形外面很远的地方,打印窗口跟着基点跑到空白区域去了。
5.2 比例不对、线宽丢失、文字变问号
比例不对,九成是因为勾了"布满图纸"或者打印比例没填。检查方法很简单,打出来量一下图上标注的尺寸,标注写一千,量出来九百八,说明比例基本对,可能差在边距;量出来只有几十,那是缩放差了一个数量级,回头查单位设置。
线宽丢失,通常是打印样式表没附着上。检查路径有两个:一看页面设置里指定的样式表文件名,是不是和实际存在的一致,注意大小写和扩展名;二看图层颜色有没有对应的映射,如果图纸用的是真彩色而不是索引色,样式表可能匹配不上,得改回索引色。另外还要确认"打印线宽"这个开关是打开的,有些模板里它是关的。
中文变问号,基本是字体问题。图纸里用了系统里没装的字体,打印时被替换成了默认字体,中文部分就成了问号或者方框。解决办法是把缺失的字体文件补到字体目录,或者在模板里统一下用常见的字体。这个问题在跨单位传图时特别常见,拿到别人的图先检查字体。
5.3 大批量卡死、内存飙升、任务中断
跑几十张就卡住,最常见的原因是单次任务太大。临时文件在不断累积,内存不释放,跑到某一张就撑不住了。对策是分批,五十张一批,每批跑完关掉插件重开一次,让内存归零。
第二个原因是后台打印。后台打印把任务丢给系统的打印服务,速度是快,但一旦某个任务出错,整个队列就堵住了,前面的还在排队,后面的进不来,表现出来就是"卡住不动"。图纸量大或者图纸质量参差的时候,把后台打印关掉。
第三个原因是同名文件被占用。输出目录里有一个文件正被PDF阅读器打开,插件写不进去,就会一直重试或者直接失败。跑之前把输出目录清空,或者至少关掉所有打开着的PDF。
第四个原因是路径太长或者含特殊字符。输出目录路径超过两百六十字符,或者目录名里有方括号、井号这类字符,写入时可能失败。把输出目录放到层级浅的位置,命名用常见字符。
5.4 问题速查表
| 现象 | 最可能原因 | 排查动作 | 处理办法 |
|---|---|---|---|
| 整批空白页 | 打印范围设错或图层关闭 | 检查范围设置与图层状态 | 改为窗口/图框范围,全部图层打开 |
| 只有小半个图框 | 图框被缩放或基点偏移 | 量图框实际尺寸 | 重定义块基点,恢复正确缩放 |
| 每张比例不一致 | 勾选了布满图纸 | 看页面设置 | 取消布满,锁定固定比例 |
| 线宽全一样细 | 打印样式表未附着 | 查样式表文件名与路径 | 重新指定CTB,确认打印线宽开启 |
| 中文成问号 | 字体缺失被替换 | 对照字体列表 | 补齐字体文件,统一模板字体 |
| 识别数量偏多 | 图签小方框被误判 | 看高亮预览 | 调面积阈值,改用按块名识别 |
| 识别数量偏少 | 图框被炸开或块名带后缀 | 抽查未识别的图框 | 重新定义成块,统一块名 |
| 跑到中途卡死 | 单批任务过大 | 看内存与临时文件 | 分批执行,关闭后台打印 |
| 文件写不进去 | 同名文件被占用 | 查输出目录 | 清空目录,关闭已打开的PDF |
| 合并顺序乱 | 图号未补零 | 看文件名列表 | 图号统一三位补零 |
表里最后一行值得多说两句。补零这件事在单个项目里是小事,但在多项目并行、文件混在一个归档目录里的时候,就是能不能快速找到图的关键。我现在的习惯是所有编号字段一律三位补零,包括图号、版本号、批次号,宁可多打两个零也不偷懒。
6. 我在实操中总结的几条经验
6.1 先做模板,再做批量
这句话我逢人就说。批量出图的效率差别,八成不在插件,而在模板。把页面设置、打印样式表、图框块、图签属性、图层规范全部固化到一个模板文件里,新项目从模板起,出图时插件只需要认一个块名、套一个页面设置,全程不用改参数。反过来,如果每个项目的图框都不一样,每次出图都要重新配一遍参数,那自动化省下来的时间又被配置吃回去了。
模板里最值得花心思的是图签属性块。把图号、图名、专业、比例、日期、版本全部做成属性,属性标记用英文短名,比如图号用DWG_NO,图名用DWG_NAME,这样在插件里提取的时候好写规则,也不容易因为中文编码出问题。属性值还可以设成字段,自动读取文件名或者日期,减少手工填错。
6.2 分批、留日志、留副本,三件事别省
分批是为了可控,一批出问题只损失一批。日志是为了可查,跑完对不上数的时候,日志是唯一的线索。留副本是为了可退,出图过程中如果插件做了什么意外修改,副本能让你回到起点。
这三件事单独看都是小事,加起来能挡住绝大多数的翻车。我现在跑批量,哪怕只有二十张图,也会建一个带日期的输出目录、开日志、在副本上操作。习惯成自然之后,反而比图省事的时候更省时间,因为不用花时间收拾残局。
6.3 图纸规范是长期的复利
批量出图这件事,短期看是工具问题,长期看是规范问题。一套图纸如果从画第一根线开始就守规矩,图框用统一的块、图层按约定命名、图签属性填全,那么后面所有的自动化环节都会顺。反过来,每次出图都要临时救火,救完这次下次还这样。
我自己的做法是把出图检查项做成一张清单,画图阶段每周对一次,出图前再对一次。清单纯手工维护,就是一张普通的表格,十几行,勾一遍两分钟。坚持半年之后,出图前需要临时处理的问题少了非常多,插件也几乎不再出现识别错误。这套东西听起来很土,但确实管用。
6.4 后续还能往哪扩
这套流程跑顺之后,可以往外延两步。一步是往上游延,把图纸规范化做成脚本,一键检查图框块名是否统一、图签属性是否填全、图层是否超标,把问题挡在出图之前。另一步是往下游延,出完图之后自动生成一份出图清单,列出图号、图名、页数、文件大小、生成时间,随成品一起交付,对方拿到手一目了然。
这两步都不复杂,前者用一段选择集遍历加判断就能写出来,后者用一个简单的批处理脚本读目录列表就能生成。真正花时间的不是写代码,而是把规则想清楚。规则想清楚了,代码都是几十行的事。
最后分享一个我自己一直在用的小习惯:每次批量出图跑完,我会把当次的参数配置导出一份,和成品放在同一个目录下。下次同类项目直接导入,不用重新猜当时是怎么设的。这个习惯帮我省下的时间,比插件本身还多。