已有不少高手对 Solidworks 工程图转为 AutoCAD dwg 图纸进行了探讨,但都不全面。根据本人多年的SolidWorks应用经验,现总结出来,奉献给大家分享。
转换过程只需点一次鼠标就可搞定,而且转换的 dwg 在 AutoCAD 打开时不需更改,连图层和颜色都可一丝不差。好了,不罗嗦了,下面就让我们开始吧!
首先,洗净手脚,泡杯龙井……。有条件的朋友可以来杯“鸟窝咖啡”,或干脆来杯白开水,因为可能要忙一会儿,对了!忘了上趟厕所,(还要重新洗手)。我们有一些工作要做,想要日后享福,必须先麻烦一点。
一、初级篇 一般转换
1• 打开需转换的 Solidworks 工程图,先查看和设置一下它的字体,打开菜单:工具 / 选项 / 文件属性 / 注解字体。右面列出的各注解的列表,如点击右面的“注释 / 零件序号”。显示的是你图纸“注释”和“零件序号”的字体的设置。如图
2• 把注释 / 零件序号、尺寸、细节、截面、……全部按你的要求设定。
字体:“尺寸”的字体应设置为英文字体,如“ Times New Roman ”、“ Arial ”等,其他一般为华文仿宋、仿宋、宋体、或黑体,我选的是“仿宋 _GB2312 ”。(按国家制图标准,其实我最喜欢黑体,在图纸上显得很漂亮),选什么字体并不重要,重要的是你必须牢记字体的名字,一个字符都不能错,等一会要用。最简单的办法是用鼠标右键的“复制”。
注意:字体用得越少越好,不然转换时易出错。
字体样式:常规
高度:可根据你的要求设置,最好按国家标准,各种幅面大小都有不同的字高要求。
什么?你不知道国家标准,这可是机械制图的根本,自己去找本中华人民共和国机械制图国家标准去看看吧,大街上到处都是!
3• 在 SolidWorks 安装目录下的 data 目录中找到 drawfontmap.txt 文件,这就是转换的字体文件。打开它,在最后一行添加:你刚才复制的字体名 + 空格(随意) + 你刚才复制的字体名。“尺寸”的字体因为选择的是英文字体,列表中已有了,不需加入。
4• 保存 drawfontmap.txt 文件。
5• 操作:文件 / 另存为,保存类型为 DWG 或 DXF 就 OK 了。
在 AutoCAD 中打开刚才转换的 DWG 的文件,应该转换的比较成功了,如果你觉得满意下面的《设置映射文件——图层、线型》和高级篇 《一键搞定——VBA宏》你可以不必看了。
二、中级篇:设置映射文件——图层、线型
上一篇我们讨论了 Solidworks 工程图到 AutoCAD 图纸的一般转换,这样转换出来的图纸可以满足一般的要求,但它所有的物体都是在同一图层上的,如果需要在 AutoCAD 进一步编辑和打印比较麻烦。接下来,我们在把它设置的更完善些。
好了,再泡杯该死的茶……
1• 操作:文件 / 另存为,选择保存类型为 DWG 或 DXF ,点击选项,
2• 出现“输出选项”对话框,选中“自定义映射 Solidworks 到 dxf ”。
3• 再按“确定”。系统返回到“另存为”对话框;按“保存”;出现 Solidworks 到 dxf 映射对话框
4• 对 AutoCAD 熟悉的朋友应该明白了,这就是设置转换成 DWG 文件的图层设置。点击添加,设置好图层的名称、颜色、和线条式样。我的设置是
这可是按国标设置的阿。还不知道国标?
5• 点击“映射到实体,这是把你 Solidworks 工程图中的各种“实体”应该放到 DWG 文件的哪各图层的设置,点击添加,把各实体分别放到第 4 步设定好的图层上去。有很多,别弄昏了头。
注意:最好不要在这里选颜色和线条样式,而应在第 4 步设定,它会自动把颜色和线条样式设置为 BYLAYER 熟悉 AutoCAD 的朋友都清楚这一点。如果你不知道为什么,照做就可以了。
6• 辛辛苦苦设置了这么多,可千万不能一确定了之,它可不会自动保存!选择“映射文件设定”,找个目录,起个名字,按“确定”保存起来。
7• 再按“确定”。大功告成!
打开转换的 DWG 文件,如果有什么不对的地方,回过头来修改设置,重新保存,直到满意为止。
三、高级篇 一键搞定
该喝茶了!你喝、我喝、大家喝!还得去厕所,别忘了洗手喔!
前两篇我们已讨论了转换问题,本篇涉及到具体的转换并不多,而是介绍 Solidworks 的另一个有用的工具——宏。其实,其他 Solidworks 的操作也可以如此简化的。
你是否觉得,每次转换的时候很繁,需东点西选,经常容易搞错另存为的格式,讨厌的映射文件每次出现,等待你更改?下面我们摆平它!
1• 在 Solidworks 中操作:文件 / 另存为,选择保存类型为 DWG 或 DXF ,点击选项,出现“输出选项”对话框,选择“每次保存时不显示映射”,重新输出一遍。使映射设置对话框在输出的时候不再显示。
2• 在 Solidworks 中操作:工具 / 宏操作 / 录制
3• 把输出 DWG 文件的操作再来一遍。然后操作:工具 / 宏操作 / 停止,会出现宏的“另存为”对话框。
4• 取名保存宏。
5• 操作:工具 / 宏操作 / 编辑,选择我们刚才保存的宏。 VBA 打开了宏。
可以看见我们刚才执行的操作是把打开的工程图保存成一个 aaa.DWG 文件。
如果打开其他 Solidworks 工程图 bbb ,执行这个宏,结果会把这个图转换成 DWG 文件,但文件名仍然是 aaa.dwg ,这当然不行,我们来改进一下。
6• 把全部代码删除,输入以下代码:(直接从网页拷贝、粘贴吧,保证不会错)
Dim swApp As Object
Dim Part As Object
Dim Filename As String
Dim No As Integer
Dim Title As String
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Filename = Part.GetPathName()
No = Len(Filename)
Filename = Left(Filename, No - 7)
Part.SaveAs2 Filename & ".DWG", 0, True, False
Title = Part.GetTitle
Set Part = Nothing
swApp.CloseDoc Title
x = MsgBox(" 已保存为 DWG 文件 ", 0)
End Sub
7• 解释一下代码的功能,熟悉 VB 的朋友可以跳过此部的分析,直接看下一段。
A 部分:定义变量。让程序以相同的文件名把 DWG 文件保存在 Solidworks 工程图相同的文件夹内。(如果 Solidworks 工程图文件名为: XXX. SLDDRW 则 AutoCAD 图纸的文件名为: XXX.DWG )。此部分不可删除和省略。
B 部分:转换完成后关闭 Solidworks 工程图,这对同时需转换大量的工程的话十分有用。如果你转换后不想关闭图纸的话,删了它。
C 部分:转换后出现一个信息框:“已保存为 DWG 文件”。增加这个部分的原因是因为:实现一键操作后,如果一次需转换大量的图纸,转换时太爽了,有时按键按得太快,系统有时会“发病”。如果把“已保存为 DWG 文件”换成:
" 文件已转成 : "& Title & ".DWG" 。
信息框就输出转换后的文件名。
在这里,你可能觉得没用,但如果你在 C 部分后再增加一个 D 部分:打开同目录中的下一个工程图,用循环语句全部转换,哈哈!……可以同时转换成千上万个工程图,没有 C 部分来检查和监测一下,你根本不知道程序运转到什么地方了,还以为死机了呢。
你觉得没用的话也可以删了它。
现在插播广告: ~&)(%$#+| ?…… < 广告牌待租! > …… x$@$*&^%
什么?还放广告?
对了!不放广告的话,就没钱可赚,现在的社会没有好处的事,如果你去作的话,大家都会怀疑你的目的和真实性。正好你我都可以先休息一下,当然是:喝茶…厕所…洗手……。
^%*^* 洗头膏—— &*^%3 尿不湿—— %&*%$ ……关心您的古见糠!…… %&
8• 好了!广告结束了,记住:上一行的东西千万不能粘贴在代码里。我们接着讨论——:
9• 直接关闭 VBA 宏编辑器,在更改的时候它会自动保存。所已在更改的时候要小心点。
10• 添加“宏” TOOLBAR ,一键搞定它。操作:工具 / 自定义,出现“自定义”对话框;选命令 / 宏,把右面的人头小图标往你需要的工具栏上拖,松手;出现“自定义宏按钮”对话框;按右边的文件选择按钮,出现“宏路径”对话框
11• 选择我们刚才编辑过的宏文件,按“打开”;此时你可以在“自定义宏按钮”对话框中设置“快捷键”,这对经常要用到转换的朋友也十分有用。此时也可以用“选择图象”给此按钮换一个与众不同的图标。
12• 点击“确定”,再确定。
13• 好了!现在打开一张工程图,点击刚才拖出来的按钮, DWG 输出一键结束。
在宏里我们可以做多文章,有兴趣的朋友可以自己研究。“只有想不到的,没有做不到的!”我相信这句话。