会员登陆 | 会员注册 | 帮助中心 | 忘记密码? | 会员中心
搜索类型: 下载    文章    图片    影视    商城    商城   
       
基于CATIA的界面二次开发方法与实例 (2)
2008-01-06 17:01:44  作者:  来源:互联网  浏览次数:59  文字大小:【】【】【
简介:一、引言 CATIA(Computer Aided Three & Two Dimensional Interaction Application System,计算机辅助三维/二维交互式应用系统)V5是IBM/DS基于Windows核心开发的高端CAD/CAM软件系统。目前CATIA最新的版 ...

    CAA采用面向对象的程序语言,开发过程可看作是其组件对象的组合和扩展。CAA采用组件对象模型(COM)和对象的连接和嵌入(OLE)技术,CAA的架构如图2所示。



图2 CAA架构

   
    三、使用组件应用架构的CATIA界面二次开发方法

    下面的例子说明了如何使用CAA C++开发方式来建立一个CATIA内部程序。实现的功能是新建一个独立的工作台(workbench),并在其下面实现添加自定义菜单,添加工具条以及按钮图标,插入CATIA风格的对话框。并生成对界面功能的响应,建立command,实现调用对话框,以及通过输入参数直接用代码生成一个三维模型,并在CATIA主窗口中显示。

    1、 新建独立的workbench

    CATIA V5将某类包含一系列交互命令的一些工具条分组显示在不同的工作台(workbench)中,这样有利于工具的查找和使用。通过自己新建的workbench可以将自己二次开发形成的一系列命令集中显示在一个工作台中,便于以后的操作。工作台的建立需要以下几个步骤。
 
    创建工作台厂(factory)的接口(interface);
 
    创建工作台厂;
 
    创建工作台描述类;
 
    创建响应命令(command)的标题;
 
    创建工作台并排列图标按钮响应;
 
    提供图片及提示等资源并将新建的工作台插入开始菜单;
 
    创建工作台的显示界面。

    插入新建的工作台MyWorkBench后的CATIA开始菜单如图3所示,它与CATIA现有的模块成为并列关系。现在进入MyWorkBench工作台里面没有任何工具条及按钮,下面添加这部分工具。



    2、 添加工具条及按钮   图3 生成的新的工作台

 

    首先创建按钮的描述类CAAAfrGeoCreationWkb,派生于CATBaseUnknown类。CATBaseUnknown是创建用户界面并实现界面的基类,所有的接口都是从IUnknown/CATBaseUnknown继承的。这个类中建立了两个函数分别为CATCmdWorkbench *的CreateWorkbench()函数和无返回值类型的CreateCommands()。前面的函数是用来实现顺序插入工具条、按钮图标以及菜单,后面的函数是实现对插入按钮以及菜单和响应函数的关联。

    在CreateWorkbench()函数中用到了宏NewAccess(className,variableName,objectName)。CATIA的工作场(workshop)或者工作台(workbench)可以被看作是一个入口的集合包,使用NewAccess宏可以创建一个这样的入口。使用SetAccessChild(variableName,childName)以及SetAccessNext (variableName,nextName)这两个宏则可以连接入口。其中className表示被创建类的类型,包括以下几种类型:CATCmdContainer,CATCmdWorkshop,CATCmdSeparator,CATCmdStarter。下面就是创建了一个按钮的容器,也就是工具条,并在其中添加按钮的部分代码。

NewAccess(CATCmdContainer,pCAAAfrTB1EltTlb,CAAAfrTB1EltTlb);//创建工具条pCAAAfrTB1EltTlb
SetAccessChild(pCAAAfrGeoCreationWkb, pCAAAfrTB1EltTlb);      //工具条加入工作台
//创建按钮cmd1,并设置其响应宏为CAAAfrCmd1Hdr,最后将其加入工具条TB1中
NewAccess(CATCmdStarter,pCAAAfrTTB1EltCmd1Str,CAAAfrTTB1EltCmd1Str);
SetAccessCommand(pCAAAfrTTB1EltCmd1Str,"CAAAfrCmd1Hdr");
SetAccessChild(pCAAAfrTB1EltTlb,pCAAAfrTTB1EltCmd1Str);

    接下来绘制一个图标,并在CAAAfrGeoCreationWkbHeader.CATRsc中将其关联,具体如下,则cmd1按钮显示的是CAACmd1.Bmp图标。

CAAAfrGeoCreationWkbHeader.CAAAfrCmd1Hdr.Icon.Normal    = "I_CAACmd1";
在CAAAfrGeoCreationWkbHeader.CATNls文件中设置新建按钮的标题以及提示内容
CAAAfrGeoCreationWkbHeader.CAAAfrCmd1Hdr.Category  = "Element";
CAAAfrGeoCreationWkbHeader.CAAAfrCmd1Hdr.Title      = "command1";
CAAAfrGeoCreationWkbHeader.CAAAfrCmd1Hdr.ShortHelp  = "new cmd1";

    添加两个工具条并插入一系列按钮的效果图如下面图4所示。


图4 新添加的按钮                图5 添加的菜单

   

[1] [2] [3]

· CATIA V5 在汽车白车身焊装与检验...
· 初访达索
· CATIA测量教程
· 如何把CATIA中的快捷键保存起来
· CATIA注塑模具设计与数控铣削编程...
· CATIA电气设计流程
· 足球可以这样做成
· 属性中刷子的运用
· 2分钟重装CATIA
· 关于如何打开*.exp或*.dlv3的文件!!
· CATIA V5 在汽车白车身焊装与检验...
· 初访达索
· CATIA测量教程
· 如何把CATIA中的快捷键保存起来
· CATIA注塑模具设计与数控铣削编程...
· CATIA电气设计流程
· 足球可以这样做成
· 属性中刷子的运用
· 2分钟重装CATIA
· 关于如何打开*.exp或*.dlv3的文件!!
关于我们 | 联系我们 | 开发团队 | 免责申明 | 下载帮助
CAX频道 旗舰CAD/CAM/CAE/CAX下载专业网站   FMcaX.CoM 版权所有 ©2007-2009
     粤ICP备07502650号