汽车开发主截面分析中的CATIA二次开发技术

2017-05-30 10:48
时代汽车 2017年17期

摘 要:基于CATIA Automation技术,对汽车开发中的主截面分析进行二次开发, 自动获取截面上对应的各个零的属性,统一各截面格式,方便查询和比较。

关键词:CATIA:VBA;主截面

1 引言

CATIA软件在汽车开发过程中广泛采用,随着CATIA软件应用领域的日益普及,用户对软件的功能和性能的要求不断提高。为增加用户对软件个性化的服务要求,CATIA提供了开放接口,便用用户进行二次开发。CATIA二次开发主要有两种方式,一种是CAA C++,另一種是CAA Automation。其中CAA C++需要安装CATIA RADE模块,并单独授权,用户在VC++编程环境下完成与CATIA通信,需要专业的编程知识。

Automation是建立在com基础上,可以通过Windows系统白带的VBA技术完成和CATIA之间的信息处理,并不需要额外的软件授权和专业的编程技巧。例如可以建立Excel表格和Catia之间的关系,将Excel中的参数数值传递到CATIA零件中,作为驱动参数。但是利用CAA Automation对CATIA进行二次开发会受到一些限制,不能实现一些高级或者个性功能。比如:对CATIA中Option的部分设置,利用Automation就不能对其进行完全控制。

主截面技术是车型开发过程中进行技术分析的重要手段,用于保证在关键位置的功能和尺寸。在项目早期阶段,主截面的结构、尺寸、连接方式是进行工程分析的基础和依据,也是对造型评价的主要手段。主截面用来表达车身钣金、内饰件以及各种安装零件或者零件特征在特定位置和方向上的尺寸大小、结构形式和连接方法。主截面的运用主要体现在以下方面:一是表达特定位置上的尺寸、结构和连接方式;二是典型断面在整车中的位置以及同其他典型断面的关系;三是不同车型之间的主截面对比、参考,为开发车型提供依据。各主机厂都根据自己的需求建立了一些列的主截面(比如通过整车原点Y平面,通过驾驶员R点位置的Y向截面等等),并对对这些主截面按照既定的规则进行统一命名,以备查询和比较。在整个开发过程中严格控制各个主截面,以确保开发目标。

在很多情况下需要对主截面进行更改和优化,这同时会涉及到很多不同位置的关联主截面。因此,在对各个主截面上涉及到的各个不同零件进行明确标示就显得尤为重要,确认某个零件在不同主截面上的更改方向或者不同位置主截面涉及到的更改零件。所以最为有效的方法是,在进行截面分析时,需要明确各个零件之间的关系,标示主截面上各零件的属性(比如:名称、材料、甚至模具方向等等)。

2 CATIA自身截面工具的缺陷

CATIA白带截面工具仅能进行简单的截面加工,不能对Product下不同零件进行区分,不能添加截面上涉及零件的属性(名称、材料等信息)。使用CATIA自身截面工具( Section)得到的结果在CATIA目录树上始终显示为一个Geometrical Set,如下图1所示。这对后续的加工、展示都造成影响。

所以,需要对CATIA进行二次开发,已达到我们的使用要求。以更加简洁、高效的方式,抓取相应主截面上的各零件信息,丰富主截面上的内容,以便让不同的人群随时都可以了解、确认主截面上的所有信息。

另外,一个全新车型的开发周期较长(4年左右),在这个时间段内需要对一个车型的开发状态进行持续的跟踪和优化。因此,在汽车主体尺寸确定完成以后,特定主截面的位置将保持不变。而CATIA自带截面工具并不能保证截面位置的唯一性,只能通过截面位置的坐标来确认。如果每次都是手工输入,将会带来很大的工作量,同时也不能避免错误的发生。因此,类似的输入或者信息尽量避免手工输入,转而通过程序或者在主截面文件中设置参数,然后控制参数传递,自动实现比较合理。

本文主要利用CATIA Automation完成相应主截面的二次开发,在主截面目录树上显示Product中的对应截面零件的截取结果和属性(主要是名称),并对截取的零件结果按照设置要求进行线性和颜色的优化。

