基于SolidWorks 2016和Visual Basic 6.0的轴参数化建模

2019-04-04 03:56宁廷州刘洋凯
关键词:轴头光轴倒角

宁廷州,刘洋凯

(1.枣庄学院 机电工程学院,山东 枣庄 277160; 2.广州市交通技师学院 汽车工程系,广东 广州 510540)

轴是机器中的重要零件之一,主要用来支持旋转的机械零件和传递扭矩[1]。随着当今机械制造业的不断发展,轴作为机械产品中最常用的零件,应用场合十分广泛。但在实际的生产设计中,存在设计重复性高、误差大、周期长等问题;而且目前传统的手工设计也只能针对某个相应设备的某个零件,对于相同型号、规格的零件,如果在尺寸方面有所改动,必须要再次设计,从而浪费了大量的资源[2]。

随着现代科技的发展,研究人员开发了多种机械设计软件。在SolidWorks 2016中,利用自身提供的可供研究人员进行二次开发的参数化设计接口Application Program Interface(API),根据高级计算机编程语言 Visual Basic 6.0,对其进行二次开发,并实行参数化设计,从而完成对设计系统的研发[3]。该系统拥有友好的操作界面和强大的建模功能,对于缩短轴开发所需的时间、提高轴的设计效率和质量等具有重要意义。

1 参数化建模软件与方法

1.1 建模软件

SolidWorks 2016具有强大的三维建模功能,也为操作者提供了丰富的应用程序编程接口(API)[4-6]。操作者通过调用这些API,可以将SolidWorks 2016中一些重复单调或者规则明确的操作使用程序语言描述,并通过简单的人机交互,让计算机来完成此类工作。通常能够支持OLE和COM的编程语言(如Visual Basic 6.0、C++等)都可以成为SolidWorks 2016的二次开发工具[7]。

1.2 编程语言

Visual Basic 6.0是一种可视化的、面向对象的高级计算机编程语言[8-9]。利用Visual Basic 6.0对SolidWorks 2016进行二次开发时,不用编写大量界面代码,只需要根据具体设计要求,利用系统所提供的控件,在界面上放置对象控件,即可完成相应的对象控件的属性设置和程序编写。

1.3 参数化建模方法

参数化建模方法如图1所示,包括在SolidWorks 2016中建立实体模型图,在方程式中获取各变量,在Visual Basic 6.0的参数化界面中添加窗体、编写程序并调试等,最后创建一套轴的参数化建模程序[10]。

用户进入轴的参数化建模程序可快速设计交互式系统界面,并按照所需要求,输入相应参数数据即可对模型进行整体建模,最终输出零件的三维模型。

图1 参数化建模方法Fig.1 Parametric modeling method

根据轴的结构形状,轴可分为光轴、阶梯轴和曲轴等。现根据轴的参数化建模方法分别对光轴、阶梯轴和曲轴的建模进行阐述。

2 光轴的参数化建模

2.1 光轴的实体建模

图2为所建光轴的实体模型。首先进入草图,选择前视基准面并正视,用圆命令作出轴的圆表面并进行尺寸约束;然后选择特征中的拉伸凸台/基体拉伸模块输入轴的长度;最后利用特征中的圆角命令选择倒角,分别选择各边线对两端进行倒角设计,从而完成对光轴模型的建立。

图2 光轴的实体模型Fig.2 Entity modeling of optical shaft

在光轴模型的建立过程中,工具中的方程式会保存对所做步骤的记录,并将所建模型保存于C:Users联想Desktop论文程序光轴。

2.2 光轴的建模参数化

通过SolidWorks所提供的API函数,根据菜单栏选项里工具中的方程式(图3)对光轴进行程序编写。

图3 光轴的方程式Fig.3 Equations of optical shaft

启动Visual Basic 6.0,根据图3方程式编写生成光轴的程序代码,具体如下:

Private Sub Command1_Click()

Dim swApp As Object′ 定义Solidworks对象的变量

Dim Part As Object′ 定义ModelDoc对象的变量

Dim strfilename As String′ 定义路径变量

Dim longstatus As Long′ 定义状态变量的数值

Dim d As Double

Dim h As Double′ 定义数值类型

If Dir(strfilename) = "" Then

MsgBox ("文件不存在, 请检查:"& vbCrLf & strfilename)

Set swApp = CreateObject(SldWorks.Application)′ 激活Solidworks

Exit Sub

End If

strfilename = "C:Users联想Desktop论文程序光轴.SLDPRT"

