做射频和电源的兄弟们,碰到过这种场景吧:PCB设计在ADS里做得差不多了,版图也画完了,结果要给散热器加工厂下单,对方来一句“发我DWG就行”。你打开ADS的Export菜单,面对一堆格式选项发愣——Gerber、GDSII、DXF……工厂要的DWG到底从哪来?单位按什么出?为什么导出的圆孔在AutoCAD里变成了多边形?这些问题我全都踩过,今天干脆把从ADS导出DWG给工厂的完整流程和单位转换避坑指南一次写清楚。这篇文章解决的核心问题就两个:怎么把ADS版图转成机械厂能直接用的DWG,以及怎么保证文件里的尺寸在单位转换后不出幺蛾子。适合正在做射频模块、功放模块、电源板,或者要给PCB配散热器的硬件工程师和Layout工程师看。
1. 搞清需求源头:ADS版图为什么要导DWG给工厂
1.1 PCB厂和散热器厂用的是两套“绘图语言”
PCB打样厂看的是Gerber文件,因为Gerber里记录了每一层的走线、焊盘、阻焊、丝印,这是PCB制造的标准格式。但是散热器加工厂不一样,他们用的是AutoCAD、SolidWorks这类机械设计软件,看的是DWG或DXF,要的是外形轮廓、孔位、开槽尺寸这些几何信息。
这两套语言完全不互通。你把自己辛辛苦苦在ADS里画好的版图直接甩给散热器厂,对方大概率打不开,就算打开了也看不懂。反过来也一样,机械工程师给你一份散热器的二维图,你也没法直接用它去画PCB的禁布区。
我举个例子你就明白了。做一个2.4G功放模块,PCB上有一个很大的散热焊盘,焊盘下面要贴一块铝合金散热器,散热器上有两个M3螺纹孔用来固定,还有一个中心定位柱要插到PCB的定位孔里。这个时候,散热器厂需要知道的只有三个信息:散热焊盘的外形轮廓、两个M3螺纹孔的相对位置、定位柱和定位孔的配合尺寸。这些东西原本都存在于ADS的版图里,但都埋在铜箔、走线、丝印这些“噪音”中间。
所以从ADS导出DWG,本质上就是把PCB版图里和结构相关的几何信息提取出来,翻译成机械加工领域能识别的语言。外部接口、装配关系、开孔位置,全靠这个文件沟通。
1.2 明确你要导出的内容,不是把整个版图“甩”过去
很多新手拿到ADS版图,导出一个DWG就直接发工厂了,结果导出来一大堆线,又密又乱,机械师傅打开以后根本找不到重点。我现在的习惯是:先想清楚这个DWG要给工厂做什么用,再决定导哪些内容。
给散热器厂或者结构件加工厂的DWG,一般只需要这几类信息:
- 板框轮廓,这是最基础的,告诉工厂PCB占多大面积。
- 散热焊盘/大面积接地焊盘的外形,特别是功率器件底部的焊盘,因为散热器要和它贴合。
- 螺丝孔、定位孔、中心柱孔,包括孔心坐标和孔径。
- 和结构件干涉的区域,比如屏蔽罩的避让区、连接器的开孔位置。
- 如果有必要,可以加一层丝印,标注关键器件的位置作为参考,但别把元件值标上去,那是给PCB厂看的,不是给机械厂看的。
不需要导的东西也很多:内层铜箔、走线、过孔阵列、铺铜区域,这些对散热器加工没有任何意义。过孔阵列如果导出去,机械工程师还会误以为这些孔都要加工出来,那就出大问题了。
我见过最离谱的一次,有人把整个开关电源PCB的铜箔全部导进DWG,散热器厂按图把走线也当成雕刻路径,差点做出一个带“走线沟槽”的散热器。这不是段子,是真的发生过。所以导出之前一定要在ADS里把图层显示控制好,只开需要导出的层。
1.3 ADS导出DWG的本质:DXF与DWG的关系
先说一个很多人混淆的点:ADS原生导出的交换格式是DXF,不是DWG。DXF和DWG都是Autodesk公司定义的图形交换格式,DWG是AutoCAD的原生文件格式,DXF是专门用来和其他软件交换数据的文本/二进制格式。
工厂说“给我DWG”,其实是因为他们日常用AutoCAD画图、出图、下料,对DWG最熟悉。但实际上你把DXF发给工厂,AutoCAD也能直接打开,然后另存为DWG。所以从ADS到DWG,标准的路径是:ADS导出DXF,然后在AutoCAD里打开并另存为DWG。
也有部分版本的ADS或第三方插件声称可以直接导出DWG,但我实测下来,导出DXF再转DWG这个流程最稳定,尤其是在涉及圆弧、样条曲线和带填充区域的时候。ADS直接生成的文件有时候在AutoCAD里会出现图层丢失或圆弧变形的问题,而通过DXF走一遍反而更干净。
另外,DXF本身也有版本差异。老版本的AutoCAD打开新版DXF没问题,但新版AutoCAD打开旧版DXF可能出现图形丢失。我建议导出时选较通用的DXF版本,比如R12或R2000,基本兼容所有AutoCAD版本。你要是导出个DXF 2018,工厂师傅电脑上还装的是AutoCAD 2008,那就尴尬了。
2. 实操:从ADS版图一步步导出DWG的完整步骤
2.1 导出前的图层和原点规划
在ADS里动手点击Export之前,先花五分钟做两件事:管图层、定原点。
图层管理我前面已经强调过了,再补充一个细节:在ADS Layout里,图层的可见性直接影响导出结果。你关掉显示的层,默认不会出现在导出文件里。所以导出前先把不相关的层关掉,只留板框、散热焊盘、孔位、必要的丝印。这样导出的DXF里图层数量少,等会儿在AutoCAD里处理也方便。
定原点这个步骤很多人会忽略,但直接影响机械厂对图的效率。ADS Layout默认的原点可能在工作区的左下角,也可能在你画图过程中被移动过。如果原点位置不固定,导出到CAD里之后,板框可能落在离原点很远的地方,机械师傅打开图以后要花半天时间缩放、平移才能找到图形。
我的做法是:在导出之前,把原点设置到板框的左下角。这样导出的DWG打开以后,图形刚好在第一象限靠近原点的位置,CAD里双击滚轮就能看到整个板子,非常舒服。ADS里设置原点的操作一般在“Edit → Set Origin”或者通过命令行输入,不同版本位置略有差异,你自己找一下,关键是养成这个习惯。
2.2 ADS菜单导出操作详解
不同版本的ADS界面会有一些差异,我以自己常用的版本为例,菜单路径大概是这样的:
- 在ADS Layout窗口中,确认你要导出的图层已经全部可见,并且没有多余图层被打开。
- 点击菜单栏的 File → Export → Layout。
- 在导出类型里选择 DXF/DWG 相关选项。有的版本直接在格式下拉列表里选DXF,有的版本会有一个专门的DXF输出向导。
- 配置输出参数。核心是Units(单位)和Geometry resolution(几何精度),后面我会详细说单位的问题,这里先选你最终想要的目标单位,比如毫米(mm)。
- 指定输出文件名和保存路径,点击导出。
导出过程中有个“Geometry resolution”或者类似的精度参数,这个参数决定了圆弧和曲线被离散化成多段直线时的细分程度。值设得越小,圆弧越平滑,但文件越大;值设得太大,圆弧会变成明显的多边形。对散热器加工来说,孔径是毫米级的,建议精度至少设在0.01mm级别,这样导出的圆孔在CAD里看起来足够圆。
有的版本在导出DXF时会问你要不要“Export polygons as filled regions”之类的问题。如果工厂要用线切割或者激光切割,建议导成“填充区域”而不是单纯轮廓线,因为切割路径需要的是封闭区域。轮廓线如果有缺口,后处理会很麻烦。
2.3 在AutoCAD里做最后的“收尾”
ADS导出DXF以后,工作还没完。用AutoCAD打开这个DXF文件,做几个收尾操作:
先把文件另存为DWG。如果你的CAD版本足够新,直接打开DXF后“另存为”,文件类型选“AutoCAD 2000/LT2000 Drawing (*.dwg)”这种通用格式。为什么要选老格式?不是我保守,而是很多工厂的数控机床、激光切割机配套的电脑性能一般,装的也是老版本CAD或者国内二次开发的平台,新版本DWG文件他们打不开。通用格式虽然不是最先进,但一定可靠。
然后做一次图形清理。AutoCAD里输入“PURGE”命令,清理掉多余的块、图层、线型。再输入“AUDIT”检查图形数据库有没有错误,有错误就修复。这一步能避免工厂后来打开文件时遇到“图形文件无效”这类莫名其妙的问题。
最后检查封闭区域。对于要加工成孔的区域,可以用“BOUNDARY”命令点击内部任意一点,看能不能生成一个封闭的多段线边界。如果能生成,说明区域封闭;如果提示边界不闭合,就需要找到缺口位置手工处理。后面我会专门讲这个坑。
2.4 给工厂前的自检清单
导出、收尾做完以后别急着发邮件,对照这个清单过一遍:
- 单位和目标要求一致。
- 板框尺寸用测量工具量过,比如板框长度设计值是50mm,测量结果正好是50。
- 所有需要加工的孔都有清晰的封闭圆轮廓。
- 孔位坐标和PCB设计完全一致。
- 图面干净,无多余图层和图形。
- 文件类型是工厂能打开的DWG(或者你确认对方能打开DXF)。
- 文件名能让人一眼看懂:项目名+版本号+单位。
我自己吃过亏,文件名叫“layout_final”这种,结果第三个版本发出去,工厂改错了,最后查了半天才发现版本搞混了。从那以后我规定自己,文件名必须带日期、带版本、带单位,比如“PA_Module_v2.1_mm_20240115.dwg”。这个习惯能省好多事。
3. 单位转换避坑指南:最容易搞出“放大25.4倍”事故的地方
3.1 搞懂mil、mm、inch三者之间的关系
单位转换是ADS导出DWG给工厂过程中最容易出事故的环节,没有之一。很多人不理解为什么导出的图在工厂那边尺寸会放大25.4倍甚至39.37倍,其实就是单位搞错了。
PCB行业习惯用mil,1mil等于千分之一英寸。散热器加工行业习惯用毫米。AutoCAD老版本默认单位是英寸,国内的机械加工行业用毫米。这三个单位凑在一起,就是事故现场。
换算关系记住三句话就够了:
- 1英寸(inch)= 25.4毫米(mm)= 1000毫英寸(mil)。
- 1毫米(mm)= 39.37毫英寸(mil)。
- 1毫英寸(mil)= 0.0254毫米(mm)。
我做一个表格给你:
| 单位 | 1英寸 | 1毫米 | 常用场景 |
|---|---|---|---|
| inch | 1 | 0.03937 | 美系软件、老AutoCAD默认 |
| mm | 25.4 | 1 | 国内机械加工、散热器行业 |
| mil | 1000 | 39.37 | PCB设计、ADS Layout默认 |
ADS Layout里默认单位是mil。你画一根100mil的线,在ADS里显示100。导出DXF的时候如果忘了改单位,而且文件里也没有带单位信息,机械工程师拿到DWG以后用CAD一量,看到的数字是100。问题来了:他会把这个100理解成100mm还是100mil?绝大多数机械工程师的条件反射是——按毫米算。
于是,100mil的线变成了100mm的线,尺寸放大了39.37倍。如果ADS导出时选了inch,那100mil会变成0.1英寸(如果换算正确的话),但如果在CAD里设置的单位是mm,0.1英寸会被显示成0.1mm,尺寸缩小了254倍,那这个散热器基本没法用了。
3.2 单位错误会怎样:三个真实事故场景
场景一,也是最常见的:ADS里画了一个散热焊盘,宽度设计为5mm,但在设计界面里显示成196.85mil。导出DXF时,对话框里默认单位是mil,你没改,直接导出。机械工程师打开,用CAD一量,得到196.85,他以为是196.85mm,做出来的散热器比实际大了4倍。这板子没救了。
场景二:你在导出对话框里特意选了单位是“inch”,但工厂那边收到文件后,他们的CAD模板默认单位是mm。你图纸上画的是0.2英寸的孔,CAD测量显示0.2,他们当成0.2mm来加工。孔小了25.4倍,固定螺丝根本装不进去。
场景三,最隐蔽的一种:你的ADS导出时单位是对的,是mm,工厂的CAD里度量单位也设置成mm,一切正常。但工厂的师傅在CAD里做了一个“缩放”,把整个图纸按25.4倍缩放了一下,因为他上一单收到的图纸单位是inch。结果这一单的图被缩放后,所有尺寸都不对了。
遇到这种情况,图纸上就算标了尺寸也没用,因为图形实体已经被缩放,标注虽然显示的还是原始数字,但实际加工路径按缩放后的算。所以,单位问题一定要在文件层面确认清楚,不能在口头层面“估摸”。
3.3 如何快速判断一个DXF/DWG文件是什么单位
拿到一个DXF/DWG文件,如何在不开软件、不看说明的情况下快速判断它的单位?我的方法是找一个已知尺寸的对象来测。
如果你知道板框宽度设计为50mm,用CAD的“DIST”命令量一下这个板框图形的宽度:
- 如果测量结果接近50,说明图里的单位大概率是mm,可以直接用。
- 如果测量结果是1.9685,说明单位是inch(50mm=1.9685英寸)。
- 如果测量结果是1968.5,说明单位是mil(50mm=1968.5mil)。
另外,在AutoCAD里输入“-DWGUNITS”命令,会显示当前文件插入单位,这个信息可以作为辅助参考。但注意一个坑:DWGUNITS显示的只是CAD环境设置的单位,不等于图形实体内部的实际尺寸单位,因为图形可以是在mil环境下画的,被赋值成“无单位”,然后在mm环境下打开。所以最可靠的方法还是量一个已知尺寸,以实测结果为准。
熟悉工装夹具的人还会用另一种方法:找板厚信息。如果PCB设计里有板厚1.6mm,你在DWG里找到对应的板框区域,量它的厚度方向。得到1.6,那就是mm;得到0.063,那是inch;得到63,那是mil。跟前面一样,以测量结果为准。
3.4 解决单位问题的“三重确认法”
既然单位问题这么容易出,光靠脑子里绷根弦是不够的,要用流程来兜底。我现在所有要给工厂的DWG,都会做三重确认:
第一重,ADS导出对话框里明确选好目标单位。导出前最后看一眼,确定是mm还是inch还是mil,别默认。
第二重,在CAD图框的标题栏或者图纸角落放一个醒目的单位说明。写“所有尺寸单位为毫米(mm),未标注公差按±0.1mm执行”。这行字既是给机械工程师看的,也是给后续接手的人看的。
第三重,邮件正文里再说明一次单位,并注明板框的参考尺寸。比如“该DWG按mm单位导出,板框设计尺寸为49mm×35mm,请以此尺寸核对图纸比例”。如果对方打开图以后发现测量数值对不上,立刻就能看出来。
这套流程看起来土,但真的能救命。我靠它在过去几个项目里躲过了至少三次单位事故。
4. 常见问题与排查技巧实录
4.1 圆孔导出后变成多边形,是导出设置问题还是CAD显示问题
你在ADS里看的好好的圆孔,导到CAD里变成多边形,这时不要慌,先判断问题出在哪个环节。
如果是导出精度太低导致的,那在多边形模式下,圆弧被离散成段数很少的直线段,看上去棱角分明。解决方法是回到ADS导出对话框,调整几何精度参数。把精度值调小,让圆弧的离散段数增加,重新导出。
如果不是导出问题,而是CAD的显示问题,那圆孔其实还是圆的,只是视图显示精度不够。在AutoCAD里输入“VIEWRES”命令,把圆弧显示精度调高到20000,然后RE重生成一下,再看就圆了。这个操作不影响文件本身的数据,只影响屏幕显示效果。
还有一种情况是:导出时把圆弧自动转换成了样条曲线或多段线,导致尺寸标注时找不到真正的圆心,孔位坐标偏移。处理方法是回到ADS,看看导出选项里有没有“保留圆弧”的选项,优先输出真圆弧,而不是“把曲线转成多段线”。
4.2 封闭区域无法填充,问题往往出在线段接头上
工厂做线切割、激光切割的时候,需要导入DWG后提取封闭轮廓路径。如果图形里的封闭区域选不中、填充不了,十有八九是轮廓线有缺口或者有重叠线段。
最常见的原因有两个。一是ADS导出的轮廓线在端点处有微小的间隙,肉眼看不出来,可能只有0.001mm的精度丢失。但CAD的布尔运算对哪怕0.0001mm的间隙都很敏感。二是导入过程中发生了坐标取整,原本连在一起的线段端点被取整后错开了一点。
处理方法:在AutoCAD里选中所有相关线段,用“OVERKILL”命令删除重叠的或者重复的线段。然后用“PEDIT”命令把零散的线合并成一条多段线。最后用“BOUNDARY”命令在封闭区域内部点一下,看能不能生成对象。如果能,说明OK了。
如果你嫌这些命令太麻烦,换一种思路:在ADS导出之前,把需要加工的孔位图层设置成“填充模式”,让导出的DXF直接包含填充好的实体区域,而不是只有轮廓线。这样到了CAD里,孔就是一个个实体,不用再费劲去生成边界。
4.3 散热器和PCB孔位对不上,查这三个地方
散热器和PCB装配时发现孔位对不上,这是最让人头大的问题。别急着骂供应商,先按顺序查这三项。
第一项,检查原点基准。PCB设计时孔位坐标是以板框某个角为原点算的,散热器加工厂可能是以散热器中心或者左下角为原点排的孔。如果两边原点不是同一个点,所有孔的绝对坐标都会偏。解决办法:导出DWG前在ADS里统一原点,并在图纸上明确标注原点位置。
第二项,检查孔径类型。注意区分螺纹孔底孔、过孔、定位孔。M3螺纹孔的底孔直径大约2.5mm,过孔直径如果按3.2mm设计,那装M3螺丝的时候会松。还有定位孔,如果散热器上有个定位柱,孔径要比定位柱直径大0.1mm左右,确保能插进去又不至于晃动。这些尺寸在DWG里一定要标注清楚,不能让人猜。
第三项,检查热胀冷缩补偿。有些金属加工厂会在加工时预留放电间隙或者补偿切割缝。如果图稿上写3.2mm的孔,激光切割出来可能是3.25mm甚至更大。这个误差在孔径过大时会积累。我的经验是,在DWG的“技术要求”栏里把孔径公差写明白,比如“孔径按3.2㎜±0.05㎜执行”,工厂就知道标准了。
4.4 图纸打开后文字乱码、图层全堆在一个层上
DXF文件在AutoCAD里打开后文字变“????”,或者所有图形挤在“0”图层上,这种问题通常出在图层映射和编码上。
ADS里你用了中文图层名,“顶层”“底层”“丝印层”,导出DXF后中文在AutoCAD老版本里可能变成乱码。解决办法:在ADS导出前,把图层名改成英文。这是最省事、最不会出错的方案。我在ADS里的图层命名习惯是:BoardOutline、Pad_Top、Hole、Keepout、Silk_Top,全部英文,导出前再看一眼。
所有图形挤在0层,多半是导出时没有选择“按图层导出”的选项,或者目标软件做了图层合并。回ADS检查一下,导出DXF对话框中是否有“Export by Layer”或者类似选项,确保每个图层单独输出。
另外,如果工厂收到文件后跟你说“打不开”“提示图形文件无效”,大概率是DWG版本太新。这时候把文件另存成低版本DWG或者DXF发过去就行。千万不要尝试发压缩包带安装包,那是给自己找麻烦。
5. 一张能不被工厂退回的DWG图纸,还要注意什么
5.1 图层和颜色的“加工语义”
给工厂的DWG做得好不好,机械工程师打开一眼就能看出来。好的图纸,图层和颜色本身就带着“加工语义”。
我的习惯是:
- 白色/绿色:外形轮廓线,对应外形切割。
- 红色:需要加工的孔、槽,对应钻孔或铣槽。
- 黄色:参考信息,比如板框中心线、辅助定位线,不参与加工。
- 灰色:文本标注、技术要求。
图层命名按功能走,不加花哨的名字。我常用的几个:Out_Line、Hole、Slot、Text、Tech_Requirement。这样工厂做程序的时候,可以按图层关掉不需要的内容,效率翻倍。
还有一个小细节:整张图的线宽不要全部默认0.00mm。外形线可以用0.3mm线宽,标注用0.15mm,这样打印出来主次分明,工厂车间里打图纸看的时候不容易看错。
5.2 尺寸标注与公差信息
DWG里只放图形、不放尺寸,等于给工厂留了一个猜谜游戏。哪怕你这样导出的尺寸是正确的,对方还得自己一个个量,量完还要找你确认,一来一回浪费两三天。
所以,关键尺寸必须标注。哪些是关键尺寸?
- 板框的长、宽。
- 所有安装孔的位置坐标和孔径。
- 定位柱、定位孔的配合尺寸。
- 散热器贴合区域的形状和尺寸。
公差也要写明确。不写公差有两种结果:要么工厂按最高精度做,成本爆炸;要么工厂按默认精度做,装配时松紧不合适。我会在技术要求栏里写清楚:未标注公差按±0.1mm执行,孔位公差±0.05mm,外形公差±0.15mm。以及特殊要求,比如“M3螺纹孔,攻丝深度5mm”,不写清楚工人可能给你直接打通。
5.3 配套文件一起发,别只丢一个DWG过去
最后再强调一件事:DWG不是唯一的交付物。给工厂发文件的时候,我会同时发三样东西:
第一个,DWG源文件,用于加工和后续修改。第二个,PDF版图纸,方便对方直接打印检查,也能在没有CAD软件的电脑上快速查看。第三个,一张孔位坐标表(CSV或者Excel),列出所有孔位的序号、X坐标、Y坐标、孔径、孔型、数量。这个表格不需要多精美,但能大幅降低沟通成本。工厂收到后,用钻床或者加工中心的人可以直接按表格对坐标,不用在CAD里一个一个点。
有一次我的DWG文件名写错单位,幸好邮箱里同时有一张PDF版图纸,PDF上标注了尺寸,工厂师傅照着PDF上的数值发现DWG里的图缩放了,立刻打电话来确认。因为一个配套PDF,避免了一次批量加工事故。从那以后我发任何图纸文件都带PDF,这个习惯雷打不动。
我个人在实际项目里摸索出来的经验是:给工厂的DWG,内容越少越好。很多人总觉得多发点信息对方就多理解一点,结果恰恰相反,信息一多,加工师傅抓不住重点,反而容易漏掉关键孔位。你把加工需要的内容留在图上,其他无关信息统统关掉,工厂拿到的是一张“让人一眼就看懂”的图纸,出错的概率自然就低。再分享一个小技巧:文件命名后缀直接带单位,比如“xxx_mm_v2.dwg”,这样不管是邮件流转还是微信转发,所有人都能在打开文件之前就知道这张图的单位是什么。别小看这个细节,它比你在图纸角落里写十遍“单位mm”都管用。