基于CATIA二次开发的产品BOM属性自动提取

2014-11-09 刘圣 同济大学CAD研究中心

  该文介绍了CATIA三维设计软件及其二次开发接口中常用的重要对象及相关函数,针对了树形产品结构给出了常用的操作与处理方法,并利用相关对象和方法实现对产品文件的属性提取和BOM表统计生成程序。

  1、CATIA三维软件简介

  随着计算机辅助设计(CAD)技术的发展,三维辅助设计软件在产品设计领域的应用越来越广泛。CATIA全称Computer Aided Tri-dimensional Interface Application,是法国Dassault公司开发的一款CAD/CAM/CAE于一体的三维设计软件,广泛应用于机械设计、汽车、航空航天、船舶、电子等各种行业中。

  高度模块化的CATIA软件能够满足客户在产品开发活动中的需要,包括风格和草图设计、机械零件设计、装配设计、曲线曲面设计、工程图自动生成及产品分析和模拟。CATIA产品基于开放式可扩展的架构,其知识工程模块通过使企业能够重用产品设计知识,缩短开发周期,CATIA解决方案加快企业对市场的需求的反应。CATIA软件自V5版后从工作站平台移植到个人计算机,可以运行于Windows NT平台,极大地拓宽了其应用范围与使用的层面。

  2、CATIA二次开发简介

  成熟的CAD/CAM软件为了满足不同用户的在实际应用中的不同需求,便于用户构建适合自身产品开发的流程,以及自动化繁琐重复的设计步骤,一般都具有供用户进行二次开发的接口。CATIA提供多种方式的二次开发接口,以便用户能灵活地利用并重组CATIA已有的功能,获取CATIA文件及内部的数据,并与外部的信息管理系统或专业的PDM系统通信。

  3、CATIA二次开发中的关键对象

  CATIA提供的二次开发接口是一个COM服务器,利用VB中的对象作为客户端与CATIA进程进行进程间的通信,操作CATIA进程中的函数,访问其中的数据。而VB提供的一组具有相关关系的对象形成了一个抽象层,使得用户可以在不了解COM底层通信方式的情况下方便地对CATIA进程进行操作。

  CATIA.Application对象:该对象实例是系统中CATIA进程的代表,所有其他的对象都依赖于该对象的相关方法返回。在CATIA进程已经启动的情况下,CATIA.Application对象的实例可以以“CATIA.Application”字符串调用全局工厂函数GetObject获得,可以将获得的对象付给一个变量Set CATIA = GetObject("CATIA.Application")。当CATIA进程没有启动时,可以调用全局工厂函数Cre愠琀攀 Object函数带“CATIA.Application”字符串获得,并把其赋给变量Set CATIA = CreateObject("CATIA.Application")。最终,获得的CATIA.Application对象存在CATIA变量中。

  Document对象:Document类的对象代表进程中打开的CATIA文档,Document类是其他文档类的基类,从CATIA.Application 对象的ActiveDocument方法获得当前激活的文档,本次主要使用的到其子类ProductDocument的对象,并将其赋值给一个变量以便以后使用。Set productDocument = CATIA.ActiveDocument。后续的对象都要从该ProductDocument对象中获取。

  Product对象:该类型的对象代表产品文档中的一个产品节点。CATIA产品文档将一系列产品通过装配组织成一个产品树,每个产品节点可以有零到多个子节点,除了根节点以外每个产品节点都只有一个父节点。每个产品文档有唯一的根节点,且该根节点不能更换。对于装配进产品的零件,CATIA会生成一个简单的产品节点对其包装,使之成为一致的产品树。每个产品节点可以有若干属性,本程序主要对这些属性进行提取与统计。对于已经获得的产品节点,可以通过调用其Products方法获得其子节点的集合对象,该对象是一个集合对象,可以用For Each型的循环方便地遍历其中每一个Product对象。

  结束语

  本文在行为流概念的基础上,提出一种基于行为流知识库的功能-结构智能映射框架,该框架可在较高层次实现设计知识重用。此外,该框架可用于开发计算机辅助设计工具,用来辅助设计者进行新产品概念设计。