Set swApp = CreateObject("SldWorks.Application")

swApp.Visible = True

Set Part = swApp.OpenDoc4(strfilename, 1, 0, "", longstatus)

Set Part = swApp.ActivateDoc("光轴")′ 打开光轴零件文件

d = Text1.Text

l = Text2.Text

c = Text3.Text

a = Text4.Text′ 定义各文本框

Part.Parameter("D1@草图1@光轴.SLDPRT").systemValue = d / 1000′ 光轴直径定义

Part.Parameter("D1@凸台-拉伸1@光轴.SLDPRT").systemValue = l / 1000′ 光轴长度尺寸定义

Part.Parameter("D1@倒角1@光轴.SLDPRT").systemValue = c / 1000′ 光轴左端倒角宽度尺寸定义

Part.Parameter("D1@倒角2@光轴.SLDPRT").systemValue = c / 1000′ 光轴右端倒角宽度尺寸定义

Part.Parameter("D2@倒角1@光轴.SLDPRT").systemValue = a * 3.141592653 / 180′ 光轴左端倒角角度定义

Part.Parameter("D2@倒角2@光轴.SLDPRT").systemValue = a * 3.141592653 / 180′ 光轴右端倒角角度定义

Part.EditRebuild′ 更新文件

Set Part = Nothing′ 释放Part变量指针

Set swApp = Nothing′ 释放swApp变量指针

End Sub

根据光轴的程序代码,建得图4所示的光轴参数建模窗口,并将所做程序保存于C:Users联想Desktop论文程序。图4中光轴的几何参数分别设置为直径d、长度l、倒角宽度(左右两端)c和倒角角度a(左右两端)。

图4 光轴参数化建模窗口Fig.4 Parametric modeling window of optical shaft

2.3 光轴参数化建模实例

启动Visual Basic 6.0打开已保存好的光轴程序,点击光轴进入参数化建模界面;在窗口中输入光轴的各参数值(图5),点击生成,即可在SolidWorks 2016中获得所建模型(图6)。

图5 光轴参数化数据输入实例Fig.5 An date input example of optical shaft

图6 参数化后的光轴模型Fig.6 Parametric optical shaft model

3 阶梯轴的参数化建模

3.1 阶梯轴的实体建模

图7为所建阶梯轴的实体模型。

图7 阶梯轴的实体模型Fig.7 Entity modeling of stepped shaft

3.2 阶梯轴的建模参数化

通过SolidWorks所提供的API函数,根据菜单栏选项里工具中的方程式(图8)对阶梯轴进行程序编制。

启动Visual Basic 6.0,根据图8方程式编写生成阶梯轴的程序代码,其中核心代码如下:

Part.Parameter("D1@草图1@阶梯轴.SLDPRT").systemValue = d1 / 1000′ 轴颈1直径定义

图8 阶梯轴的方程式Fig.8 Equations of stepped shaft

Part.Parameter("D1@凸台-拉伸1@阶梯轴.SLDPRT").systemValue = l1 / 1000′ 轴颈1长度定义

Part.Parameter("D1@草图2@阶梯轴.SLDPRT").systemValue = d2 / 1000′ 轴段1直径定义

Part.Parameter("D1@凸台-拉伸2@阶梯轴.SLDPRT").systemValue = l2 / 1000′ 轴段1长度定义

Part.Parameter("D1@草图3@阶梯轴.SLDPRT").systemValue = d3 / 1000′ 轴段2直径定义

Part.Parameter("D1@凸台-拉伸3@阶梯轴.SLDPRT").systemValue = l3 / 1000′ 轴段2长度定义

Part.Parameter("D1@草图4@阶梯轴.SLDPRT").systemValue = d4 / 1000′ 轴头1直径定义

Part.Parameter("D1@凸台-拉伸4@阶梯轴.SLDPRT").systemValue = l4 / 1000′ 轴头1长度定义

Part.Parameter("D1@草图5@阶梯轴.SLDPRT").systemValue = d5 / 1000′ 轴颈2直径定义

Part.Parameter("D1@凸台-拉伸5@阶梯轴.SLDPRT").systemValue = l5 / 1000′ 轴颈2长度定义

Part.Parameter("D1@草图6@阶梯轴.SLDPRT").systemValue = d6 / 1000′轴身直径定义

Part.Parameter("D1@凸台-拉伸6@阶梯轴.SLDPRT").systemValue = l6 / 1000′ 轴身长度定义

