摘要:介绍了Inventor iLogic在机械产品设计中的应用,利用iLogic规则驱动和编写程序的方法实现产品模型的快速设计。结合VB.NET面向对象的功能编写交互界面,进行数据计算,并且结合实例介绍了整个设计流程。
关键词关键词:Inventor iLogic;规则驱动;模型设计;快速设计 DOIDOI:10.11907/rjdk.162861
中图分类号:TP301
文献标识码:A文章编号文章编号:16727800(2017)005001103
0 引言 随着我国经济的快速发展,现代制造业获得了巨大进步,一系列复杂而严峻的考验也随之而来。制造商们面临着如何满足客户的多样化需求、如何有效控制产品质量和成本,以及如何合理利用资源、减少重复工作等亟待解决的难题。尤其是对于类似产品的设计,在已有的产品设计平台上创建能够满足不同客户多样化产品需求的设计方法迫在眉睫。随着三维设计软件功能的日益强大,产品设计已经进入可视化、可编程的智能设计阶段,在已有的产品模型基础上通过对其进行参数化设计,将模型中的定量尺寸变量化,使之成为可以任意修改的参数,再利用尺寸驱动的方法,结合可视化交互界面,可达到快速生成模型的目的。目前,各种计算机辅助设计软件如UG、SolidWorks、ProE、Inventor等都可以对模型进行参数化设计。Inventor是Autodesk公司研发的一款三维设计软件,其内嵌的iLogic模块可以通过编写规则驱动模型的参数和属性,从而实现模型的快速设计。 1Inventor iLogic概述
1.1 Inventor iLogic 介绍 Inventor软件的功能和数据结构具有明显的“设计支持”的特点,起初在设计意图表达、设计数据关联和设计决策支持3个方面,Inventor并没有能够提供一种可靠完善的解决方案,对于产品研发中诸如设计重用等功能需求也没有很好的解决途径,直到Inventor iLogic 的到来令Inventor软件的设计功能得到了极大提高。iLogic是由Autodesk于2008年从Logimetrix公司收购的,起初作为外部插件使用,在Inventor软件更新到2011版本时被正式列入软件, 成为Inventor中的一个模块。“iLogic”的“i”代表智能,“logic”代表逻辑,这些都体现在设计过程中对于模型的一些手动操作,可以由iLogic自动完成。iLogic主要通过编写规则,调用自身函数功能进行逻辑判断,执行相应操作。这种设计方法称为规则驱动设计(RDD,Rules Driven Design),它是iLogic事务处理的主要手段,是设计构思片段的一种程序表达,这些规则的运行能够改变模型参数,减少重复的修改操作。
1.2 iLogic与VB.NET结合 VB.NET语言功能强大,简单易懂,继承了Visual Basic 语言的特点,并且VB.NET是一种面向对象的语言,许多三维造型软件例如SolidWorks、ProE等都提供了VB.NET二次开发的API接口。此外,VB.NET可以在Visual Studio 集成開发平台上,借助其强大的编辑和调试功能,使开发过程更加简捷、方便。iLogic可以与VB.NET结合,利用其面向对象的技术完成自定义界面的创建,包括复杂计算和函数创建都可以封装,从而被iLogic调用。这样可以充分发挥两者优势,将计算、界面和模型连接起来,简化繁杂的步骤,提高设计效率。具体作用过程为将模型中的参数传递给交互界面,通过自定义计算将结果传递给对应的参数,利用计算所得的参数数据驱动模型,达到快速改变模型尺寸的目的。
2 设计模式与基本原理 Inventor iLogic具有两种设计模式,其本质都是利用iLogic读写Excel表格和自动更新模型的功能,实现产品的快速改型,提高开发效率。第一种是简单的并行设计,在产品设计过程中,如果需要用到参数传递,可以先把数据之间的关系写入Excel表格。等到产品装配完成,再利用iLogic编写相应规则并运行,从而实现数据的传递与模型自动更新。另一种模式则是利用数据驱动工程图的模式,不同于一般从数据到三维模型再到工程图的设计流程,数据驱动工程图能够建立数据与工程图的直接联系,利用iLogic自动完成打开模型、获取最新数据、更新模型和更新工程图这一系列动作。 Inventor iLogic设计原理非常简单,主要体现在设计过程中对于模型参数、特征、属性等信息逻辑上的处理。编写规则时对字符串数据类型进行对比判断,对数值类型数据进行大小判断,对布尔型数据进行是非判断,再根据判断结果,完善规则的编写。iLogic的所有功能都是调用自身的函数实现的,不同于SolidWorks、ProE以及Inventor自身用于二次开发的API函数的复杂难懂,iLogic模块提供的函数和代码简单易学,想要实现什么功能,以及如何编写代码段实现,具有怎样的语法规则,iLogic在规则编辑器的函数区域都已一一列出。所以使用Inventor iLogic进行参数化设计,其本质就是要了解并掌握其提供的函数及编程规则。
3 设计实例 3.1 设计思路 本文以SC型气缸(见图1)的快速生成设计为例,详细介绍利用iLogic规则驱动模型的整个过程。建模分为3个部分,分别为气缸缸体部分、活塞部分和活塞杆体上的螺母部分,属于两层装配关系(见图2)。对于零件模型,在建模之前可以先分析每个部分涉及的建模参数,例如气缸直径、行程以及缸体宽度等,总结相关参数并建立自己的命名规则。建立命名规则时,应当注意变量名称不能与Inventor中的单位类型相冲突。 在建立模型时,Inventor参数编辑器会自动记录每个特征用到的参数(见图3),可以对参数名称进行修改,与之前总结的参数名称相对应。除自动记录的模型参数外,还可以自定义用户参数,例如气缸缸体上的“孔1”特征可以通过自定义文本参数“孔1规格”的方法进行驱动修改。创建总装配体时,Inventor iLogic可以通过创建零件之间的关联达到改变零件尺寸时部件也随之变化的协同设计,这种通过关联尺寸改变部件尺寸的方法大大节省了时间,提高了效率。装配时,首先放置各零件模型,添加约束和定位,然后添加用户参数,定义关键参数,使用iLogic语句实现参数相互传递的过程。以下是将零部件定义的尺寸参数相互关联的部分代码: Parameter(“缸体部分:1” “V1”) = Parameter(“活塞部分:1” “d1”) Parameter(“活塞部分:1” “d1”) = Parameter(“螺母部分:1” “d2”) 这样即可将零件之间的尺寸相互关联,改变一个零件尺寸,与之相关的另一个零件尺寸也会随之改变,重新生成所需要的模型。将模型参数和用户参数定义完毕之后,可以建立一些iLogic规则,例如赋予模型不同材料特性,完善iproperty中的各项特性等。
3.2 自定义用户界面 利用VB.NET搭建交互界面,首先定义公共变量,变量名称要与之前定义的fx参数表中的参数名称一致,部分代码如下: 因为建立模型时所用到的尺寸参数与根据标准录入Excel表格内的参数并不是完全对应,Excel表格所有的型号尺寸都是按照国家标准录入,但建模时所用的部分驱动尺寸是由标准尺寸计算所得,所以要总结并列出所有一级尺寸和二级尺寸之间的运算关系,将计算公式编入程序。当输入一级尺寸数值时,利用后台自动运算,可以获得所需的二级参数值。编写好的界面如图4所示。用户可以自定义模型各参数尺寸,也可以选择标准型号,将Excel表格中的数据(见图5)自动加载到文本框中。为避免用户输入尺寸时超出规定范围,还可以在程序里加入一些判断语句,限定尺寸界限,以避免不合理的计算和驱动过程。 If L<25 Or L>1000 Then MessageBox.Show(“气缸的行程超出了合理范围,请重新输入尺寸!”) 编写好相关赋值和计算代码后,运行程序会产生一个.dll文件,将文件放置到三维模型的目录下可将文件加载到Inventor中。同名参数会自动一一对应,用户也可以在此基础上添加规则,实现一些其它的附加功能。运行规则,编写好的界面会自动加载,输入相应参数,即可对模型进行驱动。
3.3 运行结果 界面上的参数与fx参数表里定义的用户参数对应,通过输入自定义尺寸驱动生成的气缸模型如图6所示。 3.4 工程图生成 在建模的同时生成模型的工程图模板,每次驱动模型,工程图也会随之更新。为了完善模型工程图,可以对模型iproperty进行设置,自动生成各零件模型的名称、规格、材料和颜色等特性。此外,对于工程的各种操作也可以利用iLogic函数实现,比如放置各视图的位置、图幅大小的控制、标题栏的完善等。iLogic还支持将工程图导出,转化为AutoCAD DWG以及PDF等常用的文件格式。
4 结语 本文主要介绍了如何利用Inventor iLogic模块的功能实现模型的参数化设计,并且通过实例论述了整个开发过程,利用iLogic和VB.NET相结合的方法创建了良好的交互界面,实现了产品模型快速设计的目的。由此可见,Inventor结合iLogic在模型设计方面能够将其设计重用的能力提高到一个新水平,利用Inventor iLogic能够将模型数据融入各个规则,代替原来手动操作的过程,实现更高效、便捷的模型改型设计。而Inventor涵盖的零件、部件、工程图文档类型及其支持对零件参数、模型材料外观等一系列功能的控制可使其对于产品的改型设计更加全面、便利。另外,利用VB.NET强大的面向对象功能来完善整个设计过程中的界面设计和复杂的计算过程,使交互过程更加方便、直观,极大地提高了工作效率。随着Inventor iLogic技术的日益完善,用户关联设计和自动化设计的能力也不断提高,利用编写好的規则和程序代替重复的手动操作,对于各类机械产品的设计具有重要意义。 |