CATIA二次开发技术在海洋工程管路设计中的应用
2016-12-12杨文博韩华伟
杨文博,韩华伟
(1.烟台中集来福士海洋工程有限公司,山东烟台 264000;2.中集海洋工程研究院有限公司,山东烟台 264003)
CATIA二次开发技术在海洋工程管路设计中的应用
杨文博1,韩华伟2
(1.烟台中集来福士海洋工程有限公司,山东烟台 264000;2.中集海洋工程研究院有限公司,山东烟台 264003)
文章研究基于CAA(Component Application Architecture)方式,在Windows XP平台上对CATIA进行二次开发的关键技术,提出了一种崭新的基于CATIA海洋平台管路设计的理念,实现了Oracle数据库中的数据与三维模型的同步管理。
CATIA二次开发;CAA Oracle数据库;海洋工程
0 引言
海洋工程设计与制造工作量大,建造周期长,模型数据量大。而管路专业又是海洋工程中的重要组成部分,因此,对平台中管路设计信息、加工信息、材料、管路焊接报验进行标准化管理尤为重要,这样可满足多个项目同时设计和材料分类管理的要求,对于批量建造项目,可以直接出图,无需进行模型设计,提高了工作效率。
海洋工程管路模型设计可以采用更为直观的三维模型设计来提高用户的视觉效果,达到高效高精度的设计目标,而CATIA作为一款强大的三维软件,为客户提供了产品的全周期管理,从产品的原理图设计到模型的详细设计,再到模型数据管理(PMD)等可以实现用户的跨平台协同操作,并提供二次开发编程工具和接口。通过二次开发,CATIA软件成为海洋工程产品设计和制造的首选软件平台。然而,如果要提高设计效率和实现材料的全生命周期管路,就要建立完整的规范,使用软件直接把三维模型转化成二维设计图。为此,本文详细介绍了CATIA开发解决方案的一般步骤、主要接口的调用方法和管路专业的二次开发关键技术,并将二次开发技术应用到CATIA管路全生命周期解决方案。
1 CATIA解决方案的技术综述
作为一款工程软件,CATIA可以根据客户的特殊需求,定制相应的解决方案,并通过客户化的接口,实现外部数据和CATIA内部数据的无缝衔接。当前,主要可以通过两种方式对CATIA的内置函数进行调用操作:内置宏语言和C++或者JAVA CAA应用组件架构。两种方式来开发各有利弊。
1.1 使用宏(Macro)调用CATIA内置函数接口
宏语言是CATIA提供的一种开发语言,可以通过录制设计员的操作,来获取语言代码,再通过自己的修改,来实现对CATIA内部函数的调用。该方法允许客户获取CATIA的数据模型,其优点是简单易学,操作方便;在调试程序时,不需要关闭CATIA。缺点是只适用于简单的操作[1],而且 DS只开放了部分VBA的接口。
1.2 使用组件应用架构(CAA–RADE)调用CATIA内置函数接口
CAA中的C++和Java应用接口,是通过COM+的组件模式开发。该方法功能强大,可以访问CATIA的任何开放的接口并可以直接调用C++现有的应用程序来实现所需功能,并根据客户需求,定义适合自己需要的编码体系和架构体系[1]。
CAA使用面向对象的C++或更为灵活的JAVA语言,采用COM+架构,来调用CATIA内置函数。由于 COM具有很好的独立性和可扩展性,使得CAA这种开发方式更加标准化,代码执行率更高。CAA在程序中能调用所有的微软组件结构,兼容C++和JAVA的接口函数,使开发更加灵活、简单。CATIA提供的内置函数接口都以(*.h)的形式保存在CATIA安装目录下,可以直接调用。
不同的头文件包含了不同的功能,如CATBaseUnknown.h包含了 CATIA基类接口[2],CATIProduct.h包含了对CATIA三维模型的所有操作,CATIDrawing.h包含了多CATIA二维图的操作等。CAA的架构如图1所示。
2 CATIA管路生命周期系统
2.1 CATIA管路生命周期构建思想
人工模拟肠液的配制:磷酸氢二钾6.89 g,加500 mL蒸馏水溶解,再用0.4 mol/L NaOH溶液将其pH调至6.8,另取胰蛋白酶10 g加适量蒸馏水溶解,将两液混合后,加水定容至1 000 mL。
CATIA管路生命周期的设计是基于在实际项目中管子的实际操作流程来实现的,从CATIA三维设计到材料下发,再熬管路加工,再到船上安装,再到焊接报验等一系列的标准操作流程。CATIA管路生命周期后台数据库包括基础数据库和模型数据库,基础数据库包括加工信息、材料信息、安装位置等信息。模型数据库包括CATIA的CGR模型信息和生存的二维PDF信息。判断标准的数据,目的是为了减少和消除计算机在运行时人为的干预问题。通过将设计基础数据放入数据库可以减少输入和输出的次数[3],数据示意图见图2。
图1 CAA架构
图2 数据示意图
CATIA管路生命周期系统的建立和运行按照下面的方法实施:
1)在CATIA软件中进行二次开发,利用CATIA自身的接口,构建如图3和图4所示的用户界面。程序通过Agent机制,实现对主窗口的调用,实现数据的输入与输出。
2)把三维模型转化成二位设计图,并统计出材料列表,如图5和图6所示。
2.2 CATIA管路生命周期系统的高效性
传统的CATIA管路出小票需要借助第三方软件SB3DS才能完成,首先在CATIA中完成建模,
然后把CATIA模型导入到SB3DS软件中,在这个过程中由于两种软件的不兼容性,会导致有些模型数据丢失,需要靠经验在SB3DS中修改,然后才能出小票,在这个过程中需要不断修改模型,导入SB3DS,效率很低;而CATIA则可以直接从三维模型中导出小票,减少了中间环节[4],以GM4-D项目102PB分段出小票为例,见表1。
图3 程序命令工具条
图4 系统主界面
图5 管路小票
图6 材料表
表1 出小票
由表1可以看出,仅一个分段一个人就可以比以前节约10.5h,那整个项目就可以节约大量的时间。
2.3.1 CAA对MFC(Microsoft Foundational Class)应用程序的调用
以前CATIA用户数据输入和操作界面主要使用CATIA提供的对话框进行开发。在本系统中调用了一部分微软的界面设计功能,节约了开发时间,提高了代码的执行效率,使用 Microsoft Visual Studio2005提供的框架,采用COM方式调用CATIA接口和MFC函数。
CATIA API支持一些WIN32 SDK的函数。如调用LoadLibrary()函数,获取了动态链接库。这三个函数是调用.dll文件的关键。在程序外部编译好.dll文件后,CAA可以直接调用,提高CATIA二次开发的效率[5]。
2.3.2 CAA对Oracle数据库的操作
本系统采用了Oracle数据库存储和 Microsoft Visual Studio2005 C++的开发方式。系统采用了OCCI方法访问数据库,为了能使用OCCI库,必须在工程中直接引入#include<occi.h>头文件,以使编译器能正确编译。OCCI头文件包含三个指针:
Environment*、 Connection*和 Statement*。Environment*通常被用来创建一个数据连接环境Environment::createEnvironment(Environment::Defau lt)。通过 Statement*可以返回一个结果记录集并通过OCCI里面的方法,提取到所需要的数据。在使用 Connection*接口时,可以调用本身的方法createConnection(),直接传入参数,包括用户名、密码和数据库标识。ResultSet是一个记录集对象,用来存放从数据库中取到的数据。OCCI操作Oracle数据库更加灵活,速度更快,与其他操作数据库方式相比,它提供了对数据库更多的操作功能,如数据锁定、游标控制、数据回滚等。使用OCCI的基本方法如下:
1)必须引入OCCI.h头文件;
2)用Environment对象访问Oracle数据库;
3)利用建立好的连接,通过Connection对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理;
4)使用完毕后关闭连接,释放对象。
首先,利用C++语言调用Environment类型的指针*env,通过这个指针就可以调用createConnection(username,pwd,db)建立数据库连接,成为访问到目标数据库后,会返回一个指针 con,通过con->createStatement(sql)创建一个执行SQL语句的命令,调用state->executeQuery()语句就可以执行SQL语句,访问数据库记录,进行数据存储、修改等操作。
3 结论
CATIA管路模型数据提取、传递、处理和存储是一个庞大的数据处理的过程,本文提出了通过调用CATIA本身的内置函数接口,借助外部数据库来自动处理管路数据。
本文提出的CATIA管路生命周期系统,实现了CATIA和Oracle数据库的数据无缝连接,为批量化造船提供数据源,为企业数据信息集成及管路打下了良好的基础。
随着CATIA软件广泛用于海洋平台、航天科技等领域,应用CAA组件对CATIA软件进行二次开发会越来越重要,由于其本身结构的层次化和严谨,这项二次开发技术会受到越来越多的重视。
[1]CAA Doc Online: CAA V5 Encyclopedia (CATIA帮助手册)[Z].1999-2007.
[2]CAA V5 Help Viewer (CATIA 帮助手册)[Z].1999-2007.
[3]董伊鑫, 席平.基于CATIA的界面二次开发[J].航空制造技术, 2006(12): 83-86.
[4]杨流辉, 张和明.基于COM组件的CATIA产品信息集成技术研究与实现[J].计算机工程与应用, 2001, 37(24): 132-134.
[5]周仙娥, 鲁墨武, 赵海星.基于CAA的CATIA二次开发的研究[J].科技信息, 2008(36): 73-74.
CCS颁发首张欧盟游艇认证证书
2016年11月6日,在第九届中国(厦门)国际游艇展览会上,中国船级社(CCS)向厦门瀚盛游艇有限公司颁发了首张游艇欧盟认证(CE)证书。据悉,自今年9月CCS希腊公司获得欧盟游艇及配套产品的认证资格后,CCS“欧盟游艇技术标准研究”项目组积极推进认证服务,完成了对瀚盛游艇制造的豪华休闲竞赛帆船“纵横46”号模式B的CE型式检验,签发了首张游艇CE证书,掀开了CCS游艇检验的新篇章。
来源:中国船级社
Application of CATIA Secondary Development Technology in Offshore Tube Design
Yang Wen-bo1, Han Hua-wei2
(1.Yantai CIMC Raffles offshore Ltd., Shandong Yantai, 264000, China; 2.CIMC Offshore Business Co., Ltd., Shandong Yantai, 264003, China)
The study of the paper is based on CAA (Component Application Architecture) method.Aiming at the key technology of CATIA secondary development on the platform of Windows XP, the paper presents a new theory based on CATIA offshore tube design, which achieve the synchronism management of the data in the Oracle database and the 3D model.
CATIA secondary development; CAA Oracle database; offshore
P751
A
10.14141/j.31-1981.2016.06.006
杨文博(1986—),男,本科,研究方向:CATIA软件的二次开发。