APP下载

基于UG的螺杆CAD/CAM系统研究与开发*

2018-03-07王善涛刘日良

组合机床与自动化加工技术 2018年2期
关键词:样条螺杆对话框

王善涛,刘日良

(山东大学 机械工程学院 高效洁净机械制造教育部重点实验室,济南 250061)

0 引言

螺杆作为许多机械产品的重要部件,在机械领域有着很广泛的应用。由于不同螺杆的螺旋曲面廓型成型机理不同、型线样式复杂多变,螺杆的加工难度越来越大[1]。计算机辅助设计与制造(CAD/CAM)技术是数字化、信息化制造技术的基础[2],在螺杆的设计制造中具有广泛的应用。

关于螺杆CAD/CAM技术,学者们做了大量研究。北京化工大学的康凯敏采用基于Visual Basic6.0环境的SolidWorks二次开发原理,以及Access数据库传递螺杆参数的方法开发出了挤出螺杆的二维零件图的参数化设计系统[3]。华南理工大学的胡志明以UG为开发平台,Visual C++6.0为编程工具,通过Access数据库建立关系型数据表实现了挤出机普通螺杆BM型螺杆、销钉型螺杆及屏障型螺杆的参数化设计,用户输入螺杆参数后就可在短时间内完成螺杆的三维造型[4]。华南理工大学的王明君和文劲松在Pro/E软件中进行二次开发,实现了单螺杆元件的三维造型参数化设计系统[5]。天津科技大学的梁欣和王平对异型螺杆CAD/CAM进行了相关的研究,讨论了几种异型螺杆造型和加工的方法[6]。目前,尚未出现功能完整的从螺杆模型的快速创建到螺杆加工过程中的刀具轨迹求解的专用CAD/CAM系统。在前人研究基础上,本文针对螺杆的造型设计和旋风铣削加工方法,希望解决上述不足,研发出专用CAD/CAM系统。

1 基于UG的开发技术简介

为了实现螺杆CAD/CAM系统,本文选择以UG NX 8.0软件为平台,综合运用NX Open、Block UI Styler和Menu Script二次开发工具,以C#为编程语言,结合visual studio 2010作为编程工具。

