刘世才
【摘 要】通过模具导柱参数化设计简要阐述了利用vb语言对solidworks进行二次开发的基本思路和开发过程,通过验证该方法可行。完全可以依据该方法和思路制作满足自身需要的参数化元件库从而大大提高设计效率缩短设计的周期,具有较好的实际意义。
【关键词】solidwoks;二次开发;参数化建模
中图分类号: TH49;TP391.72文献标识码: A 文章编号: 2095-2457(2019)07-0178-002
DOI:10.19694/j.cnki.issn2095-2457.2019.07.073
【Abstract】through parametric design of die guide pillar,the basic idea and development process of secondary development of SolidWorks using VB language are briefly described, and the feasibility of this method is verified. According to this method and thinking, we can make parametric component library to meet our own needs, which greatly improves the design efficiency and shortens the design cycle, and has good practical significance.
【Key words】Parametric modeling;Solidwoks;Secondary development
1 Solidworks二次开发的意义
在产品设计时,会频繁遇到一些尺寸不同但形状相似的零件,例如齿轮、模具中的导柱导套、皮带轮等而这些零件在自带的标准件库是无法直接调用的。这类型的零件如果单独建模会耗费大量的时间和精力,但如果能将其进行参数化则可大大提高设计效率。所谓参数化就是将零件中的某些约束变成可调整的变量参数,今后设计时给这些变量参数赋予不同的值后就可以得到相应的模型。在Solidworks中参数化设计主要有两种途径:一是利用系列零件设计表,这种方法要求设计者之前要输入大量的模型参数。另外一种途径是通过对软件的二次开发来实现。
本文以导柱的参数化三维造型为例介绍通过VB语言对solidworks二次开发的基本思路、方法和过程。从而为其他零件的参数化三维造型的二次开发提供一定的参考。
2 solidworks二次开发的思路
solidworks二次开发主要是通过VB等编程语言调用API函数来完成,常用的方法有以下两种。
2.1 完全编程法
完全编程法是通过编程调用API函数来控制solidworks建模的所有操作。这种方法对编程人员的水平要求较高,编程人员不仅要充分了解API函数,还要具有较强的编程能力。这种方法使编程的工作量比较大,但是由于建模过程中的所有操作都通过API函數实现,因此可以实现三维模型的全参数化驱动。
2.2 建模与编程相结合法
所谓建模与编程相结合是先在solidworks中建立一个初始模型,并确定好主要的设计变量;然后在通过编程调用具体的API函数根据实际需要修改设计变量,从而得到最终的零件。建模与编程相结合法相对于完全编程法而言,由于这种方法将大量的建模工作转移到solidworks的建模环境中,剔除了完全编程法中的繁琐编程,因此工作量大大减少从而提高工作效率对编程人员的要求也随之降低。本文采用建模与编程相结合法以导柱参数化设计为例进行讨论。
3 常用API函数
为了方便用户进行二次开发Solidworks提供了大量的API函数,用户可以通过各种编程语言来调用这些函数,从而达到操作solidworks的目的。这样我们就可以建立适合自身需要、专用的功能模块。而建立的这种功能模块可根据需要生成插件挂在solidworks的菜单下,或者生成单独的exe程序,也可以做成工具条的形式。因此要对solidworks进行二次开发,除了要掌握一定的编程语言外,还必须先了解solidworks的API函数。下面就以VB为编程语言介绍几个常用的API函数。
3.1 与solidworks建立连接
二次开发时首先要建立SolidWorks的链接,创建SolidWorks的应用对象代码为:
Dim swApp As Sldworks.Sldworks
Set swAPP=CreateObject(“Sldworks.application”)
通过这个代码就可以打开SolidWorks的接口,可以调用它的API函数了
3.2 直线绘制编程格式及其含义
ModeDoc.CreateLine2(X起始,Y起始,Z起始,X终点,Y终点,Z终点)(constructionGeometry=true),其中X起始,Y起始,Z起始 表示直线的起点坐标X终点,Y终点,Z终点表示直线的终点坐标 constructionGeometry=true时表示画中心辅助线
3.3 旋转增料编程格式及其含义
PartDoc.featureRevolve(angle,reverseDir,angle2,revtype)
其中angle:表示角度 reverseDir :为true时为反向revtype为1时该参数无效;Angle2表示旋转的反向角度,仅当revtype为2时有效;Revtype:取0时为单向旋转增料,取1时为双向等角度旋转增料。
4 开发过程
4.1 导柱建模型并录制宏
Solidworks的二次开发主要是调用solidworks中的API函数。在整个开发过程中牵涉到非常多的API命令,对于大多数人来说比较难也不可能全面掌握。因此为了简化编程过程、提高编程效率、更好地构建基础框架。本文利用solidworks宏命令的录制功能进行相关部分的录制,然后在VB环境下依据相关语法约束对录制的宏代码进行必要的改写。
运行solidworks新建文件然后启动宏录制,接下来就可以按照正常的建模方式完成导柱的建模得到如图所示零件,停止宏录制并保存录制的宏代码即可。
4.2 确定参数变量与约束
导柱的形状主要由D(导柱的肩部直径)d1(导柱导向部分直径)d2(导柱的安装部分直径)L1(导柱的肩部长度)L2(决定导柱的安装部分长度)L3(油槽的轴向定位尺寸)L4(油槽间距)R(小端倒角)r(油槽圆角),倒角大小,油槽数量等参数决定。这些参数是在导柱设计时比较经常变化的尺寸,可以把这些参数当做自变量,其余参数可以当做因变量,在建模时通过约束或者通过公式进行约束。导柱设计变量参数如下。
4.3 设计交互界面
为了让程序直观便捷可以在VB环境下通过窗体创建如图所示交互界面。
4.4 宏代码编辑及代码编写
通过宏录制的代码必须在VB编辑器中进行必要的修改,替换相关代码、删除冗余代码才能顺利运行。编辑宏录制的代码的关键是读懂录制宏代码中各个代码的含义,找出代码中与关键变量相关的参数,用变量替代后,通过编程对这些变量分别赋值即可。双击交互界面中“3D建模按钮”并依据交互界面中的变量名称定义变量,然后粘贴宏录制得到的代码,并用变量替代相关参数如图所示。完成代码编辑好在VB环境下生成EXE文件即可。
Private Sub CommandButton1_Click() '3D建模按钮
Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
Set Part =swApp.NewDocument("C:\ProgramData\
SolidWorks\SolidWorks 2012\templates\零件.prtdot", 0, 0, 0) '新建零件文件,并定义新建文件的存放位置
Set Part = swApp.ActiveDoc '激活新建的零件文件
Dim D, d1, d2, l1, l2, R, c, l, rr, l3, S As Integer '定義变量
D=TextBox1.Value'导柱肩部半径
d1=TextBox2.Value'导柱滑动部分半径
d2=TextBox3.Value'导柱安装部分半径
l1=TextBox4.Value'导柱肩部长度
l2=TextBox5.Value'导柱配合部分长度和肩部长度之和
l3=TextBox6.Value'油槽圆弧圆心到导柱小端端面的距离
rr=TextBox7.Value'油槽半径
R=TextBox8.Value'导柱端部圆角半径
c=TextBox9.Value'导柱肩部倒角(45度)
l=TextBox10.Value'导柱总长
S=TextBox11.Value'油槽数量
l4=TextBox12.Value'两个相邻油槽的间距
… …… … … …
中间插入通过宏录制的代码,并将相关参数用变量名替代
… …… … … …
End sub
在此说明录制的宏与建模过程有关,建模过程或建模方法不同所得到的宏代码会有所不同。
5 结尾
以上通过模具导柱参数化设计简要阐述了利用vb语言对solidworks进行二次开发的基本思路和过程,通过实践验证该方法是可行的。用户完全可以依据该方法和思路开发更多满足自身需要的参数化零件库,从而大大提高设计效率缩短设计的周期,具有较好的实际意义。
【参考文献】
[1]徐国全、黄志超.基于solidworks的参数化设计二次开发的研究.机械设计与研究.2007.2第一期.
[2]王占中、王义文等.solidworks二次开发在渐开线齿轮三维造型中的应用.机械工程师.2005年第6期.
[3]Solidworks公司著.Solidworks高级教程二次开发与API(美)2007版.北京:机械工业出版社,2009.1.