SOLIDWORKS 宏是自动执行重复性任务和流程的代码段。例如,隐藏工程图中的所有草图,从 BOM 表中快速排除特定零部件,或完成一系列建模操作。
在本文中,您将了解 SOLIDWORKS API 并学习如何创建自己的 SOLIDWORKS 宏。
什么是 SOLIDWORKS API?
SOLIDWORKS 应用程序编程接口 (API) 是程序可用于与 SOLIDWORKS 交互的工具集合。
SOLIDWORKS 宏可以用 VBA、Visual Basic.NET 和 C#.NET 编写。API 是编程语言的扩展,它提供对 SOLIDWORKS 文档中信息的特定访问,以及允许您的程序控制 SOLIDWORKS 的特定功能。
SOLIDWORKS API 的结构
面向对象编程 (OOP) 的基础知识在 SOLIDWORKS API 中很普遍。将 SOLIDWORKS API 视为对象(“事物”,如零件文档、面和工程图视图)的集合会很有帮助。这些对象中的每一个都有属性,这些属性提供有关对象的信息。您可以找到 (get) 或更改 (set) 属性,例如名称、父装配体零部件或它是否可见。这些对象还具有方法,这些方法是对象可以执行的操作。例如,特征对象可以将冻结条移动到其在特征管理器树中的位置,而装配体文档可以添加新零部件。
由于大量使用对象、属性和方法,因此使用 API 和宏自动化 SOLIDWORKS 的过程主要围绕查找和获取所需的对象。
通过 5 个步骤创建 SOLIDWORKS 宏
此五步方法将指导您使用 SOLIDWORKS API 自动执行所需的几乎任何内容。
第 1 步:记录您手动执行的步骤
SOLIDWORKS 提供了一个宏录制器,该录制器将录制您在 SOLIDWORKS 会话中手动执行的任务。您需要做的就是调出 Macro 工具栏(右键单击任何工具栏以查看所有可用的工具栏)或转到 TOOLS>MACRO 菜单以找到 RECORD 按钮。
启用 SOLIDWORKS 宏工具栏,启用 SOLIDWORKS 宏工具栏以轻松访问宏录制选项。
然后执行要自动化的任务并单击 STOP。
宏录制选项,开始、暂停和停止录制,并使用宏工具栏访问宏编辑器。
此时,SOLIDWORKS 将要求您保存宏。您的文件类型选项将取决于您是否安装了 VBA 和 .NET API 扩展。
保存宏录制,选择一种语言并保存您的宏记录。
第 2 步:编辑录制的宏
SOLIDWORKS 宏录制器将记录您所做的一切,包括更改视图和您可能没有意识到的许多其他点击。您真正想要自动化的任务可能没有以您想要的方式记录,或者甚至可能根本没有记录。回放宏(在将文档恢复到原始状态之后)将让您知道是否所有任务都已录制。
即使录制宏并不能为我们提供所需的一切,它仍然为我们提供了一个很好的框架作为起点。
第 3 步:搜索正确的对象
除了 nice 框架之外,录制的宏还有机会告诉我们需要哪些对象,甚至可能需要哪些属性或方法。最好从这里开始,在我们录制的宏的代码中,看看我们有什么。
使用录制代码中的线索,或者对我们尝试执行的操作的良好描述,拉出您的 Web 搜索引擎。输入您认为需要的对象/属性/方法,例如“GetVisibleComponentsInView”,或您提供的描述,例如“从 BOM 表中排除”,然后添加“SOLIDWORKS API”和您要使用的语言(VBA、VB.NET 或 C#.NET),然后查看结果。
例如,您可以搜索
GetVisibleComponentsInView SOLIDWORKS API VB.NET
很有可能有人已经完成了您要尝试做的事情,并且网上会有一些东西可以提供帮助。如果幸运的话,其他 SOLIDWORKS API 用户的宏可能与您尝试执行的操作相近。
在搜索结果的顶部,您将找到 SOLIDWORKS 在线 API 帮助。这将是您的信息 #1 来源。由于它是基于 Web 的,因此您最喜欢的搜索引擎应该可以很好地找到您需要的内容。
SOLIDWORKS API 帮助,在 SOLIDWORKS API 帮助文档中查找帮助。
请务必注意,SOLIDWORKS API 帮助是特定于版本的(右上角有“其他版本”字段)。这一点很重要,因为 SOLIDWORKS 会非常频繁地弃用属性和方法,并将其替换为以后的编号版本(例如 AddComponent4 和 AddComponent5)。尽可能使用最新版本的属性或方法始终是最好的。
第 4 步:弄清楚如何获取你的对象
一旦你使用了你想要的功能来弄清楚你需要的方法或属性以及你需要什么对象,乐趣就开始了。如果您回顾录制的宏,您将看到您获得了一个 SldWorks 对象(代表 SOLIDWORKS 应用程序本身)和代表您打开的文档的 ModelDoc2 对象。现在,您必须找出从这两个对象中获取所需对象的路径。
您的武器库中有三个主要工具可以实现这一目标。
第一个是所有对象上的一系列方法和属性。当您访问 SldWorks 或 ModelDoc2 对象的属性或方法时,您通常会得到一个新对象。例如,ModelDoc2 对象上的 GetConfigurationByName 方法将返回 Configuration 对象。注: 在帮助文件中,您将看到 SOLIDWORKS API 通常会返回一个“对象”。这只是一个泛型对象,由您来验证该对象并将其重新转换为正确的类型。快速的 Web 搜索将向您展示如何执行此操作。然后,您可以使用该 Configuration 对象上的方法和属性来获取其他对象,依此类推,直到您可以获得所需的对象。在帮助文件中查看每种类型对象的 “Interface” 条目时,将看到一个标有 “Accessors” 的部分。本节列出了将返回您查找的对象类型的所有属性和方法。可以使用帮助中的此访问器部分向后处理您拥有的对象。
用于获取所需对象的第二个工具是选择方法。SelectionManager(您可以从 ModelDoc2.SelectionManager 属性获取该对象)允许您访问一系列方法,这些方法允许您利用任何预选项目。您还可以通过 ModelDoc2.SelectByID2 将项目添加到选择集中,这允许您按名称选择 SOLIDWORKS 项目。
您拥有的第三个工具是 SOLIDWORKS Feature Manager。在许多情况下,您将遍历功能管理器中的项目,根据某些标准选择是否处理它们,或者只是遍历它们直到找到要搜索的项目。
第 5 步:填写代码的其余部分
确定所需的对象以及如何获取它后,您可以编写剩余的代码。由于对象是 SOLIDWORKS API 的基础,因此在尝试使用对象之前,请务必进行测试以确保您拥有对象。
使用非常有针对性的 Try...强烈建议使用 catch 块,以防止在执行过程中发生意外事件时发生任何崩溃。无论您使用的是内置编辑器还是 Visual Studio 等外部编辑器,都可以利用可用的调试工具,并在即时窗口中浏览代码、观察变量和值以及测试表达式。
获取正版软件免费试用资格,有任何疑问拨咨询热线:400-886-6353或 联系在线客服
未解决你的问题?请到「问答社区」反馈你遇到的问题,专业工程师为您解答!