北京工商大学材料与机械工程学院 张世龙 赵 罘 薛美荣 李 娜 林建邦
阶梯轴由于便于零件装拆和固定的特点,在机械结构中得到广泛应用。阶梯轴在设计过程中其结构参数和加工工艺水平高低对整个机械的尺寸和可靠性有很大影响。为了阶梯轴的设计过程能快速完成,设计一个软件来取代传统手工制图,提高设计效率是非常必要的。
Solid Works是的一款非常优秀的三维机械设计自动化软件。该软件以优异的性能、易用性和创新性,极大地提高了机械工程师的设计效率,其应用范围涉及航空航天、汽车、工程机械、造船、通用机械、家电、医疗机械等诸多领域。SolidWorks操作简单,初学者能快速上手,容易学习掌握,在同类软件的激烈竞争中已经确立了其市场地位,成为三维机械软件的标准。SolidWorks还为用户提供了二次开发接口,借助API函数我们可以在SolidWorks中建立自己所需的程序和模块来更好地为我们服务[1]。
Visual Basic是一种由 Microsoft 公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。而且,由于VB 引入了控件的概念,我们可以直接拿来使用许多已经编写好的VB 程序,大大减少了程序员开发程序的时间,提高工作效率。利用VB这一特点对SolidWorks进行二次开发,可以快速建立属于自己的应用程序[2]。
Solid Works二次开发有两种方法,一是完全编程开发,二是利用SolidWorks中的宏命令辅助开发[3]。前者要求用户利用API函数对要表达的所有对象进行程序编写,这样可以由编写的程序完全驱动三维模型,能造型复杂尺寸的形体。但是完全编程开发方法需要设计人员对编程语言比较熟悉,对初学者来说有难度。后者是利用SolidWorks中的宏命令,首先通过宏录制命令录制相关操作,再将宏录制过程中产生的代码作为编写程序时的基础代码,对其进行编辑修改,最后添加到程序中。
通过SolidWorks中的宏命令可以记录SolidWorks用户在操作过程中点击鼠标、菜单选择和键盘按键等执行的操作,这个记录的操作过程还可以回放[4]。
一般有两种方法绘制阶梯轴:一是选择以旋转凸台的方式生成阶梯轴,二是选择逐段拉伸实体生成阶梯轴。这里为了录制宏的程序简便,选择以旋转凸台的方式生成阶梯轴,如图1所示。
图1 阶梯轴零件Fig.1 Figure of Stepped shaft parts
通过在宏中添加用户窗体,可以为程序添加用户接口。将工具箱组件板上的Label、Command Button、TextBox等控件添加到用户窗体中,接着在属性窗口将控件CommandButton1、CommandButton2的属性分别设置为“生成阶梯轴”、“取消”。如图2所示。
图2 窗体图Fig.2 Figure of form
在SolidWorks中,当宏录制完成后,SolidWorks自己可以产生宏代码。在所录制的宏代码中,可以找到一些符合我们要求的代码,我们可以把它们拷贝到所要编的程序中加以利用,再对其进行编写、修改等操作,最终建立属于自己的程序,完成零件的三维建模。
(1)编写SolidWorks与VB建立联系的代码
Dim swApp As Object
Dim Part As Object
Set swApp= CreateObject (“SldWorks.Application”)
swApp.Visible=True
(2) 添加定义变量代码
由于我们在SolidWorks中创建一个新的零件时,都是以mm(毫米)作为默认单位,而我们通过人机交互界面输入的数值确是以m(米)为单位,因此在程序中要注意单位必须相互转换,全部要除以1000。
Dim L1 As Double
Dim L2 As Double
Dim L3 As Double
Dim d1 As Double
Dim d2 As Double
Dim d3 As Double
L1 =TextBox1 /1000
L1 =TextBox2 /1000
L1 =TextBox3 /1000
d1 =TextBox4 /2000
d2 =TextBox5 /2000
d3 =TextBox6 /2000
(3)修改部分主代码
Sub main()
UserForm1.Show
End Sub
(4)编辑【取消】命令代码
Private Sub CommandButton2_Click()End
End Sub
本文通过VB对Solid Works进行二次开发,设计出人机交互界面,输入阶梯轴的设计参数,就可以实现在Solid Works中自动生成阶梯轴的三维模型,大大减少了设计时间,并且可以大大改善在零件传统设计过程中精度、质量和效率低的问题。
[1]东方智敏.SolidWorks 2014完全自学一本通[M].电子工业出版社,2014.
[2]曾祥光,张玲玲.基于VB的SolidWorks二次开发[J].机械工程师,2006(3):131-132.
[3]叶修梓,陈超祥.SolidWorks高级教程:二次开发与API[M].北京:机械工业出版社,2009.
[4]周凯旋,罗会信.基于Visual Basic的SolidWorks二次开发[J].机械制造,2005(5):46-48.