可以看见我们刚才执行的操作是把打开的工程图保存成一个 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 部分来检查和监测一下,你根本不知道程序运转到什么地方了,还以为死机了呢。
你觉得没用的话也可以删了它。
8、 直接关闭 VBA 宏编辑器,在更改的时候它会自动保存。所已在更改的时候要小心点。
9、添加“宏” TOOLBAR ,一键搞定它。操作:工具 – 自定义,出现“自定义”对话框;选命令 – 宏,把右面的人头小图标往你需要的工具栏上拖,松手;出现“自定义宏按钮”对话框;按右边的文件选择按钮,出现“宏路径”对话框