APP下载

基于UG二次开发的GRIP标准件库制作系统研究

2021-06-01潘泓谊刘淑梅毛欣然

现代制造技术与装备 2021年4期
关键词:代码生成标准件内腔

潘泓谊 刘淑梅 毛欣然

(上海工程技术大学 材料工程学院,上海 201620)

标准件库在产品成体系的企业中有着非常广泛应用。然而,UG部件族标准件库和UG/Open API开发标准件库都存在兼容性问题,且后者的开发成本高,入门困难,给标准件库的开发造成了一定困难。

课题组以UG系统为基础,重点阐述UG高通用性标准库制作程序二次开发的关键思路,实现了面向模型的标准化实体及特征编译方式,并设计了基于UG/Open GRIP的标准库代码生成系统流程,为标准件库的建立提供了一个高效和实用的方案。

1 系统构成

1.1 系统逻辑

零件建模一般需要先阅读并抽象图中的几何元素,后通过实体特征建立外形、内腔和孔洞,将外形实体减去内腔和孔洞,并对最终实体进行细节的修饰,从而得到完整的零件建模。简而言之,零件建模就是通过人工识别图纸中的各个零件特征,在外形实体的基础上逐个添加特征,最后得到需要的零件。用户将图纸中几何特征通过几何体拟合后归类为外形族,将实体内腔和孔洞拟合后归为内腔族。系统自动将外形族减去内腔族便可以得到要求的体。根据标准件库和标准件的总分关系,可以将系统编译功能以代码属性分为单个零件的GRIP代码和在单个零件数据基础上生成的标准件库GRIP代码两大类[1]。每个类别的编译功能下,以用户在软件中主要操作类别设计对应的功能、对应功能族实体的定义和赋值、封装实体信息并编译为对应代码。

1.2 程序设计

结合标准件库的操作界面和零件建模流程,可以得出图1中的GRIP标准件库系统的程序框架。用户只需给对应功能族实体定义和赋值并给出代码生成请求,即可生成GRIP语言的标准件库。

图1 系统框架图

系统在Microsoft Visual Studio 2010(以下简称VS2010)环境下开发,为4层体系,包括用户层、应用层、数据层及驱动层。用户层是软件的交互界面,用户通过可视化界面调用系统的各功能选项完成交互动作。应用层主要由标准件参数化建模和GRIP代码生成器两个功能模块组成。标准件参数化建模模块下的各模块负责图形界面对应族实体的生成和属性赋值[2]。GRIP代码生成模块对用户对应生成的对应实体和赋值进行GRIP语言的编译和合成。数据层为系统缓存,由用户赋值数据和代码缓存组成。系统通过读取各项数据得到所需的参数,最终生成图形界面对应族实体及GRIP代码缓存[3]。各功能模块通过对数据缓存进行读写完成数据交互。驱动层是在VS2010及UG/Open GRIP环境下对程序进行编译,完成相关的功能。通过UG/OpenAPI函数及GRIP语言函数,从后台调用UG系统的各项功能,完成对参数化建模和标准件库的快速建立。

2 标准件库参数化建立

2.1 设计流程

系统根据用户设计结果生成标准件和标准件库代码,流程如图2所示。单个标准件代码由参数化建模模块生成。模块涵盖了大部分拟合实体及相同的内腔和孔洞拟合实体。模块程序对用户设定的外形族和内腔族拟合实体进行创建和涂色,并对创建实体的形状、尺寸、位置数据进行记录,保存至单个零件实体代码缓存中。通过单个标准件GRIP代码生成模块对功能族数据运算,从而得到单个标准件GRIP代码和符合系统标准的标准件代码缓存。标准件库代码框架生成模块读取标准件代码缓存集合及标准件和标准件库名称,生成能被UG/Open GRIP编译器编译成程序的GRIP代码。

图2 GRIP标准库建立流程

2.2 系统框架

2.2.1 参数化建模方法

通过UG/Open API从外部驱动UG完成建模和创建GRIP代码。以圆柱体特征为主的标准件创建和GRIP代码输出为例,说明参数化建模下如何生成显示实体和代码[4]。UF_MODL_create_cylinder函数能够在显示窗口创建圆柱体,其中高度、直径以及中轴线矢量具体数据通过功能的输入窗口获得。生成实体原点的坐标数据由UF_UI_point_construct点构造器获得。通过UF_OBJ_set_color涂色命令,将生成实体按照外形族或内腔族分类设置为绿色或红色。用户输入所有需要的数据后,系统自动创建已涂色实体。

2.2.2 标准件代码格式

在用户创建特定功能族实体的同时,需要选择创建实体的类型。例如,用户选择创建外形族圆柱体时,系统会自动将生成圆柱体的GRIP代码写入缓存。将外形族命名为cyc(n),n为实体个数,而后使用solcyl命令创建圆柱体,并按照代码格式填入原点、高度、半径以及矢量方向数据。数据由对话框和点构造器获得。内腔族格式相同,变量名不同。对应族实体代码缓存随用户创建对应实体叠加,而后所有外形族实体通过unite命令进行合并,再将合并后的外形族实体赋予cyc_unite(n)实体变量方便调用。将完整外形族实体通过subtra命令与缓存内内腔族实体进行求差,最后得到的标准件实体赋值给part(n)实体变量。需要说明的是,过程中的GRIP代码保存在系统缓存中。

2.2.3 标准件库代码生成

系统设计将GRIP标准库要素和程序整体架构设计相相合,构建具有一定格式的GRIP程序框架,将输入信息和零件缓存按照格式填入框架中,生成相应的GRIP标准件库程序。程序框架将GRIP标准件库程序分成3部分:一是以实体变量声明、主程序结束命令为主满足GRIP程序运行要求的框架命令;二是以弹出多个选项单选框命令为主的标准件库菜单命令;三是被菜单命令调用生成实体的工作命令。代码来源于系统中的生成单个标准件的代码缓存[5]。

GRIP标准件库基本运行方式:程序开头声明实体变量;单选框程序段中定义与零件对应选项以及相应跳转程序段,选择任意选项跳转指定位置;零件与程序段对应,程序段先从分别定义外形族和内腔族的实体类型、尺寸以及位置;声明完外形族和内腔族实体后,将所有外形族实体合并为一个实体并声明合并体;将合并体与内腔族实体依次求差,得到最后成品并声明;程序段最后加上跳转到结尾语句,以结束整个标准件库程序。

3 结语

本文在标准件库设计理论研究和UG二次开发的基础上,开发了一种能够快速生成基于GRIP语言的标准件库代码编译系统。根据具有普适性的参数建模逻辑和UG系统的特点,结合UG/Open API函数在VS2010开发环境下,使UG能够快速生成高通用性标准件库。系统弥补了标准件库开发版本通用性较差及成本较高的缺点,为今后相关建模软件的高通用性标准件库的设计制作提供了参考。

猜你喜欢

代码生成标准件内腔
标准件库的建立与应用
矩形脉动真空灭菌器内腔开裂原因
一种涡轮叶片内腔流量测量方法的实验研究
Lustre语言可信代码生成器研究进展
一种基于模型和模板融合的自动代码生成方法
一种橡胶制品的气密性检测装置
直径205五层共挤叠加机头
代码生成技术在软件开发中的应用
基于XML的代码自动生成工具
CATIA V5标准件库的创建与使用