前段时间赶项目的时候卡在怎么把图片转换为cad这件事上,手上只有一张扫描来的手绘图纸,图里标注乱糟糟,线条还带不少墨迹晕开的痕迹,最开始随便找了个在线工具上传,出来的图形根本没法直接用,圆弧变成一段段碎短线,文字识别全是乱码,改起来的工作量几乎等于重新画一遍。

一开始没想着预处理图片,直接拖进转换软件,以为上传就能得到干净矢量图。原图分辨率不算低,但里面有阴影、杂点,还有铅笔反复涂抹留下的灰色色块,软件在识别的时候会把这些杂色全都当成有效线条一并提取,导出之后CAD里密密麻麻一堆多余线段,放大看很多线段端点都没闭合,后续做偏移、填充操作直接报错。试了两次在线网页端的工具,免费额度还很低,稍微大一点的图纸就限制导出,还要压缩图片,压缩之后线条更模糊,识别质量进一步往下掉。

后来才反应过来,图片本身得先处理。用画图软件把背景调成纯白,擦掉图纸边缘的污渍,把重叠多余的手绘草稿线删掉,只保留需要的轮廓,再调整对比度,让黑色线条和底色拉开差距。不用调得特别精细,只要保证线条连续,没有大片灰色杂斑就行。图片格式尽量存成黑白二值的tif,试过jpg格式,压缩带来的噪点还是会影响识别,tif会稳妥不少。

转换的时候用的是电脑本地的矢量化软件,导入处理好的图片,先设置识别阈值,阈值调太高细线条会直接丢失,调太低又抓一堆杂点,来回拉动滑块预览,直到预览窗口里只显示目标轮廓。然后选择提取轮廓,等待软件生成矢量图形,生成完直接导出dxf格式,这个格式能直接在CAD里面打开。

打开CAD之后,不要觉得完事了。

矢量转换出来的东西,永远会有缺陷。直线会微微弯曲,圆角被拆成很多小段折线,标注文字基本识别不准,大部分都要手动删掉重新输入。线段之间还有很多没有重合的端点,得用合并、捕捉命令一点点对接,不然做不了面域。碰到复杂的曲线图纸,比如带很多样条曲线的零件草图,转换后的效果会差很多,这种情况与其花大量时间修正,不如直接对着图片重新描图。

这只是我的个人感受,不是标准答案。同一张图,换别的软件或者在线平台,出来的结果差别会很大,有的工具擅长建筑平面图,有的更适合机械零件草图,没有一款能做到所有图片一键生成可直接交付的CAD图纸。

还有一点容易忽略,图片本身只是位图,不管用什么工具做怎么把图片转换为cad,本质上是软件自动描摹图片里的线条生成矢量对象,不是把图片里的尺寸信息直接读出来。原图上标的尺寸只是图片像素,转换完成之后所有尺寸都需要重新核对,不能直接拿来做加工或者施工依据,一旦原图本身尺寸标注有偏差,转换后的图形也会带着这个问题,这点之前踩过一次亏,差点直接拿去出图。

如果图片内容简单,比如只有外轮廓的简单零件、简易平面布局,预处理之后再矢量化,能省下不少描图时间。要是图片线条交错密集、手写标注多,或者照片拍的有透视倾斜,最好先矫正图片透视,不然转换出来的图形会歪斜,矫正操作比矢量化本身还要耗精力。有时候算下来,复杂图纸直接在CAD里插入图片参照,手动描线,反而比矢量化之后清理碎线更快。

那次折腾完,桌面上还留着好几版导出的dxf文件,有的碎线多到卡顿,有的丢失了一半轮廓。之后遇到这类需求,先看图片复杂程度,简单图就预处理再矢量化,复杂的直接放弃转换,用图片参照手工绘制。