闻达,李梦楠
1.一汽-大众汽车有限公司 长春 130000
2.吉林省产品质量监督检验院 长春 130000
知识工程的概念和技术由美国斯坦福大学计算机科学系费根鲍姆教授于1977年第五届国际人工智能联合大会上第一次提出,最基本的含义就是人工智能在知识信息处理方面的发展,利用计算机系统,采用“规则”的形式,完成知识的采集、整理、构造、维护和应用的工作。二次开发是以工程软件为载体,对其功能进行定制开发,以满足用户的特定需求,对于提高设计效率与质量具有重要作用。
作为领先的CAD/CAE/CAM一体化软件,Catia被广泛应用于航空航天、汽车、造船及电子电器等行业。Catia的通用模块虽然适用于各种产品的设计需求,但也存在着针对性不强、难以应对不同用户在技术标准方面的差异及不便于进行标准化设计的短板。知识工程和二次开发技术能很好地解决这些问题,在提高Catia的专业性及应用效率,充分发挥软件的使用效益方面具有十分重要的意义。
在汽车开发流程的不同节点,需要通过试制各类实体模型对造型数据进行检查确认[1]。试制模型通常由骨架和外覆盖件组成,骨架作为内部核心和装配本体,通过支撑装载内外饰树脂样件来真实体现造型表面的数据状态。模型骨架一般由方钢焊接而成,表面覆盖安装钢板,如图1所示。
图1 数据控制模型方钢骨架
模型骨架虽然结构复杂,但具有规律性,不同车型的模型骨架设计原理基本一致,区别主要在于全周尺寸的变化,方钢型号及具体排列不同,安装钢板的尺寸形状及分布位置差异。因此,可根据骨架自身结构特点,利用知识工程和二次开发技术定制开发专业的特征插件及设计模板,优化骨架的设计方式。
模型骨架的主体结构由方钢搭建而成,可以考虑将方钢作为基础元素,通过指定边界条件将特定规格的方钢插入到需要的位置,并预留输入接口,方钢规格及与边界条件的距离参数可调。通过不断调用特征插件插入方钢,最终完成骨架主体的创建,不需要额外建模设计。基于此种理念,可以使用产品知识模块(PKT)开发参数化的方钢特征模板。
首先,分析方钢结构特点及边界条件。方钢的截面为矩形,包括长宽边,且自身有一定的壁厚,这三个尺寸决定了方钢的具体规格,设为可调参数。其次,如果想通过一些边界条件把方钢直接插入到某个特定位置,可以归纳出很多种组合。比如“前后左下”“前后右下”“前后左右下”“前后左右上”等。虽然边界条件的设置很灵活,但是确定边界条件的原则要基于正常的设计逻辑和设计习惯,只有符合要求的边界条件才是最优的,是最便于调取使用特征模板的。
此处,选择“前后左下”作为边界条件,且方钢与四个边界的距离均设为可调参数,默认状态下数值为0。调整接口的设置就是为了实现参数化设计,带参数设计可以对方钢特征进行快速调整,通过参数值的变化自动改变方钢规格、长度及位置,实现实时更新,不需要人为介入手动修改。
特征模板包括超级副本、用户特征和文档模板三种形式。这里以超级副本为例,最终的形式如图2所示。
图2 方钢特征超级副本
模型骨架的安装钢板等其他元素也可以通过类似方式创建特征模板,这里不再赘述。最终,可以将组成骨架的基础元素的特征模板集成到目录浏览器中,就构成了特征插件,如图3所示。
图3 方钢骨架特征插件
分析骨架整体结构,根据骨架全周边界设计一系列参考平面,作为方钢插入的定位条件,如图4所示。
图4 骨架边界参考曲面
同时,为了保证单一边界调整时,其他边界不会随动,参考平面彼此间要相互独立(可以统一以绝对坐标系作为偏移基础),正常状态下互不影响。参考平面的偏移值通过公式定义为调整参数,对于左右对称的平面,可将右侧参数直接绑定左侧参数,以左侧参数为统一输入接口,如图5所示。
图5 骨架边界参数及公式定义
将参考平面作为定位条件依次插入方钢特征,逐步搭建出主体框架,如图6所示。完成后,即可通过“骨架边界参数”实现对全周尺寸进行驱动调节。主体框架作为基础结构,针对具体模型,需要在局部区域增加或删减方钢特征。应该注意的是,不论是基础框架还是后期追加的方钢,在插入时要尽量选择参考平面作为边界条件,目的就是为了在细节设计阶段,涉及到去除不需要的方钢时,不会造成连锁反应,影响到其他方钢的现有位置,造成骨架结构变化。
(一)互联网时代下的大数据发展是一个漫长的过程,即便数据已渗透于各个行业中,但人们还未能正确的认识到新事物的发展状态。以致于数据并不能充分的实现其价值。总而言之,人们对大数据现有的认知还存在一些误区,专业知识还较匮乏,认识过于碎片化,还无法使其适应新时期的种种要求。
图6 方钢骨架主体框架
前文已经提到,为了消除彼此间的影响,参考平面要相互独立。但这种做法也带来了一些问题,如果对模板不了解或者无意间输入了不合理参数(例如,当前端平面的参数值大于后端平面时),骨架无法更新,设计模板会直接报错甚至瘫痪。这点对于新手或者初次使用者来说是很不友好的,因为不了解模板的创建思路,也就很难排查报错原因。所以,需要对各个参考平面的参数设置一系列规则、约束,通过程序控制来限制参数的不合理输入。这时,就可以使用知识工程顾问模块(KWA)来达到以上目的。以下是一个规则控制的应用举例。
正常状态下,“前端左边界”参数是小于“左边界”参数的,可以制定这样一个规则:当错误输入时,设计模板会自动识别并通过既定程序输出一个修复结果,避免报错,同时向使用者提示相关错误信息,而且在错误更正之前,提示会一直出现。程序语句示例如下:
在前面两个边界的基础上,再考虑第三个边界——“中部左边界”。正常状态下,“前端左边界”“左边界”“中部左边界”三者的关系为“‘前端左边界’<‘左边界’<‘中部左边界’”,当输入的“前端左边界”大于最外侧的“中部左边界”时,经过内部程序计算,更新后的效果如图7所示。
图7 方程骨架边界的规则控制
应该注意的是,此时设计模板虽然可以继续正常使用,但实际生成的是一个修复后的结果,此时 “前端左边界”与“左边界”显示的参数与实际绑定的参考平面偏移值并不一致,通过程序的纠错功能,将参考平面的偏移值强行定义成了可供调整的正确范围内的极限值。如图7所示,由“前端左边界”和“左边界”定位的方钢与最外层的方钢(由“中部左边界”定位)紧紧贴合在了一起。
以上程序示例只是最基本的条件语句,事实上,由于骨架结构复杂,参考平面众多,为了实现精细稳定控制,参考平面不仅要考虑平行方向上的制约关系,还要同时考虑另外两个垂直方向上的限制要求。因此,控制程序需要大量的多层条件语句的嵌套,涉及到许多基础方钢特征的激活和取消,理清其中的逻辑关系非常关键。
Catia的二次开发主要包括两种方式,Automation API和CAA C++。Automation API是使用自动化应用接口的宏,应用VB Script作为编辑工具,是一种交互式的定制。该方式不仅可以录制宏,记录用户的操作过程,自动生成代码,也可以使用Visual Basic语言自主编写程序。Automation API具备了与任何OLE所兼容的平台进行通信的能力。CAA C++是基于组件的定制开发,具有强大的交互、集成和用户特征定义的功能,可以做精致的交互命令,并拥有一套自己的体系架构。本文主要介绍基于Automation API方式的骨架设计模板交互界面的开发。
通过知识工程技术的应用,方钢骨架设计模板已经具备了完整的参数化设计功能,通过参数修改、基础元素的调用和规则程序的控制,即可快速生成满足要求的骨架结构。但是在应用的过程中,由于边界参数众多(就本文所述设计模板来说,就有20多个),且只是简单地罗列在结构树上,设计者必须清楚地知道参数与参考平面的对应关系,这点对于新手或初用者来说需要花时间了解。同时,在自动更新的条件下,每次只能修改一个参数,不能实现多参数联合调整。所以,设计模板的实际操作体验欠佳,缺少对边界参数的集成和指引。一个很好的解决办法,就是通过二次开发为骨架模板定制一个清晰直观的人机交互界面。
人机交互界面要实现两个目标:一是将所有边界参数集成到一个界面上,提供指示说明并支持同时修改;二是在界面窗口打开时,通过初始化程序自动读取骨架模板结构树上对应的边界参数值。另外,如若界面中某些参数被修改并最终执行,结构树上的参数值也要自动更新,也就是说,界面窗口的参数值与结构树上的参数值要始终保持一致。虽然推荐使用交互界面,但不排除个别使用者偶尔会直接修改结构树参数。只有结构树参数值和界面参数值一一对应,才不会在二者存在交叉修改的情况下,产生参数错乱,导致骨架出现意料之外的结构变化。
骨架设计模板的人机交互界面如图8所示。其中,“确定”按钮是指在完成参数修改后,点击可驱动骨架自动更新;“还原”按钮是指如若输入错误或者对修改后的参数不满意,可点击恢复到初始数值;“取消”按钮的功能是取消本次操作并关闭窗口,参数未做任何改动。
图8 骨架设计模板人机交互界面
关于程序语句的编写,以“确定”按钮为例,推荐一个比较简单的形式,代码示例如下:
对于其他功能,包括初始化程序、“还原”按钮、“取消”按钮及参数框的格式要求(只能为数字且不能为空)等都可以通过代码控制。其中,初始化程序和“还原”功能的代码大部分相同,只是调用的函数不同,篇幅所限,这里不过多叙述。
应用Automation API方式,基于Catia内置的VB环境编写程序,开发直观友好的人机交互界面,不仅可以大大提升骨架模板应用的体验感,给设计带来便利,同时提高模板的使用效率,初用者也可以直接上手。对Catia的二次开发可以定向满足设计者需求,配合知识工程技术充分发挥软件的使用效益。
知识工程与二次开发技术是提升Catia用户化和专业化的有效手段,可以定向匹配不同领域、不同用户的设计需求和使用习惯。在熟练掌握Catia软件功能的前提下,结合自身实际需要,为典型产品开发参数化的设计模板、特征插件和人机交互界面,既是对现有知识资源的梳理总结,也有助于规范设计流程,简化设计工作,对提高设计质量和效率具有重要意义。在实际工作中,设计者要善于识别同类产品的内在联系,找到其中规律,将产品自身的典型结构进行模块化分解,创建个性化的特征插件和设计模板。同时,也要充分利用Catia提供的二次开发接口和开放式的内部命令集合,完善设计模板的功能,让其在使用过程中更人性化,更好地为用户服务。