Part.Parameter("D1@草图7@阶梯轴.SLDPRT").systemValue = d7 / 1000′ 轴头2直径定义

Part.Parameter("D1@凸台-拉伸7@阶梯轴.SLDPRT").systemValue = l7 / 1000′轴头2长度定义

Part.Parameter("D1@倒角1@阶梯轴.SLDPRT").systemValue = c1 / 1000′ 轴颈1倒角宽度定义

Part.Parameter("D2@倒角1@阶梯轴.SLDPRT").systemValue = a1 * 3.141592653 / 180′ 轴颈1倒角角度定义

Part.Parameter("D1@倒角2@阶梯轴.SLDPRT").systemValue = c2 / 1000′ 轴头2倒角宽度定义

Part.Parameter("D2@倒角2@阶梯轴.SLDPRT").systemValue = a2 * 3.141592653 / 180′ 轴头2倒角角度定义

Part.Parameter("D1@基准面1@阶梯轴.SLDPRT").systemValue = d4 / 2000

Part.Parameter("D1@草图8@阶梯轴.SLDPRT").systemValue = (l2 + l3) / 1000 + (l4 - m1) / 2000 + b1 / 2000′ 轴头1键槽左侧圆心位置定义

Part.Parameter("D2@草图8@阶梯轴.SLDPRT").systemValue = b1 / 1000′ 轴头1键槽宽度定义

Part.Parameter("D4@草图8@阶梯轴.SLDPRT").systemValue = b1 / 1000′ 同上

Part.Parameter("D3@草图8@阶梯轴.SLDPRT").systemValue = (m1 - b1) / 1000′ 轴头1键槽两圆心间距离定义

Part.Parameter("D1@切除-拉伸1@阶梯轴.SLDPRT").systemValue =h1/ 1000′ 轴头1键槽深度定义

Part.Parameter("D1@基准面2@阶梯轴.SLDPRT").systemValue = d7/ 2000

Part.Parameter("D1@草图9@阶梯轴.SLDPRT").systemValue = (l2 + l3 + l4 + l5 + l6) / 1000 + (l7 - m2 - c2) / 2000 + b2 / 2000′ 轴头2键槽左侧圆心位置定义

Part.Parameter("D2@草图9@阶梯轴.SLDPRT").systemValue = b2 / 1000′ 轴头2键槽宽度定义

Part.Parameter("D4@草图9@阶梯轴.SLDPRT").systemValue = b2 / 1000′ 同上

Part.Parameter("D3@草图9@阶梯轴.SLDPRT").systemValue = (m2 - b2) / 1000′ 轴头2键槽两圆心间距离定义

Part.Parameter("D1@切除-拉伸2@阶梯轴.SLDPRT").systemValue =h2/ 1000′ 轴头2键槽深度定义

根据阶梯轴的程序代码,最终可得阶梯轴的参数化建模窗口,如图9所示。

3.3 阶梯轴参数化建模实例

启动Visual Basic 6.0打开已保存好的阶梯轴程序,点击阶梯轴进入参数化建模界面;在窗口中输入各轴段数值,点击生成,即可在SolidWorks 2016中获得所建模型(图10)。

图9 阶梯轴参数化建模窗口Fig.9 Parametric modeling window of stepped shaft

4 曲轴的参数化建模

4.1 曲轴的实体建模

图11为所建曲轴的实体模型。

4.2 曲轴的建模参数化

通过SolidWorks所提供的API函数,根据菜单栏选项里工具中的方程式(图12)对曲轴进行程序编制。

启动Visual Basic 6.0,根据图12方程式编写生成曲轴的程序代码,其中核心代码如下:

Part.Parameter("D1@草图5@曲轴.SLDPRT").systemValue = d5 / 1000′ 凸台1直径尺寸定义

图10 参数化后的阶梯轴模型Fig.10 Parametric stepped shaft model

图11 曲轴的实体模型Fig.11 Entity modeling of crankshaft

图12 曲轴的方程式Fig.12 Equations of crankshaft

Part.Parameter("D1@凸台-拉伸4@曲轴.SLDPRT").systemValue = l4 / 1000′ 凸台1拉伸长度尺寸定义

Part.Parameter("D1@草图4@曲轴.SLDPRT").systemValue = d4 / 1000′ 凸台2直径尺寸定义

Part.Parameter("D1@凸台-拉伸3@曲轴.SLDPRT").systemValue = l3 / 1000′ 凸台2拉伸长度尺寸定义

Part.Parameter("D1@草图3@曲轴.SLDPRT").systemValue = d3 / 1000′ 凸台3直径尺寸定义

