| 会员登录 立即注册

CATIA教程

搜索

    [CATIA入门教程] 基于CAA R26的菜单及工具条创建

    [复制链接]
    CATIA正版软件 发表于 2019-9-2 11:52:21 | 显示全部楼层 |阅读模式
    CATIA正版软件
    2019-9-2 11:52:21 6289 0 看全部
      文章的编写过程参考了PLM之家上的CAAR25菜单和工具条的创建教程,本人只是把他的知识文字化了,方便知识的保存也方便知识的传播。关于CAAR26,或者叫3DS吧,菜单和工具条的创建,之前照着PLM之家的教程做过一遍,但是隔了一段短时间再次创建的时候突然不知道如何下手了,而且网上除了PLM之家那个十分模糊的视频教程之外,也没有关于CAAR26等版本菜单及工具条的创建教程,所以就写了这么一个教程。由于水平和见解有限,文章中肯定有许多东西描述的不准确甚至不正确,希望大家能多提提意见。由于是简单的教程,就不用太多的文字描述了,直接按操作分层级写了。(1)在VS2012界面依次点击文件-新建-3DSWorkSpace…选项卡,如图1所示,此时会弹出3DS-NewWorkSpace窗口,如图2所示,在location先选择Workspace的存放路径。注意:这里选择完路径后需要在路径后新添加一个文件夹,该文件夹名称即为WorkSpaceExplorer中的最上层目录,如图3所示,不然会弹出图4所示的错误。
    73af1cf8e587bdcb5768c5cdb8b7bc0c.png

      图1打开3DSworkspace

    9d01fb01f38e1a1ffd51c7353f8257fb.png

      图23DSNew-WorkSpace

    5cfeb5e9fbccd3bcee177fe68dd6640a.png

      图3新建文件夹在WorkSpaceExplorer中的位置

    74c08f21d84f5e10bf03cca58f067bc8.png

      图4错误提示


      (2)在创建完WorkSpace之后,我们的WorkSpaceExplorer浏览器应如图5所示。右击Myworkspace选项选择NewFramework选项,新建一个Framework,如图6所示。
    ac887361799d5daa9af07b1b448ac6d2.png

      图5WorkSpaceExplorer示例

    634bcbd54a1072684fce07fbf71ff919.png 46bebc5d2b5a33bb1082c4dfd40826d0.png

      图6NewFramework


      (3)创建完Framework之后,VS的2012界面应如图7所示
    7608a82c8cd93828d1bc28e0588008fc.png

      图7Framework创建完毕


      (4)右击Workspace浏览器中新建的Myframework,选择NewModule选项,新建Module,如图8所示。点击Finish完成创建,此时将自动跳转到解决方案资源管理器。但是此时的解决方案管理器中是没有我们新建的Module的,只有Framework。我们需要在WorkSpace浏览器中右击Framework选择AddAllToSolution选项,将我们新创建的Module添加到解决方案资源管理器中,如图所示,添加完成之后的解决方案管理器应该如图8-10所示。
    02f4e608b4e7406c8dd0440955e95a93.png

      图8 3DSnewmodule窗口

    1909a5693b5699c92a0c32a1efe53d4f.png

      图9AddAllToSolution示意

    81c9f8dfcb98523d07736e183b0965a9.png fac7538909af9cd817c4ff5e99923300.png

      图10解决方案管理器视图

    (5)至此,一个完整的WorkSpace框架就创建完毕了。对比VS2005和VS2008中的操作你会发现,我们似乎缺少了LocatePrerequisiteWorkSpace的操作,如图11所示,此时我们需要右击WorkspaceExplorer中新建的Myworkspace并选择Prerequisite选项,在弹出的3DS-ManagePrerequisite对话框中添加CATIA的安装路径,为我们的WorkSpace提供运行时所必需的库,具体如图12所示。

    bf122338c6d39b10f6a419ff0e49f8eb.png

      图11V5LocatePrerequisiteWorkSpace操作

    0b9b0c58b2e5565572f87bdf9ac3e7b6.png 83494c57e915338031c660a2646f83ed.png

      图12V5-6Prerequisite界面


      (6)下面开始创建菜单与工具条,在解决方案资源管理器中右击创建的MyAddinModule,点击设为启动项目选项,将当前Module作为我们的工作对象。完成后同样右击创建的MyAddinModule,依次点击添加-新建项选项,如图13所示。
    f5b12ea2ed6529b0899cf088b19d7b99.jpg

      图13定义当前Module为工作对象


      (7)此时会弹出添加新项的对话框,我们选择3DSTemplate选项下的C++选项,在右侧的选项中选择Component,创建组件,如图14所示。
    6a93722da24a86ce20fc5746c916d22f.png

      图14添加组件

      (8)点击添加,在弹出的DSNewobjectmodelercomponent对话框中选择Thecomponentisan选项,并点击进行下一步,如图15所示。
    6d2a67bd2ddef20011d089dd80322777.png

      图15添加组件


      (9)在TIEadhesion中添加我们想要我们的菜单依附的Workshop或者Workbench,我们选择CATIAfrGeneralWksAddin,让我们创建的菜单或工具条在全局都可以显示。点击+按钮,在弹出的3DS-NewValue对话框上输入CATIAfrGeneralWksAddin接口,点击确定,如图16所示。
    620c62fec102bd58aaf5953e5496d7ee.png d98b9515be812861341b59c6c6b72e70.png

      图16选择Workshop或Workbench


      (10)点击Finish按钮完成Component的创建,此时会弹出图17示的弹窗提醒,我们选择全部重新加载选项,更新我们的WorkSpace。
    e7d247963bdeef18655bc5ce6f8b11a8.png

      图17弹窗提醒


      (11)此时我们可以尝试编译我们新建的项目了,此时编译因该是存在问题的,按照上述步骤进行下来,应该会出现图18示的错误。我们需要关注的是输出窗口的错误提示。
    6e02ffea6c63f8af41497c099d9d19b7.png b0299d85e9e68f49b861124d276be770.jpg

      图18MK错误示意图


      (12)第一个错误提示为…in'LINK_WITH'isignoredbecauseitisinframework[System]whichisnotadirectprerequisite.这个错误是因为我们缺少System这个Framework。在3DS中我们可以通过右击WorkSpaceExplorer中我们新建的Framework,选择EditIdCard选项进行添加。具体做法为:在IdentifyCardEdition对话框中右击codeFramework,选择AddChildren>prerequisite,双击新建的codeFramework子项prerequisite,在右侧对话框中输入Framework的名称和权限并保存,此时RADE已自动将我们设置的Framework添加到Identify.xml文件中,具体如图19所示。
    c5e5c8e18b03de42aaaab22e1bf5da0e.png 8827940efdedc55fd9e81976cf2ed79d.png 7925f761fc414cc164ed88eaa98d2940.png

      图19Identify操作示意


      (13)此时我们再次进行编译。输出窗口的第一个提示错误为…无法打开包括文件:“TIE_CATIAfrGeneralWksAddin.h”:Nosuchfileordirectory。这是因为TIE_CATIAfrGeneralWksAddin.h的头文件或者是Module未添加到我们创建的WorkSpace中。在3DS中我们可以通过框选CATIAfrGeneralWksAddin,然后选择帮助中的3DSHelpviewer,在此时弹出的3DSHelpViewer窗口中打开CATIAfrGeneralWksAddin的说明,如图20所示,添加对应的文件。(具体为:在IdentityCard.xml文件中添加<prerequisitename="ApplicationFrame"access="Protected"/>,在MyAddinModule.cpp中添加#include"CATIAfrGeneralWksAddin.h",在Imakefile.mk中添加CATApplicationFrame)。
    0dc590ee0207a5ad3970ae3f1de1bde5.png

      图203DSHelpviewer是窗口示意图


      (14)再次编译会弹出图示的错误,这是因为我们没有对CreateCommands和CreateToolbars进行实现。
    6eef3c959a5e7c3600e1572d9e773b3d.png

      图21错误提示

      具体做法(可以参考V5版本的操作)为:首先,在MyAddinModule.h文件中添加如下三个头文件:

      #include"CATCmdContainer.h"#include"CATCreateWorkshop.h"#include"CATCommandHeader.h"其次,在MyAddinModule.h中添加上述两个方法:

      voidCARMSFCSTBAddin::CreateCommands();CATCmdContainer*CARMSFCSTBAddin::CreateToolbars();最后,在MyAddinModule.cpp中对上述两个方法进行实现:

      MacDeclareHeader(MyHeaderHZS);voidCARMSFCSTBAddin::CreateCommands(){newMyHeaderHZS("CAAR26MenuItem","MyModule","MyCommand",(void*)NULL);//添加菜单newMyHeaderHZS("CAAR26Bottom","MyModule","MyCommand",(void*)NULL);//添加工具条}CATCmdContainer*CARMSFCSTBAddin::CreateToolbars(){NewAccess(CATCmdContainer,pCATCmdCon,CAAR26Toolbar);//创建CAAR26Toolbar工具条NewAccess(CATCmdStarter,pCmdStart,NameOfThisAccess);//创建按钮SetAccessCommand(pCmdStart,"CAAR26Bottom");//将按钮与工命令关联SetAccessChild(pCATCmdCon,pCmdStart);//将按钮和工具条关联AddToolbarView(pCATCmdCon,1,Right);//将工具条添加到视图中NewAccess(CATCmdContainer,pCATCmdConMenu,CAAR26Menu);//添加菜单NewAccess(CATCmdContainer,pCATCmdConMenuWindow,CAAR26MenuWindow);//添加菜单窗口SetAccessChild(pCATCmdConMenu,pCATCmdConMenuWindow);//菜单窗口与菜单关联NewAccess(CATCmdStarter,pMenuItem,NameOfAccess);//添加菜单项SetAccessCommand(pMenuItem,"CAAR26MenuItem");//菜单项与命令关联SetAccessChild(pCATCmdConMenuWindow,pMenuItem);//菜单项与菜单窗口关联SetAddinMenu(pCATCmdCon,pCATCmdConMenu);//菜单与工具条关联returnpCATCmdCon;//返回创建的工具条}程序的最终运行效果应如图22所示
    bd594cb07808d1bc924f0f62fc4e16e6.png

      图22运行效果图

    • 您可能感兴趣

    查看:6289 | 回复:0

    CATIA下载| CATIA安装| CATIA教程| CATIA视频教程| CATIA二次开发| CATIA入门教程| CATIA V5| CATIA V6| CATIA论坛| CATIA论坛
    版权声明 wanqiang@rydit.com.cn ICP备案号: ( 蜀ICP备14018086号-5 )
    Copyright © 20017-2020 CATIA论坛 All Rights Reserved.  
    快速回复 返回顶部 返回列表