1 引言
在电气领域中,接触器是一种典型的电气产品,广泛用作电力主回路的开断和控制电路。在对接触器进行设计的过程中,经常会用到结构相同或相似,尺寸却不同的情况,通常采用的方法是将每个零件都单独设计,但是此方法占用了设计人员大部分的精力和时间,增加了新产品的开发周期。随着新的设计软件和技术在生产中的应用,可以加快CAD设计的过程。
SolidWorks是基于Windows的CAD桌面集成系统,是在继承和总结了大型机械CAD软件的基础上,在Windows环境下实现的一款三维CAD软件 ,它可以十分方便地实现零件造型、装配和生成。
SolidWorks与以前的CAD设计系统相比具有以下特性:
(1)有直观的 Windows用户界面和强大的实体建模功能;
(2)具有方便管理的特征管理员历史树;
(3)双向关联的尺寸驱动机制。
但是SolidWorks并不是十全十美的,无法完全满足特定企业的特殊要求。因此,为了满足特定企业的特殊要求,提高生产效率,就必须对其进行二次开发。本研究通过SolidWorks的二次开发,开发出一种接触器铁心的参数化设计方案。
2 SolidWorks的二次开发
SolidWorks软件提供了完整的、免费的开发工具(API),提供了Visual C++、VB、VBA(宏记录)、Delphi等支持COM(Component Object Model,组件对象模型)或OLE(ObjectLinking and Embedding,对象链接与嵌入)的开发语言接口,用于SolidWorks二次开发,从而在用户自己开发的应用软件中实现诸如生成直线、构造实体、检查曲面表面参数等几乎所有SolidWorks软件的现有功能,用户也可以创建出专用的SolidWorks功能模块。
3 利用VB二次开发的步骤
Visual Basic具有易用、易学、程序开发周期短、有可视化设计界面等特点。通过VB来实现对SolidWorks的二次开发,需要按照一定的步骤来进行,具体的步骤如下:
(1)通过代码使应用程序连接Solidworks,并新建零件图。
(2)确定能反映零件特征的尺寸参数,并以此作为设计变量,同时确定尺寸之间的相互关系;
(3)利用VB进行用户界面的设计,创建程序运行界面。
(4)使用VB提供的方法和属性,直接调用SolidWorks的API函数编写程序代码,实现三维模型的参数化设计以及模型的编辑,实现复杂形体的零件造型。这种方法要求开发人员对SolidWorks的API函数非常精通,对于一般初学者来说略有难度。一个简单且实用的方法是先在SolidWorks中进行宏录制,获得宏操作代码,然后将修改后的程序复制添加到VB程序代码的相应部分,最后编辑、修改、调试以达到要求,通过程序驱动设计变量实现模型的创建和更新。这种编程方法较简单,通用性好。开发者可根据自己对API掌握的熟悉程度,选择适合自己的方法进行程序代码的编写;
(5)通过变化尺寸实现任意相似零件三维模型的创建。
4 接触器铁心的参数化设计

图1 尺寸参数定义
4.1 基本参数的确定
零件的参数化设计,首先要确定能反映零件外形的主要尺寸值作为变量,以此变量来控制零件的外形尺寸。
定义各尺寸值的参数,如图1所示。支撑脚的基本参数为:
外形尺寸h1、外形尺寸h2、外形尺寸b1、外形尺寸b2、外形尺寸b3、厚度d。
4.2 应用程序界面
利用VB建立应用程序界面,如图2所示参数输入界面。当运行时,只需要根据实际情况在对应参数部分输人数值,然后点击生成铁心,就可以建立所需要的零件模型。