Part.Parameter("D1@凸台-拉伸2@曲轴.SLDPRT").systemValue = l2 / 1000′ 凸台3拉伸长度尺寸定义

Part.Parameter("D1@草图1@曲轴.SLDPRT").systemValue = d1 / 1000′ 凸台4上直径尺寸定义

Part.Parameter("D3@草图1@曲轴.SLDPRT").systemValue = d2 / 1000′ 凸台4下直径尺寸定义

Part.Parameter("D2@草图1@曲轴.SLDPRT").systemValue = m / 1000′ 凸台4圆心间距离尺寸定义

Part.Parameter("D1@凸台-拉伸1@曲轴.SLDPRT").systemValue = l1 / 1000′ 凸台4拉伸长度尺寸定义

Part.Parameter("D1@草图6@曲轴.SLDPRT").systemValue = m / 1000′ 凸台5位置约束

Part.Parameter("D2@草图6@曲轴.SLDPRT").systemValue = d6 / 1000′ 凸台5直径尺寸定义

Part.Parameter("D1@凸台-拉伸5@曲轴.SLDPRT").systemValue = l5 / 1000′ 凸台5拉伸长度尺寸定义

Part.Parameter("D1@草图7@曲轴.SLDPRT").systemValue = d7 / 1000′ 凸台6直径尺寸定义

Part.Parameter("D1@凸台-拉伸6@曲轴.SLDPRT").systemValue = l6 / 1000′ 凸台6拉伸长度尺寸定义

Part.Parameter("D1@基准面2@曲轴.SLDPRT").systemValue = l6 / 2000′ 定义基准面的位置,以镜向凸台5,4,3

Part.Parameter("D1@基准面3@曲轴.SLDPRT").systemValue = l7 / 1000′ 凸台7长度尺寸的定义

Part.Parameter("D1@草图9@曲轴.SLDPRT").systemValue = d8 / 1000′ 凸台7右端圆直径尺寸的定义

Part.Parameter("D3@凸台-拉伸7@曲轴.SLDPRT").systemValue = a * 3.141592653 / 180′ 凸台7拔模角度的定义

Part.Parameter("D1@草图10@曲轴.SLDPRT").systemValue = d9 / 1000′ 凸台8直径尺寸定义

Part.Parameter("D1@凸台-拉伸8@曲轴.SLDPRT").systemValue = l8 / 1000′ 凸台8拉伸长度尺寸定义

根据曲轴的程序代码,最终得到曲轴的参数化建模窗口,如图13所示。

图13 曲轴参数化建模窗口Fig.13 Parametric modeling window of crankshaft

4.3 曲轴参数化建模实例

启动Visual Basic 6.0打开已保存好的曲轴程序,点击曲轴进入参数化建模界面;在窗口中输入各段凸台数值,点击生成,即可在SolidWorks 2016中获得所建模型(图14)。

5 轴参数化建模总窗口

启动Visual Basic 6.0,新建一个轴的参数化建模窗口,如图15所示;在窗体中添加所需的文本框及控件,并在窗体中添加新的窗体,分别为光轴、阶梯轴、曲轴的参数化建模窗口;在生成按钮中输入各生成零件相应的调用程序及对变量定义的程序,完成后保存。

图14 参数化后的曲轴模型Fig.14 Parametric crankshaft model

在图15窗体中点击三个轴的按钮会出现该轴对应的参数化建模窗口,其程序代码分别为:光轴的参数化建模窗口.Show,阶梯轴的参数化建模窗口.Show,曲轴的参数化建模窗口.Show。

6 结论

根据轴的设计尺寸和结构形状等,基于目前主流的三维软件SolidWorks 2016,结合高级计算机编程语言 Visual Basic 6.0,分别对光轴、阶梯轴和曲轴的参数化建模方法进行研究,实现了在SolidWorks 2016中各类型轴的自动建模或更新,有效地提高了各类型轴的设计效率。

猜你喜欢
轴头光轴倒角
公交车免维护轴头拆卸的专用装置
基于ANSYS Workbench三螺杆轴头泵泵体设计与试验
带轴头机械密封改进性设计
非平行光轴三维立体检测技术在毫山峪隧道中的应用
光轴的形态和应用
光轴键盘任我选
BZT300型转鼓挤浆机的装配工艺改进
机械设计与制造中的零件倒角初探
机械设计与制造中的零件倒角初探
基于机械设计与制造中的零件倒角研究