基于多软件交互控制的专用车参数化设计研究
2021-08-13伍丽娜陈韬张凯王维
伍丽娜,陈韬,张凯,王维
(1. 中汽研汽车检验中心(武汉)有限公司,湖北 武汉 430056; 2. 中国汽车技术研究中心有限公司,天津 300300)
0 引言
专用汽车以二类底盘改装为基础,加装专用的上装装置,用以实现专用作业功能,广泛应用在环保、运输、路面养护等国民建设领域。近年来,现代制造技术、信息技术迅速发展,专用汽车市场竞争环境发生改变,逐渐由预测型生产向订单式生产转变[1],产品需求个性化和多样化更加明显,以买方作为市场主导的专用汽车市场呈现出产品更新换代快、用户需求动态多变等特点,对专用汽车产品研发能力提出了更高的要求。针对这一情况,选择合适的设计和制造方式尤为重要。目前,国内专用汽车行业产品开发仍停留在传统的三维设计阶段,面对动态多样的个性化产品需求,重复性设计、设计参数混乱等缺陷无形中延长了产品开发周期、增加了生产制造成本。因此,专用汽车设计开发方式需要向数字化方向发展,利用有限的设计资源,为市场提供多样化和标准化的产品,以满足多变的市场需求。
专用车是大多数功能相同的系列化产品,其上装结构具有相同或相似的外形特征,只是根据底盘参数不同,其尺寸规格有所不同。因此,专用车设计开发符合参数化、系列化设计理念,参数化设计可以使产品的设计和管理变得相对轻松,在节约产品设计时间和成本同时,大大缩短产品开发周期。目前,面对大规模定制化产品需求,国内诸多学者多数采用编程软件+数据库+三维软件的技术方案,采用程序驱动法或者尺寸驱动法进行机械产品的参数化设计,如:秦锋等[2]借助于VB(visual)软件,进行SW(SolidWorks)二次开发,实现对胶辊砻谷机主要零件进行参数化设计;欧长劲等[3]基于SW相关API(application program inter face)研究智能以及参数化设计,开发出某扳手喷雾器各零部件的参数化建模和智能装配的插件。此类文献中所提出的参数化设计方法不仅需要较强的逻辑编程能力,而且需要将建模逻辑完整记录,工作量很大,并不适用于普通的机械产品设计人员。
本文基于对SW软件API接口相关属性及方法研究,借助多软件交互控制方式,通过对专用车上装结构进行模拟拆解分析,以全局变量代替尺寸参数,采用方程式建模方式,将模型中的约束信息变量化,提出一种适用于专用车上装的参数化设计开发方法。
1 参数化设计思路
通过对专用车上装结构的模拟拆解分析,发现功能相同的专用车上装结构具有一定的拓扑关系,仅因整车总质量不同而有所差异,因此,专用车上装结构具备可模块化设计的特点。针对专用车上装结构的特殊性,本文提出适用于专用车上装开发的参数化设计方法,在对产品上装模块化划分、关键参数提取的基础上,利用多软件相互交互的方法,在产品开发阶段采用驱动及修改方程式或全局变量的方式进行专用车上装参数化设计开发。参数化设计思路具体如图1所示,主要包括五大部分内容:1)借助SW相关API接口属性和方法,编写代码将VS(visual studio)与SW建立连接;2)利用SQL数据库对象属性,建立VS与Access数据连接;3)在SW中采用方程式与全局变量的建模方式,建立专用车上装结构模块参数化模型模板文件;4)通过VS将全局变量与Access数据互联;5)VS连接Access修改全局变量参数,通过SW相关API接口属性及方法更新SW模型完成参数化设计。
图1 参数化设计流程
1)VS与SW连接
在利用编程软件对SW进行二次开发的过程中,通常采用COM(组建对象模型)或者OLE(对象链接与嵌入)技术,本文采用基于OLE的自动化开发技术,开发用户程序作为一个独立的应用程序,通过API接口调用SW建模软件,完成编程软件对SW软件的控制和操作[4]。
SW具有大量的API对象函数,为二次开发提供支持OLE和COM编程的开发平台,SW二次开发过程,其本质就是调用相关API对象的过程,通过对这些对象属性的设置和方法的调用,借助相关的编程软件实现与SW进行交互控制,完成参数化设计[5]。SW二次开发原理如图2所示。
图2 二次开发原理
2)数据库读取技术
参数化设计过程需要根据底盘以及整车参数的不同,合理地选取上装结构关键参数。程序需要处理大量的数据,涉及到数据的存储、读取、写入等过程,因此,选择合适的数据库存储方式尤为重要。目前,普遍采用的数据存储软件有Excel、Access等,本文采用Access软件作为后台数据库存储软件,在Visual Studio中利用VB.NET编程语言,采用SQL数据库连接对象,以离线式查询方式创建三个对象:连接OleDbConnection、适配器OleDbDataAdapter、数据集DataSet,通过相关控件和ODBC代码访问Access数据库。数据库查询过程如图3所示。
图3 Access数据库查询过程
3)参数化建模方法
参数化设计一般是指设计不变的图形拓扑关系,而外部结构由一组参数进行约束,通过改变约束参数尺寸驱动产生不同结构形式,进而设计出标准化、系列化的产品。
目前,参数化建模通常有两种常用方法:一种是程序驱动,是指完全依靠代码来驱动三维建模软件实现参数化建模;另一种是尺寸驱动,是指在保证模块结构不变的前提下,将模块模型的尺寸标注定为变量,通过赋予不同的尺寸值,获得一系列结构相同但尺寸有所差异的系列化模块。目前,普遍采用的尺寸驱动方法是指利用程序代码连接尺寸数据库,通过逻辑外置的方式,改变主参数驱动三维建模软件实现参数化建模[6]。
专用车上装部件产品配置相对较少并且模型特征复杂,各模块特征参数之间存在明显的关联性。因此,本文提出一种新颖的尺寸驱动方式,采用自顶而下的方式建立专用车上装结构模块三维模型模板文件,根据产品特征参数与其各子模块特征之间的映射关系,搭建各尺寸方程式并将关联参数设置成全局变量,通过程序驱动及修改方程式全局变量的方式实现各模块参数化模型。
2 参数化设计实例
本文以自卸车模块作为设计开发实例进行分析,在VS中搭建人机交互界面,以Access作为数据存储软件,建立自卸车关键参数列表及部件结构清单。采用自顶而下的建模方式,利用方程式和全局变量建立三维实体模板文件,编写代码将VS与Access、SW建立连接,将VS程序读取的Access数据库中数值作为输入值修改模板模型中的方程式或者全局变量的值,实现自卸车上装系列化设计的目的。
1)建立关键参数数据库
通过对自卸车上装结构进行模拟拆解分析,以25t自卸车上装结构作为研究对象,将自卸车上装划分成五大子功能模块,分别为前板总成、侧板总成、底板总成、后门总成、副车架总成。再对各子功能模块进行细分拆解,提取各子功能模块关键驱动参数,建立产品特征参数与子功能模块关键驱动参数之间的映射关系,在Access中建立关键参数、尺寸参数列表以及自卸车部件结构清单。具体如表1-表3所示。
表1 自卸车子模块部件清单
表2 自卸车启动参数列表
表3 自卸车尺寸参数列表
2)建立参数化模板模型
基于方程式建模方式,在SW中建立自卸车模块。在模型模板建立过程中,通过分析产品模块与各子功能模块之间的映射关系,设定关键设计参数作为全局变量参数,建立子功能模块部件特征尺寸参数与自卸车上装参数之间的方程式关系。在自卸车上装模块中,关键设计参数为车厢长度、车厢高度、车厢宽度、大梁宽度、底板厚度、副车架长度。其中,车厢高度参数作为全局变量参数限定自卸车车厢侧板总成模块、前板总成模块、底板总成模块中高度方向尺寸参数;车厢宽度参数作为全局变量限定自卸车车厢底板总成模块、前板总成模块、后门总成模块宽度方向尺寸参数;车厢长度模块作为全局变量限定底板总成模块、侧板总成模块、副车架总成模块长度方向尺寸参数;底板厚度作为全局变量限定底板模块厚度方向的尺寸参数;大梁宽度作为全局变量限定副车架模块纵梁之间距离的尺寸参数;副车架长度参数用于限定副车架模块长度方向尺寸参数。在全局变量参数与子功能模块特征尺寸之间搭建方程式,完成模型模板文件的创建。自卸车副车架模板模型及方程式如图4、图5所示。
图4 自卸车副车架模型模板
图5 副车架模块方程式
3)程序运行结果
基于Access自卸车关键参数尺寸以及部件数据库,在VS中利用VB.NET程序汇编语言,采用SQL数据库连接对象读取Access数据库中自卸车关键尺寸参数,通过改变SW中自卸车上装模板模型,实现自卸车副车架参数化设计。实例运行后可视化人机交互界面如图6、图7所示,设计者只需通过选取关键参数数值,就可以一键生成用户所需要的上装模型。
图6 系统运行界面一
图7 系统运行界面二
设计参数选择关键代码如下:
adpt22=NewOleDb.OleDbDataAdapter(zxfcj, cnn)
DataGridView4.Columns(DataGridView4.CurrentCell.ColumnIndex).HeaderText="尺寸参数"
dc=DataGridView4.Rows(1).Cells(2)
dc.DisplayStyle=DataGridViewComboBoxDisplayStyle.ComboBox
模型重构设计关键代码如下:zz=DataGridView4.Rows(0).Cells(2).Value
PART=SWAPP.OpenDoc6("F:projectFCJ.SLDPRT",swDocumentTypes_e.swDocPART,swOpenDocOptions_e.swOpenDocOptions_LoadModel,"",Errors:=0, Warnings:=0)
A(i)=sweq.Equation(i).Substring(sweq.Equation(i).IndexOf("=")+1,sweq.Equation(i).Length - sweq.Equation(i).IndexOf("=")-1)
sweq.Add2(ii, """纵梁长""=" & zz, True)
3 结语
本文采用多软件交互控制的方式,利用编程软件驱动或修改模板模型方程式或全局变量的方式,搭建专用车上装参数化设计系统,实际运行结果证明,所提出的参数化设计开发思路,操作简单,且完全适用于专用车上装结构系列化设计。整个系统的运行极大提高了设计人员的工作效率,在节约产品设计时间和成本同时,缩短了产品开发周期,提高了专用车企业市场响应速度,同时推动了专用车行业车型标准化发展进程。