图2 参数输入界面
4.3 程序代码的编写
对于程序代码的编写,简单实用的方法是使用SolidWorks宏功能,把零件模型绘制的全过程录制成宏文件,提出宏文件中与模型生成有关的关键函数,找到模型尺寸对应的参数,弄清关键参数的调整对零件的变化,用变量把关键参数替换成能被VB调用的应用程序,通过程序的驱动变量实现模型的建立和更新。
关键代码如下:
Set swApp = CreateObject ("SldWorks.Application")
swApp.Visible = True
strfilename = App.Path&" \零件1.SLDPRT"
Set Part = swApp.OpenDoc4(strfilename, 1, 0, "", longstatus)
Set Part = swApp.ActivateDoc(" 零件1 ")
……..
Part.Parameter("h1@草图1" & strfilename).SystemValue = h1 / 1000
Part.Parameter("h2@草图1" & strfilename).SystemValue = h2 / 1000
Part.Parameter("b1@草图1" & strfilename).SystemValue = b1 / 1000
…….
Set myFeature = Part.FeatureManager.FeatureExtrusion2(True,
False, False, 0, 0, d, 0, False, False, False, False, 0.01745329251994,
0.01745329251994, False, False, False, False, True, True, True, 0, 0,
False)
Part.EditRebuild
这种方法编程的优点是,通用性好且方便简单。
4.4 程序运行结果
运行程序,点击“生成零件”,生成一个新的零件环境,在文本框中输入相对应的数值,例如:外形尺寸h1为20mm、外形尺寸h2为15mm、外形尺寸b1为5mm、外形尺寸b2为5mm、外形尺寸b3为5mm、厚度d为1mm,然后点击“生成铁心”,建立与用户输入数值相对应的零件模型。如图3所示。

图3 程序生成接触器铁心
4.5 产品模型的自动装配
装配路径是虚拟装配系统中零件实现自动装配运动的基础,取得零件的装配路径信息有两种方法:
(1)用户利用虚拟装配环境进行人机交互操作来指定装配路径。采用拆卸的方式,依次记录每一个零件在拆卸过程的路径关键点,然后进行求逆运算,拟合成一条装配路径。
(2)用户根据装配体的装配形式和特点,通过归类将装配零件划分成几种装配类别,然后通过用户指定零件装配类别,系统自动计算出各零件的装配路径关键点。
本研究使用了第一种方法先将接触器进行组装,将生成的零件调入接触器模型并设计装配路径。图4为组装好的接触器。

图4 组装好的接触器

图5 拆卸后的接触器
最后对组装好的接触器进行路径规划进行拆卸(如图5所示),并对其求逆便可得到装配顺序。
5 结语
利用VB编程语言对SolidWorks API函数的调用,实现接触器铁心零件设计过程的参数化、装配自动化。通过实例分析,可以得出结论:利用参数化建模生成零件,可以极大的提高建模的效率,缩短产品的开发和设计周期。
参数化建模技术是产品设计的一个发展趋势,将会得到广泛的应用。随着科技的飞速发展,制造业竞争的不断加剧,以最短的时间开发和生产出高质量、低成本的产品,快速满足市场的需求,必将成为制造业企业所追求的目标。
参考文献:
[1] 易红. 电工电器产品三维CAD系统设计与开发[D]. 湖南大学, 2008, 1 - 2.
[2] 何岸阳. SolidWorks二次开发方法研究[J].科技信息(科学教研), 2007, (28):69 - 70.
[3] SolidWorks公司. 生信实维公司编译.SolidWorks API二次开发[M].机械工业出版社,2005.
[4] 陈营. CAD/CAM 技术现状及发展趋势[N]. 潍坊学院学报, 2004, 4 (2):100 - 102.
[5] 王贤坤. 机械CAD/CAM技术、应用与开发[M]. 北京: 机械工业出版社,2001, 68 - 70.
[6] 王卫荣, 齐芬. SolidWorks的二次开发在箱体类零件中的应用[J]. 机械工程与自动化, 2007, (2): 33 - 34.
[7] 张增良, 张绘宏.Visual Basic简明教程[M]. 西安: 西安交通大学出版社,2006.
[8] 于洋, 贺栋. 基于SolidWorks的润滑调节站油箱二次开发研究[J]. 制造业自动化, 2009, 31(9): 138 - 140.
[9] 李丛德, 王得胜. 基于VB的SolidWorks渐开线齿轮二次开发方法研究[J].机电工程技术, 2008, (11): 23 - 24.
作者简介
高智箭(1986- ),男,河北人,助理工程师,硕士研究生,现就职于天津市市政工程设计研究院,从事市政行业电气及自动化设计研究工作。
摘自《自动化博览》2月刊
|