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

绪论

0.1 开始

程序员在SOLIDWORKS中录制宏或者使用Visual Basic编写连接SOLIDWORKS的应用程序之前,要注意以下几个方面。

0.1.1 文件类型

在SOLIDWORKS中,创建的宏文件类型为SW VBA Macros(∗.swp)。

在Visual Basic.Net中,下列文件可能是必需的:

● 解决方案文件(Solution Files)(∗.sln)。

● 源代码文件(Source Code Files)(∗.vb)。

● .NET程序集/动态链接库(∗.dll)。

0.1.2 使用显示声明Option Explicit

强烈推荐在Visual Basic开发环境中使用Option Explicit语句,如图0-1所示。这样,Visual Basic编译器将强制用户在使用变量前先声明它。

图0-1 Option Explicit语句

在VBA编辑器中,该选项可以以全局作用的方式打开,选择【工具】/【选项】,然后勾选【编辑器】选项卡中的【需要变量声明】复选框。

在Visual Basic.NET中,该选项也可以以全局作用的方式打开,选择【工具】/【选项】,然后选择【项目和解决方案】/【VB默认】。

0.1.3 变量

变量用于在应用程序运行期间保存一个临时值。变量由名称和数据类型两部分组成。从本质上讲,变量就是内存中用于保存未知值的一个地方。声明变量就是事先把这些告诉程序。

使用Dim语句声明一个变量时,变量命名格式为:Dim variablename[As data type]。其中的可选子句“As data type”,允许用户为其定义不同的数据类型或对象类型。在声明时定义类型是一个良好的编程习惯。这样,系统将在运行前为变量分配需要的内存空间,而不是等到运行时动态地确定需要的内存空间。如果运行时确定,可能会分配比实际需要大的内存。

0.1.4 选择数据类型

Visual Basic支持以下标准数据类型:

(1)String 保存字符串。在变量名后使用$,可以确保变量是该类型。

(2)Integer 在VBA中,保存在-32768~+32767之间的16位数值。在变量名后使用%,可以确保变量是该类型。

(3)Long(长整型)在VBA中,保存在-2147483648~+2147483647之间的32位数值。在变量名后使用&,可以确保变量是该类型。在VB.NET中,保存在-9223372036854775808~+9223372036854775807之间的64位数值。

(4)Single Precision(单精度)保存带小数点的值,精确到小数点后7位。在变量名后使用!,可以确保变量是该类型。

(5)Double Precision(双精度)保存带小数点的值,精确到小数点后16位。在变量名后使用#,可以确保变量是该类型。

(6)Decimal 支持直到29位的数值,最大可以表示到7.9228×1028。它特别适用于需要数值很大但不允许取整误差的计算,例如金融计算。

(7)Date 保存从1000年1月1日到9999年12月31日午夜的时间。使用符号##包围变量,可以确保变量是该类型。

(8)Byte 保存在0~255之间的整型值。

(9)Boolean 保存True或者False的值。

(10)Variant 保存所有数据类型的值。

(11)Object 保存一个32bit(4 byte)的地址,指向一个对象。使用Set语句可以将任何对象引用赋给声明为object的变量。

(12)Dim语句 声明或定义一个给定类型的变量。

当引用了SldWorks类型库之后,会有更多可用的数据类型。

0.1.5 API单位

如果无特别说明,所有API都分别使用【米】和【弧度】作为长度单位和角度单位。

0.1.6 SOLIDWORKS Constant Type Library

使用SOLIDWORKS API进行开发时,每个项目中必须包含“SOLIDWORKS 2020 Constant type library”。这个类型库包含了SOLIDWORKS API方法使用的所有常量定义。实际运行中,传递给方法的是常量定义,而不是它们所代表的实际数值。这能保证程序在安装了新版本的SOLIDWORKS之后仍能正常运行。实际使用的数值可能因为版本的不同而有所区别,但是常量定义是相同的,不会改变,只会增加。

使用VBA在SOLIDWORKS中录制宏时,会自动添加这个库。要验证这一点,可编辑任意一个在SOLIDWORKS中录制的宏,并从菜单中选择【工具】/【引用】。弹出的【引用】对话框中会显示项目中已包含的类型库,如图0-2所示。

注意

每个项目中都用到了多个SOLIDWORKS类型库。

将在第2章中详细介绍“SldWorks 2020 Type Library”。

提示

如果程序员忘记在他们的宏或者项目中添加“SOLIDWORKS 2020 Con-stant type library”,这时会怎样呢?如果代码试图使用常量类型库中的一个不存在的枚举值,并且此时没有使用Option Explicit,Visual Basic运行时会自动将枚举值初始化为0或者为空。这种情形很容易迷惑程序员,为什么程序不像设想的那样运行。如果使用了Option Explicit,并且项目中没有包含常量类型库,编译器会告诉程序员枚举值不存在。程序员立刻就会知道项目没有包含SOLIDWORKS常量类型库。

图0-2 【引用】对话框