SOLIDWORKS二次开发与API教程(2020版)
上QQ阅读APP看书,第一时间看更新

2.3 实例学习:连接到新文件

本实例将讲解如何连接到正在运行的SOLIDWORKS进程及如何使用这个API接口的成员。为了节省时间,已经完成了用户窗体和所有控件的创建。在前面的章节中,已经学习了如何添加窗体和控件来为程序创建用户界面。本节将学习如何使用添加到窗体中的其他控件,例如复选框和单选按钮。

操作步骤

步骤1 打开宏 打开Lesson02文件夹中名为ObjectModelBasics.SWP的宏。

技巧

如果在VBA编辑器中不能看到窗体,请使用<Ctrl>+<R>组合键,打开【工程】窗口,如图2-6所示。双击“窗体”文件夹下的frmNewDocs以在编辑器中显示该窗体。

图2-6 【工程】窗口

扫码看视频

步骤2 查看用户窗体的顶部和控件属性 用户窗体属性已经设置好了。窗体的顶部有一个框架控件,其他控件包含在框架控件内部,如图2-7所示。添加窗体和控件的属性如下:

图2-7 SldWorks的控件属性

步骤3 添加按钮单击事件 双击命令按钮设置按钮单击事件处理程序。

步骤4 连接到SldWorks对象 添加下面的代码到事件程序中。

步骤5 添加SldWorks方法和属性 继续在复选框事件中添加如下代码。

步骤6 向Sub Main添加代码 切换回ObjectModelBasics1模块,建立程序入口点如下。

步骤7 保存并运行宏 分别测试每个复选框,观察SOLIDWORKS如何工作。宏运行结果如下。

1)978-7-111-67178-7-Chapter03-26.jpg978-7-111-67178-7-Chapter03-27.jpg的运行结果如图2-8所示。

2)978-7-111-67178-7-Chapter03-28.jpg978-7-111-67178-7-Chapter03-29.jpg的运行结果如图2-9所示。

3)978-7-111-67178-7-Chapter03-30.jpg978-7-111-67178-7-Chapter03-31.jpg的运行结果如图2-10所示。

步骤8 停止宏

图2-8 运行RevisionNumber

图2-9 运行DisplayStatusBar

图2-10 运行GetCurrentLanguage

下面将测试API对象层次结构中第二高级别的对象ModelDoc2(见表2-2)。

表2-2 ModelDoc2对象

经过多年的发展,随着SOLIDWORKS功能的增强,ModelDoc2的方法已经增长到了容量的上限。因此,产生了一个扩展对象来作为接口以提供新的方法,这个对象叫作ModelDocExten-sion,见表2-3。表2-3 ModelDocExtension对象

下面的步骤演示了如何使用访问器方法SldWorks::NewDocument创建新的ModelDoc2接口指针实例,并调用几个成员方法。

步骤9 回顾创建新文件的控件 如图2-12所示,第二个框架控件包含3个单选按钮、1个命令按钮以及3个复选框。这些控件允许用户创建新的ModelDoc2对象。Model-Doc2对象包括PartDoc对象、AssemblyDoc对象和DrawingDoc对象。

扫码看视频

添加窗体和控件的属性如下:

图2-12 ModelDoc2的控件属性

步骤10 添加按钮单击事件 双击第二个命令按钮以设置事件处理程序。

步骤11 连接SldWorks并创建新文件 添加以下代码行到事件处理程序中。

将以下代码放在代码模块的最前面:

步骤12 添加代码以创建不同类型的文件 为3个单选按钮添加条件语句如下:

步骤13 添加ModelDoc2方法和属性 为每个复选框添加剩余的代码。将以下代码添加到上一步的代码与End Sub语句之间。

步骤14 保存并运行宏

1)测试下列3个单选按钮,结果如图2-13所示。

图2-13 测试单选按钮

2)在零件文件和装配体文件中添加草图,结果如图2-14所示。

3)在零件文件和装配体文件中插入设计表,结果如图2-15所示。

4)在3种文件类型中插入注释,结果如图2-16所示。

注意

并不是所有的ModelDoc2方法在3种文件类型中的使用方法都完全相同。例如,在工程图文件中,必须先插入一个视图,然后才能使用Focus-Locked和InsertFamilyTableNew方法(见步骤16)。

图2-14 添加草图

图2-15 插入设计表

图2-16 插入注释

步骤15 停止宏 单击窗体右上角的关闭图标,停止宏。

步骤16 添加代码,准备工程图文件 在模块底部添加代码,以准备工程图文件。

注意

Visual Basic会自动将ModelDoc2对象类型转换为DrawingDoc对象,这就允许直接从ModelDoc2对象调用CreateDrawViewFromModelView3方法。CreateDrawViewFromModelView3是DrawingDoc接口上的方法。另外还要注意的是,在输入代码时,并不能通过IntelliSense看到这个方法。

步骤17 插入新代码以调用新函数 为FocusLocked和InsertFamilyTableNew插入下面的附加条件语句,使它们从前面的步骤中调用新函数。

步骤18 保存并运行宏 现在,宏在插入草图或设计表之前应该会先创建一个示例工程图,如图2-17所示。

步骤19 停止宏 单击窗体右上角的关闭图标停止宏。

图2-17 绘制准备

现在,来看一下3个具体的Document对象类型:PartDoc、AssemblyDoc和DrawingDoc,见表2-4。

表2-4 PartDoc、AssemblyDoc和DrawingDoc文件

(续)

步骤20 查看特定文件类型的控件 在窗体底部,每个文件类型对应一个框架控件、一个命令按钮和一个复选框,如图2-18所示。这些控件的属性如下:

扫码看视频

图2-18 特定文件类型的控件属性

步骤21 为每个按钮添加单击事件

步骤22 连接SldWorks对象 在每个单击事件中添加下面的代码:

步骤23 连接PartDoc对象并调用特定方法 添加下面的代码:

步骤24 连接AssemblyDoc对象并调用特定方法 添加下面的代码:

步骤25 连接DrawingDoc对象并调用特定方法 添加下面的代码:

保存并运行宏。

步骤26 测试

1)测试978-7-111-67178-7-Chapter03-69.jpg,如图2-19所示。

图2-19 测试EditRollback

2)978-7-111-67178-7-Chapter03-71.jpg,如图2-20所示。

3)测试978-7-111-67178-7-Chapter03-72.jpg,如图2-21所示。

步骤27 停止宏 单击窗体右上角的关闭图标停止宏。

图2-20 测试AddComponent

图2-21 测试EditFormat