想改善这个问题吗?更新问题,使其仅通过 editing this post 关注一个问题。
1年前关闭。
Improve this question
我正在 Solidworks 中运行一个 VBA 宏,该宏停止工作,并且每次运行它时都要求我在恰好 478 次循环迭代后重新启动 Solidworks。
在我的循环中,我打开一个 STEP 文件,验证它,然后将它保存为一个 STL 文件。似乎 Solidworks 正在努力在同一 session 中打开超过固定数量的文件。
我的计划是在 Solidworks 之外编写一个 VB.NET 脚本,它可以在每 X 次迭代时自动重新启动应用程序,而无需我的干预,这样我就可以在没有我干预的情况下处理我拥有的数千个文件。
VB.NET 控制台脚本为我关闭并重新打开 Solidworks,每当达到 477 次迭代时,然后从它停止的地方继续宏。
包含我的文件的文件夹已编号,例如
c:\data\0\file.STEP
c:\data\1\file.STEP
c:\data\2\file.STEP
...
c:\data\20000\file.STEP
具体来说,我正在寻找执行以下操作的 VB.NET 代码:
最佳答案
1)首先你需要打开solidworks和你要处理的文件:
打开程序集文档示例 (VB.NET)
http://help.solidworks.com/2017/english/api/sldworksapi/open_assembly_document_example_vbnet.htm
2) 您将需要 openMacro2 函数。
这是一个带有示例的链接
https://forum.solidworks.com/thread/79502
3)然后关闭所有文件
CloseAllDocuments 方法
http://help.solidworks.com/2017/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.ISldWorks~CloseAllDocuments.html
4) 然后用 ExitApp 方法退出solidworks
https://help.solidworks.com/2017/english/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.ISldWorks~ExitApp.html
注意:如果您安装了 api 模块,您将在 apihelp.chm 文件中找到所有需要的示例,该文件默认位于:
C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\api
我冒昧地选择了 2017 版,因为您没有提到您正在使用的版本。但是所有示例也应该适用于更高版本。如果您使用的是较早版本并且找不到例如 openDoc7,那么请查看 openDoc6 或 openDoc5...,直到您找到系统上可用的编号。
关于vba - 如何从 vb.net 脚本打开 Solidworks、运行宏和关闭 Solidworks?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57541047/