宏是类似于脚本的应用程序,可以直接在 SOLIDWORKS 环境中执行和编辑。
宏利用 SOLIDWORKS API 和第三方组件 API(如 Excel 或文件系统)来补充 SOLIDWORKS 功能。在大多数情况下,宏用作自动化脚本来增强重复性任务。
有数以千计的宏可以从各种资源下载,例如 SOLIDWORKS官方论坛(https://forum.solidworks.com/community/api)或 CodeStack 'Goodies'(https://www.codestack.net/solidworks-tools/)。
SOLIDWORKS 支持的宏主要有 2 类:VSTA 和 VBA 宏。
宏工具栏
宏工具栏提供命令:
上述命令也可从菜单中获得。
宏菜单
由于宏通常用于生产环境,因此能够调试宏并对其进行故障排除以确保质量至关重要。有关宏中最常见错误的解释和解决方法,请参阅宏疑难解答(https://www.codestack.net/solidworks-api/troubleshooting/macros/)。
SOLIDWORKS宏类型 - VBA(swp)、SWBasic(swb)、VSTA(dll)
宏可以直接在内置的 VBA 编辑器中进行编辑,也可以直接在 SOLIDWORKS 中执行。不需要安装任何其他软件来运行宏(唯一的例外是VSTA 3.0宏,它需要独立安装Visual Studio)。
VBA Macros (*.swp)
这些可能是最受欢迎的宏。这些宏基于 VBA7(适用于 SOLIDWORKS 2015 及更高版本)和 VBA6(适用于旧版本)。VBA6 和 VBA7 是 Visual Basic 6 的派生语言。所以所有的语法都是相同的。有关此语言的更多文档,请参阅 Visual Basic 教程(https://www.codestack.net/visual-basic/)。
宏以二进制格式保存,扩展名为 *.swp,只能由 SOLIDWORKS VBA 编辑器查看和编辑。
SWBasic Macros (*.swb)
与 *.swp 宏类似,这些类型的宏基于 VBA6 和 VBA7 语言。唯一的区别是这些宏以纯文本格式保存,扩展名为 *.swb。
这使得它在 SOLIDWORKS 环境之外使用任何文本编辑器(如记事本)可读和可编辑。当宏代码在控制版本服务(如 SVN 或 GIT)中维护时,这尤其有用。
这些宏不能引用任何第三方类型库(如 Excel、文件系统对象等),并且仅包含对 SOLIDWORKS 类型库的引用。如果需要使用任何第三方类型库,可以通过后期绑定来实现。(https://www.codestack.net/visual-basic/variables/declaration/#early-binding-and-late-binding)
这些宏将只有一个模块,并且不能使用类或用户窗体。
C# and VB.NET VSTA Macros
基于.NET语言(C#或 VB.NET)的Visual STudio for Application (VSTA)宏提供了更多的灵活性,并利用了.NET框架的强大功能,将对各种库,第三方组件和面向对象编程(OOP)范式的访问带入宏中。
与 VBA 宏不同,VSTA 宏将项目与用于编辑的源代码(*.csproj、.vbproj)和用于运行宏的二进制文件 (.dll)输出分开。因此,可以在没有可用源代码的情况下使用二进制文件。
VSTA 宏是进程内应用程序,可以从内存中自动释放,也可以在主函数完成后继续执行。
此行为由以下选项控制:
在宏退出时停止VSTA 调试器选项
如果未选中此选项,宏将保持加载到内存中,直到单击“停止”按钮。当宏执行任何异步操作(如处理事件或显示属性管理器页)时,此选项很有用。
VSTA 宏基于 .NET Framework 2.0,可以使用内置的 VSTA 编辑器进行编辑和调试。
在 SOLIDWORKS 2018 中,引入了新的 VSTA 版本 3.0,但仍支持较旧的 VSTA 版本。目标版本可以通过以下选项进行控制:
启用 VSTA 3.0版本选项
VSTA 3.0 需要独立安装 Visual Studio(专业版或社区版)。VSTA 3.0的主要优点是能够使用较新版本的.NET Framework。
在 SOLIDWORKS 中录制和编辑宏
SOLIDWORKS 提供了强大的功能来记录用户操作并将其转换为宏代码。
对于学习 SOLIDWORKS API 和查找所需方法,这是一个非常方便的功能。
可以通过单击宏工具栏上的“录制”按钮开始录制:
在工具栏中的录制宏命令
在录制模式下,将记录大多数用户操作。
注意:并非所有命令都可以通过宏录制来记录。如果记录的命令未捕获,则并不意味着此特定命令的 API 不可用。
为了增强宏录制体验,请尝试尽量减少模型视图方向更改和选择的次数,因为这些命令将被记录,并且产生大量无效代码行,会使宏几乎不可读(可读性非常差)。
使用“暂停”按钮跳过不必要的操作的录制。
录制完成后,单击“停止”按钮并选择文件以保存录制的宏。
保存录制宏
请注意,可以将宏另存为 VBA 和 VSTA。它们之间的区别请参考上一节。
如果录制宏后只能保存为swp格式,那么请参考下面的视频解决(视频引用仅供参考,侵删)。 注意:您无法通过修改或修复您的 SOLIDWORKS 安装以添加 VSTA。您必须卸载并重新安装 SOLIDWORKS,选择在安装过程中安装 Visual Studio Tools for Applications (VSTA)。
如果您经常录制宏,建议启用【录制后自动编辑宏】选项。
启用录制后自动编辑宏选项
这将在宏完成录制后自动打开编辑器,因此不必显式调用 Tools->Macro->Edit 菜单命令来编辑源代码。
以下是以 VBA、C# 和 VB.NET 语言录制宏的示例:
使用VBA录制宏示例
使用C# VSTA录制宏示例
使用VB.NET VSTA录制宏示例
在 SOLIDWORKS 中创建并运行 VSTA 宏(C# 和 VB.NET)
本节介绍如何从现有代码创建 VSTA 宏(C# 或 VB.NET)并运行它。
设置VSTA宏筛选器
VSTA宏的命名空间
如果未修改命名空间,则会出现以下问题:VSTA(C# 或 VB.NET)宏中的命名空间无效。
与 VBA 宏不同,VSTA 宏必须编译为 dll。在代码编辑器菜单中调用 Build->Compile 命令。您也可以通过单击绿色箭头按钮直接运行宏。编译后,将在宏的 bin或Release 文件夹中生成 dll,完整路径将打印到“输出”窗口,如下所示。
编译VSTA宏
若要运行宏,只需要二进制文件。因此,可以将 bin或Release 文件夹的内容复制到新位置或与其他用户共享。需要复制 bin或Release 文件夹(不仅仅是宏 dll)的完整内容以避免以下错误: 无法运行 VSTA(C# 或 VB.NET)宏。
保持 VSTA 宏运行
可以将选项设置为在执行完成后保持运行VSTA 宏。如果宏需要监控 SOLIDWORKS 事件并且不需要在执行完成后立即卸载,这将非常有用。要启用此行为,请取消选中 SOLIDWORKS 菜单中的工具->选项->系统选项对话框中的【宏退出时停止 VSTA 调试器】选项。
保持VSTA宏运行的选项
在 SOLIDWORKS 中编辑 VBA 和 VSTA 宏
VBA 宏(*.swb 和 .swp)以及 VSTA 宏(.csproj 和 *.vbproj)的源代码可以直接在 SOLIDWORKS 中进行编辑。
编辑宏菜单命令
此命令将打开新的 VBA 编辑器或 Visual Studio(VSTA 宏编辑器)。
根据需要修改代码并保存更改。
在 SOLIDWORKS 工具栏中创建宏按钮
可以将宏分配给自定义按钮,并将其放置在现有工具栏或命令选项卡框上。这增强了用户体验,因为可以通过单击按钮而不是通过运行宏例程来访问宏。
为了将宏与按钮相关联,请调用自定义...上下文菜单中的命令。
自定义...上下文菜单命令
或从“工具”菜单访问该命令。
自定义...工具->菜单
注意:如果未在 SOLIDWORKS 中打开任何文档,则此命令处于禁用状态。
导航到“命令”选项卡,然后选择“宏”组。此组中的最后一个按钮是“新建宏按钮”模板。
自定义->宏命令工具栏
将此按钮拖放到命令管理器中的任何现有工具栏或命令选项卡框中。
将宏按钮拖放到现有工具栏上
放下后,将弹出以下对话框:
自定义宏按钮的选项
在表单中填写相应的数据:
工具栏中的按钮位置将在 SOLIDWORKS 会话中保持。并且可以使用 SOLIDWORKS 复制设置向导进行导出-恢复。(https://help.solidworks.com/2023/english/SolidWorks/sldworks/r_welcome_sw_online_help.htm)
宏按钮的执行方式与任何其他标准按钮相同。可以将键盘快捷键分配给宏按钮。
在自定义...对话框并分配快捷方式。
将键盘快捷键添加到宏按钮
为了编辑宏按钮的属性以及重新排序按钮或删除按钮,需要激活自定义...菜单命令。
当自定义对话框处于活动状态时,可以重新排序按钮。
为了更改宏按钮的属性,请使用鼠标右键单击宏按钮顶部,这将打开“自定义宏按钮”对话框。
为了删除按钮,将其拖离工具栏,直到鼠标指针上出现带有十字的红色按钮并释放拖放。
如果宏按钮放置在命令选项卡框上,请使用以下上下文菜单更改属性或删除按钮:
命令选项卡框中宏按钮的属性
如果要将宏按钮放置在自定义工具栏上,可以使用免费的“cadplus”加载项。(https://cadplus.xarial.com/toolbar/)
在 SOLIDWORKS 中运行 VBA 和 VSTA 宏
运行宏的最简单方法是从“工具”->宏->“运行”菜单命令或工具栏调用宏。
从工具栏运行宏
选择要运行的宏(对于 VBA 宏,为 .swb 或 .swp,对于 VSTA 宏,请选择 .dll)。除非显式编码宏以保持活动状态,或者检查 VSTA 宏的“设置”中的“在宏退出时停止 VSTA 调试器”选项,否则执行完成后将从内存中卸载宏。
当从菜单/工具栏或使用 F10 快捷方式打开进行编辑时,也可以直接从 VBA 编辑器运行宏。
从VBA编辑器运行宏
或者,可以从宏按钮或在 SOLIDWORKS 启动时从命令行运行宏(下一节)。
在应用程序启动时自动运行 SOLIDWORKS 宏
在某些情况下,可能需要在 SOLIDWORKS 启动时自动运行宏。例如,需要完成一些日志记录或应用设置。
幸运的是,SOLIDWORKS 应用程序接受命令行参数 /m,该参数将自动运行指定的宏。
"Path to SLDWORKS.exe" /m "Path to a macro"
设置启动 SOLIDWORKS 并运行宏的快捷方式
使用此功能的最常见选项是直接在 Windows 桌面上的 SOLIDWORKS 快捷方式中指定宏的路径。在这种情况下,当您单击 SOLIDWORKS 应用程序快捷方式图标(常规例程)时,宏将自动运行。请按照以下步骤操作说明:
SOLIDWORKS 快捷方式的默认选项
SOLIDWORKS.exe文件位置
/m "Full Path To Macro"
如果宏路径包含空格,请将路径括在双引号中。
例如:
"C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.EXE" /m "C:\My Macros\Macro1.swb"
带有宏路径的快捷方式
使用此快捷方式启动 SOLIDWORKS。指定的宏将自动运行。
文章翻译自https://www.codestack.net/
仅供学习使用。