NX Open是NX面向对象的编程接口,支持多种开发语言(VB、C++,Java和C#等),可扩展性好,功能强大。UG NX 8.0软件拥有的JA文件录制功能[7]可以记录和回放交互环境下用户的操作,利用该功能可以方便快捷地进行二次开发。NX提供了定制菜单的专用模块Menu Script。使用Menu Script工具,用户可以生成自己的菜单,替换UG原有的菜单,也可实现对UG某个菜单的编辑并生成自己的菜单。NX拥有的专用对话框设计工具Block UI Styler几乎可以满足所有NX二次开发需要的界面,并且对话框设计完成后可以自动生成代码模板,方便用户编写程序。

2 螺杆CAD/CAM系统的模块化设计与功能

系统采用了可以缩短设计时间、提高设计效率的模块化设计方式。如图1所示,根据螺杆的造型和加工特点,螺杆CAD/CAM系统分为三大模块:螺杆参数化设计模块、读取螺杆模型模块和刀具轨迹求解模块。

螺杆参数化设计模块可以快速实现螺杆的三维建模。用户输入螺杆参数和螺杆轴截面线参数后可以快速生成需要的螺杆三维模型。读取螺杆模型模块用于获得螺杆参数信息。用户使用该模块读取螺杆模型可以快速了解螺杆模型的参数信息,方便对其进行刀具轨迹求解。刀具轨迹求解模块用于求解内旋风包络铣削加工螺杆时的刀具轨迹。用户在该模块中输入螺杆参数、螺杆轴截面线参数和螺杆加工刀具参数后可以显示刀具轨迹。

图1 系统结构功能图

3 螺杆CAD/CAM系统开发步骤

作为UG环境下的应用程序,螺杆CAD/CAM系统的开发遵循二次开发的常用步骤,包括环境配置、Menu Script菜单制作、Block UI Styler对话框设计、创建程序框架和程序的编写与调试等,其完整开发流程如图2所示。

首先建立一个名为“UGII_USER_DIR”的用户变量使其指向一个绝对路径。在该路径下新建两个文件夹application和startup。在startup文件夹下建立一个文本文档,使用Menu Script脚本语言写入菜单内容并以.men格式保存,UG启动后会自动加载。

利用Block UI Styler对话框设计工具,用户可以根据自身需求选择相应的块目录添加到要设计的对话框中[8]。对话框设计完成后选择代码生成语言为C#,命名保存后会自动生成.dlx文件和.c#文件两个文件,将.dlx文件放在application文件夹下。

将“%UG安装路径%UGOPEN/vs_filesVC#/”下的文件和文件夹复制到“%VS2010安装目录%/VC#/”文件夹中,使用UG NX 8.0自带的基于C#语言的开发向导NX8 Open C# Wizard编写程序。启动visual studio 2010,选用该开发向导新建一个项目(项目名称需与对话框名称相同)。打开新建项目,将原有的.c#文件替换为Block UI Styler生成的.c#文件,之后添加相关引用,编写程序,调试出.dll文件,将其复制到application文件夹下。

图2 开发流程图

4 螺杆CAD/CAM系统功能实现

4.1 螺杆参数化设计模块

在UG CAD中,二次开发的参数化设计[9]方法有两种,即基于图形模板的参数化设计和基于参数化程序的设计。基于图形模板的参数化设计方法的思想是通过修改图形模板的特征,从而驱动图形模板发生相应的变化,达到参数化设计的目的。基于参数化程序的设计方法的思想遵循点、线、面、体的方式进行,通过寻找模型上的关键点或根据数学方程求得关键点,再把关键点连成线,由线构面再构体。基于图形模板的参数化设计方法具有参数修改灵活,程序代码量小,编译链接快等优点,但功能有限。基于参数化程序的设计方法虽然程序代码量大,不易编译,但是其功能更为强大。每一种方法都可以通过NXOPEN API编程实现。

结合螺杆造型和实际情况,复杂造型的螺杆设计更倾向于采用基于图形模板的参数化设计方法,简单造型的螺杆设计则可以多采用第二种方法。下面分别对这两种方法进行介绍。

4.1.1 基于螺杆模板的参数化设计

基于螺杆模板的参数化设计是采用三维模型与程序控制相互结合的方式,通过修改部件的表达式,进而修改模型。根据部件的设计要求,事先建立模型,并确立一组可以完全控制三维模型形状和大小的设计参数。参数化程序针对这些参数进行编程,实现设计参数的查询和修改,根据新的参数值更新模型。具体步骤如下:

(1)创建螺杆模板。用UG创建一个由参数驱动的螺杆三维模型,使其包含基本的设计意图和设计对象的拓扑特征,并用表达式将参数关联起来。本文建立的螺杆模板及其建模方法如图3所示。螺杆模板的螺旋槽由螺旋槽样条曲线和螺旋槽平底组成,如图4所示。螺杆模板确定螺旋槽样条曲线的型值点个数为18个,螺旋槽平底是一条直线段,螺旋槽平底两端的连续性为G0连续。

(2)根据给定参数,在螺杆模板基础上生成新的螺杆三维模型。通过相关的程序,编辑螺杆模板文件中的表达式参数值,然后驱动系统生成新的螺杆三维模型。用户给定参数的对话框如图5所示。其中,螺旋槽半个周期内的型值点个数即为确定螺旋槽样条曲线的型值点个数。

图3 螺杆模板及其建模方法

图4 螺杆模板轴截面

图5 基于螺杆模板的参数化设计对话框

由于螺杆模板限制,型值点个数最多为18个。型值点个数大于2个,螺旋槽平底宽为0时,螺杆模板更新为另一种类型的双螺杆;型值点个数为2个,螺旋槽平底宽不为0时,螺杆模板变为梯形双螺杆;型值点个数为2个,螺旋槽平底宽为0时,螺杆模板变为三角形双螺杆。因此,用户使用此螺杆模板生成的螺杆类型最多只有上述4种。

4.1.2 基于参数化程序的螺杆设计

采用基于参数化程序的设计方法快速构建螺杆三维模型的程序思路为:

(1)根据螺杆尺寸参数插入圆和螺旋线的表达式,使用规律曲线(LawCurveBuilder)生成圆和螺旋线;

(2)根据螺杆轴向截面线型值点坐标生成样条线(StudioSplineBuilderEx),结合螺旋槽平底宽建立基准平面(DatumPlaneBuilder),样条线基于基准平面镜像复制(MirrorCurveBuilder)一个,之后分别连接(AssociativeLineBuilder)和桥接(BridgeCurveBuilder)这两段样条线,生成一条闭合曲线;

(3)根据螺杆长度对生成的圆进行拉伸(ExtrudeBuilder),让闭合曲线沿着螺旋线扫掠(SweptBuilder),生成扫掠体,之后将扫掠体沿Z轴旋转(MoveObjectBuilder)180度并复制一个;

(4)圆柱体对两个扫掠体求差(BooleanBuilder),生成螺杆三维模型。

利用Block UI Styler对话框设计工具制作的示例向导对话框界面如图6所示。用户依次选择螺杆样式、输入螺杆参数和螺杆轴向截面线信息后即可生成螺杆三维模型。“选择样式”一栏包括螺杆的旋向、单双和锥形或柱形三种。“螺杆参数”一栏包括螺杆的大径、长度和导程等。系统设定型值点个数最少为2个,最多20个。螺旋槽平底处的连续性通过第一个型值点的切线方向(TangentDirection)确定,G0连续不做处理,G1连续即将其切线方向设为(0,0,1)。

图6 基于参数化程序的螺杆设计对话框

4.2 读取螺杆模型模块

用户使用螺杆CAD/CAM系统的读取螺杆模型模块打开需要读取参数的螺杆模型,即可显示螺杆的参数信息。

读取螺杆模型的基本原理是通过程序获得UG工作区中螺杆的所有特征(Feature),然后逐步获得这些特征的名称(GetFeatureName)和表达式(GetExpressions),最后输出每个特征的名称和控制该特征的表达式(Expression)的描述(Description)以及表达式(Expression)的名称和值(Equation)。读取螺杆模型模块的实例如图7所示,左侧为螺杆三维模型,右侧信息框显示螺杆的基本参数,包括螺杆长度,底部直径和圆锥角等。

图7 读取螺杆模型实例

4.3 刀具轨迹求解模块

螺杆的加工方式有很多种,由此产生的刀具轨迹各有不同。螺杆CAD/CAM系统刀具轨迹求解模块求取的刀具轨迹是指内旋风包络铣削加工螺杆过程中的刀具轨迹。利用Block UI Styler对话框设计工具制作的示例向导对话框界面如图8所示。用户根据步骤输入螺杆参数、轴向截面线参数和刀具信息后点击“完成”按钮,即可显示刀具轨迹信息。

图8 刀具轨迹求解向导对话框

系统求取刀具轨迹的具体方法是刀具轨迹求解轴截面法,具体原理参见文献[10]。设内旋风铣削刀具刀尖中心点On的坐标为xn,yn,刀尖圆弧半径为r0,内铣刀盘安装角为δ,则投影刀尖椭圆模型曲线可表示为:

(1)

刀具轨迹求解模块对用户输入的螺杆轴截面型值点坐标自动进行三次均匀B样条曲线拟合。具体原理是根据这些型值点反求出三次均匀B样条的控制点[11],再基于这些控制点求出三次均匀B样条曲线的方程,即螺杆轴截面廓型曲线的方程,可写成如下形式:

(2)

设曲线w(x)与螺杆轴截面廓型曲线(拟合的三次均匀B样条曲线)的切点为pn,则两条曲线在pn处有相同的公切线,所以存在以下关系:

(3)

刀具轨迹求解模块在每段B样条曲线上等距选取不同的t值(即等参数选取点),t值由用户确定,即“每段B样条取点数”输入框。t值确定后就确定了每段B样条曲线上的点,将这一系列的点设为螺杆轴截面廓型曲线与投影刀尖椭圆模型曲线的切点pn(x,y)。例如,“每段B样条取点数”为3时,示意图如图9所示。将pn的坐标值带入由式(1)和式(3)组成的方程组求解即可得到投影刀尖椭圆模型的圆心即刀尖中心点On的坐标xn,yn。

采用轴截面法求解刀具轨迹的过程,工件在每次转动的过程中为匀速等步距角转动,同时刀盘沿着工件轴截面的轴向进给运动也为等步距的进给运动,在加工完一个轴截面槽后,工件要转过一个步距角,根据螺旋曲面的形成原理可知,刀盘必须要轴向进给一个对应的轴向进给距离来保证螺旋曲面的生成。因此,内旋风铣削螺杆的数控编程中的NC加工代码C、X、Z插补信息可表示为:

(4)

其中,△φ为步距角,d为螺杆的底径值,P为螺杆的导程,△z为刀盘沿着工件的轴向进给步距。

图9 示意图

5 系统应用示例

一右旋双头挤出螺杆,导程为48mm,外径35.6mm,底径23.6mm,螺棱宽2.88mm,螺旋槽平底宽3.12mm,螺杆长度为48mm,螺杆轴截面(螺旋槽部分)半个周期的有效型值点如表1所示。

表1 螺杆轴截面有效型值点数据

每段B样条取点数为3个,螺旋槽平底两端G1连续。内旋风铣削加工螺杆的工艺参数设置为刀盘安装角为23.2°,菱形刀片的刀尖圆弧半径为1.6mm,内铣刀盘的回转半径为60mm。

打开UG NX 8.0,在菜单栏会有定制的螺杆CAD/CAM系统菜单,如图10所示。

图10 螺杆CAD/CAM系统菜单

根据以上信息,使用螺杆CAD/CAM系统的螺杆参数化设计模块中的基于参数化程序的螺杆设计方法建立的螺杆三维模型如图11所示。使用刀具轨迹求解模块则求解出了相应的螺杆加工过程中的刀位数据。

图11 螺杆三维模型

6 总结

本文详细介绍了螺杆CAD/CAM系统的开发平台、编程接口和开发步骤;深入地叙述了CAD/CAM系统的模块化结构和功能;最后通过一个典型螺杆零件的实例,介绍了CAD/CAM系统的应用情况。该螺杆CAD/CAM系统初步实现了从螺杆的设计到加工的集成,显著提高了螺杆的设计和制造效率,未来的研究重点是对螺杆的加工过程进行仿真模拟。

[1] Wang K, Wang S Q, Sun X W, et al. Machining Theory of Forming Complex Inner Helicoid and Numerical Algorithm to Design Contour of the Disc-Mill Cuter[J]. Applied Mechanics & Materials, 2011, 141:339-343.

[2] 陈钢, 王新云, 金俊松,等. 基于UG的轿车差速器直锥齿轮专用CAD/CAM系统[J]. 机械传动, 2009, 33(3):32-34.

[3] 康凯敏. 新型挤出螺杆参数化设计系统的研究[D].北京:北京化工大学, 2007.

[4] 胡志明. 基于UG的挤出机螺杆参数化设计系统的研究[D].广州:华南理工大学, 2014.

[5] 王明君, 文劲松. 基于Pro/Engineer的挤出机螺杆三维参数化模块开发[J]. 塑料科技, 2009, 37(5):71-73.

[6] 梁欣, 王平. 异型螺杆CAD/CAM的研究[J]. 天津科技大学学报, 2004, 19(1):55-57.

[7] 周临震, 李青祝, 秦珂. 基于UG NX系统的二次开发[M]. 镇江:江苏大学出版社, 2012.

[8] 汪锐. NX Open API编程技术[M]. 北京:电子工业出版社, 2012.

[9] 李开林, 胡志明. 挤出螺杆参数化设计在UG中的实现[J]. 塑料, 2013, 42(6):103-105.

[10] 韩泉泉. 复杂廓型螺杆类零件的内旋风包络铣削技术研究[D].济南:山东大学,2014.

[11] 中国煤炭地质总局航测遥感局. 煤航技术研究(10)[M]. 西安:西安地图出版社, 2009.

猜你喜欢

样条螺杆对话框
基于ANSYS Workbench三螺杆轴头泵泵体设计与试验
对流-扩散方程数值解的四次B样条方法
正常恢复虚拟机
Bootlace Worms’Secret etc.
What Is Beauty?
三次参数样条在机床高速高精加工中的应用
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
煤矿井下用螺杆空压机优化设计之探讨
浅谈VB的通用对话框《CommonDialog》控件的使用
基于节点最优分布B样条的火箭弹开舱点时间估算方法