3 主截面工具二次开发逻辑

3.1 定义截面位置和大小

在整车硬点确认完成以后,我们需要生成一系列的主截面文件,(比如通过YO的汽车中央平面,通过驾驶员R点位置的Y向截面等等)以控制或者检查整车尺寸以及其它要求。为了便于统一管理,并对这些主截面按照既定的规则进行统一命名,以备查询和比较。显然,为了确保各主截面定义具有可追溯性,采用参数定义不失为一个比较有效的办法。在主截面Part文件中,在目录树上添加一个几何集(Geometrical set),并命名为Schnittdefinition,这个几何集将作为主截面位置、大小的载体,并通过参数进行定义。

CATIA中截面工具需要通过14个参数进行定义。它们分别是定义截面所在平面X坐标的X/Y/Z分量,平面Y坐标的X/Y/Z分量,平面Z坐标的X/Y/Z分量,截面所在平面的原点坐标X/Y/Z,以及截面大小的控制参数,即截面的长度和高度。

从图1可以看出,CATIA白带截面工具在外观上显示为一个矩形。因此,在主截面目录树Schnittdefinition集合下,建立一个主截面所在的平面( Plane),并在这个平面上使用草图( Sketch)建立一个草图矩形,以表征截面的大小或者范围。这样,草图矩形的信息就将作为CATIA截面定义的信息,后续程序将自动获取。通过CATIA Automation中提供的命令GetAbsoluteAxisData获取平面草图上的坐标轴方向向量,通过Getpoint得到草图上矩形顶点的坐标信息,通过Length命令获取草图中矩形的长度和宽度。通道这样的一个矩形草图,我们就完全定义了我们所需主截面在Product中的位置,见图2。

3.2 对涉及到的零部件进行截面处理

为了加快运行速度,首选根据截面定义的位置和大小,对Product中的零件进行初步的筛选,过滤没在截面范围内的零件。在CATIA Automation中使用Clash.Compute进行逻辑判断,仅对截面位置的相关零件进行处理,自动排除不在此范围的零部件。然后,对涉及到的零件进行截面加工处理,调用CATIA Automation提供的Section工具,按照3.1中定义的截面信息,对涉及到的每个零件进行Section处理。

3.3 输出涉及到的零件截面

单独处理每个零件以后的截面以Section的形式保存在Product中,如图3所示。采用Section.Export命令,将完成的截面输出,并在后续批量处理这些Part文件。当然,我们在建立Product下各个零部件的时候,就需要按照一定的规则,对零部件的各种属性(比如:名称、材料等)进行详细、明确的定义,便于后续对这些信息进行传递。

3.4 对相应的输出结果进行优化处理(包括线性、颜色等等)

将每个文件截面的输出结果(Part文件)复制到我们之前定义的主截面目录树上的特定位置,并使用CATIA.selection.VisProperties输出的结果进行线性和颜色进行设置,优化显示效果。最终优化完成的主截面效果如下图4所示。

通过这样的手段和方式,我们可以对主截面上的零件进行很好的分类和标示,并提供给不同的人员使用。保证主截面位置上各零件信息的准确性、一致性,避免错误发生。

4 操作界面设计

VBA中也提供了窗体设置,为了简化操作,给终端用户提供简明的界面,并结合目前的具体使用情况,设计图示如下的窗体。只要用户在CATIA中开启了所需要的Product和Part文件,相应的文件就会自动加载在图示的分类框中。

终端用户只需要选择需要的截面,设置目录树上放置截面结果的Geometrical Set名称,选择我们希望的线型颜色和线型宽度,等待计算机进行处理。系统相应的提示信息完成以后,主截面的加工便完成。然后根据需要,对相应的主截面进行有目的的进一步加工。

5 结论及探讨

利用CATIA Automation完成了Product中各零部件信息的提取,并体现在主截面中,达到形式统一、共享。

CATIA提供了VB下的白动化接口,我们根據需要,开发各种不同的专项工具,提高工作效率。使用CATIA Automation进行相关的二次开发,并不需要特别专业的软件知识。当然,也可以利用VC/C++开发更为专业的工具,同时优化其中的算法,提高运行速度。