版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CAXA实体设计API例子介绍
(一)1ppt课件CAXA实体设计API例子介绍
(一)1ppt课件1ICAPICOMTest示例位置:CAXASOLID安装目录\SDK\Samples\C++\ICAPICOMTest
功能介绍:ICAPICOMTestadd-in生成两个工具条:ICAPIComTest1和ICAPIComTest2。工具条ICAPIComTest1包含三个按钮,第一个按钮演示处理从UI选择管理器中得到的信息;第二个按钮演示拾取回调环;第三个按钮演示RayTest,当点击该按钮时,会弹出一个对话框,要求输入视线(Ray)的起点、方向、大小和视线穿过对象的最大值以及实体的种类。确定后,如果一个面被穿过,将显示它的种类、穿过的位置和法线方向。工具条ICAPIComTest2包含两个按钮,第一个按钮以列表的形式显示当前设计环境(Scene)的所有外部关联;
第二个按钮显示设计环境中的BOM-type零件列表。2ppt课件ICAPICOMTest示例位置:CAXASOLID安装目录2精品资料精品资料3你怎么称呼老师?如果老师最后没有总结一节课的重点的难点,你是否会认为老师的教学方法需要改进?你所经历的课堂,是讲座式还是讨论式?教师的教鞭“不怕太阳晒,也不怕那风雨狂,只怕先生骂我笨,没有学问无颜见爹娘……”“太阳当空照,花儿对我笑,小鸟说早早早……”中考作文素材--ppt课件4主要要点—程序内容概要1.系统初始化STDMETHODIMPCMyAppAddin::InitSelf(IZAddinSite*piAddinSite){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); ASSERT(m_spiAddinSite==NULL);
……}在初始化过程中,主要进行系统环境的初始化和添加工具条。5ppt课件主要要点—程序内容概要1.系统初始化5ppt课件5主要要点—程序内容概要2、处理从UI选择管理器中得到的信息1)、判断是否有选中的对象:第一个工具条的第一个按钮开始的时候未被激活,当鼠标点中了对象时,此按钮才被激活。相应的函数如下: staticintUpdateSelTest() {
…… VARIANT_BOOLbYes; hr=spiSelMgr->SelectionsAvailable(&bYes); if(bYes==VARIANT_TRUE) return1;//对象被选中,按钮被激活
…… }6ppt课件主要要点—程序内容概要2、处理从UI选择管理器中得到的信息66主要要点—程序内容概要2)、点击第一个工具条的第一个按钮即处理从UI选择管理器中得到的信息,相应的函数为DoSelTest()。DoSelTest() {
…… HRESULThr=spiBaseApp->get_ActiveDoc(&spiActiveDoc);
…… HRESULThr=spiSceneDoc->get_SelectionMgr(&spiSelMgr);
…… spiSelMgr->GetSelectedElements(&vElements); //得到选中的元素
…… }7ppt课件主要要点—程序内容概要2)、点击第一个工具条的第一个按钮即处7主要要点—程序内容概要3、拾取回调环。建立回调环的过程如下:
1、通过系统设计环境文档spiSceneDoc得到选择管理器接口指针 m_spiSelMgr。 2、利用m_spiSelMgr创建交互接口指针m_spiInteractor。 3、由m_spiInteractor得到选择事件接口指针spiSelectEvents。 4、由spiSelectEvents设置选择事件过滤器选项。 5、创建应用程序的交互事件接口m_pInteractorEventsSink。 6、利用函数SetAdvise()对交互事件接口进行注册。 7、同理创建应用程序的选择事件接收器对象 pSelectEventsSinkObj,并注册。
8ppt课件主要要点—程序内容概要3、拾取回调环。建立回调环的过程如下:8主要要点—程序内容概要建立回调环的函数如下:BOOLCSelFilterDlg::SetupLoop(longfilterlist,eZSelectionTypecurrFilter){
…… hr=spiSelectEvents->SetSelectionFilterChoices(filterlist,currFilter);//设置选择过滤器选项
…… hr=m_pInteractorEventsSink->SetAdvise(this,spiUnk); //注册
……
m_pInteractorEventsSink->m_pSelectEventSink=pSelectEventsSinkObj;//建立应用程序与设计环境的联系
……}9ppt课件主要要点—程序内容概要建立回调环的函数如下:9ppt课件9主要要点—程序内容概要3、演示RayTest,相应的函数是:staticvoidDoRayTest(){
……
spiRayResult->get_HitElement(&spiHitElement); //得到视线穿过的对象
…… spiRayResult->get_HitPoint(&spiHitPoint); //得到视线穿过对象的点
……. spiRayResult->get_NormalDirection(&spiHitDir); //得到实现所穿过对象的点的法线方向
……}10ppt课件主要要点—程序内容概要3、演示RayTest,相应的函数是10主要要点—程序内容概要4、显示当前设计环境(Scene)的所有外部关联,相应的函数为:static voidDoLinksInfo(){
…… //得到设计环境的关联文档信息
spiSceneDoc->GetLinksInfo(&vDocs);
…… //得到关联文档的文件名 spiLinkedDoc->get_Name(&DocName);
……}11ppt课件主要要点—程序内容概要4、显示当前设计环境(Scene)的所11主要要点—程序内容概要5、显示设计环境中的BOM-type零件列表,通过点击按钮,弹出零件列表对话框。在此对话框类的函数Create(UINTnID,CWnd*pWnd)里,通过循环调用函数FillRow(IZElement*spiElem,HTREEITEMhParent,BOOLbIsDrawing)将设计环境中的信息通过列表的形式表现出来。部分代码如下: BOOLBOMDisplay::Create(UINTnID,CWnd*pWnd) {
…… //得到设计环境中的第一个元素 spiElem->GetFirstChild(&spiChildElem); //若设计环境中的元素不为空,则调用FillRow(…)函数将元素的信息以列 表的形式表现出来,并且利用函数GetNextChild(…)得到环境中的下一 个元素,重复以上步骤
12ppt课件主要要点—程序内容概要5、显示设计环境中的BOM-type零12主要要点—程序内容概要 while(spiChildElem!=NULL) { HTREEITEMhChildItem=FillRow(spiChildElem, hItem?hItem:hParent,FALSE); spiElem->GetNextChild(&spiChildElem); } } //对于统一元素里包含有不同的特征,则通过函数FillRow(…)的递归调用来实现13ppt课件主要要点—程序内容概要 while(spiChildEle13ICAPICreate示例位置:CAXA实体设计安装目录 \SDK\Samples\C++\ICAPICreate
功能介绍:ICAPICreateAdd-in例子包含一个含有4个按钮的工具条。第一个按钮是Copy/Move特征操作的切换器,会弹出一个对话框要求用户选择一个源特征,然后再选择一个目标零件,最后将该源特征移到目标零件上。第二和第三个按钮分别执行布尔减14ppt课件ICAPICreate示例位置:CAXA实体设计安装目录 14和加操作。只有当拾取了两个实体零件时它们才能执行。当这些按钮被点击时就会执行相应的布尔操作。最后一个按钮生成一个SweepShape。在打开的Scene中,如果拾取的第一个Shape是SpinShape而第二个shape是2Dprofileshape,点击该按钮则会生成一个以该2DprofileShape为导动线、以SpinShape为截面线的Sweep体。15ppt课件和加操作。只有当拾取了两个实体零件时它们才能执行。当这些按钮15ICAPICreateAdd-in还演示了DragDrop钩子的应用。应用会沿着Scene中的一个2DPath自动生成一个“管道”。演示时,打开一个新的Scene并在其中创建一个2DShape,然后从ShapesCatalog中任意拖动一个ExtrudeShape到该2DShape上,此时将弹出一个对话框要求输入管道的内外半径。确定后,沿着该2DShape将会生成一个3D管道。16ppt课件ICAPICreateAdd-in还演示了DragDrop16主要要点—回调过程类的派生回调过程类的派生17ppt课件主要要点—回调过程类的派生回调过程类的派生17ppt课件17应用事件类的派生
classATL_NO_VTABLECAppEvents: publicCComCoClass<CAppEvents, &CLSID_ICAPICreateAppEvents>, publicCZAppEventsSink, publicIZAddinServer
{
//应用事件接收器}18ppt课件应用事件类的派生18ppt课件18文档事件类的派生classCDocEvents:publicCZDocEventsSink { //文档事件接收器 }classCICAPICreateApp:publicCWinApp{ //应用类}19ppt课件文档事件类的派生19ppt课件19classCSelectionEventsSink:publicZSelectEventsSink{ //选择事件接受器}classCInteractorEvents:publicCZInteractorEventsSink{ //交互事件接收器}20ppt课件classCSelectionEventsSink:p20classATL_NO_VTABLECCopyMoveMgr: public CComObjectRootEx<CComSingleThreadModel>, publicCComCoClass<CCopyMoveMgr, &CLSID_CopyMoveMgr>, publicICopyMoveMgr,publicIDispatchImpl<IMySelection, &IID_IMySelection, &LIBID_ICAPICREATELib>{ //实现了ICopyMoveMgr和IMySelection接口}21ppt课件classATL_NO_VTABLECCopyMoveM21classCPipeDialog:publicCdialog{ //弹出的对话框类}classCCopyMoveDialog:publicCdialog{ //弹出的对话框类}22ppt课件classCPipeDialog:publicCdi22classATL_NO_VTABLECZCommandEventsSink: publicCComObjectRootEx<CComSingleThreadModel>, publicCommandEventsImpl{ //命令事件的基类}classCICAPICreateCommandEventsSink:publicCZCommandEventsSink{ //命令事件类}23ppt课件classATL_NO_VTABLECZCommandE23两个接口 interfaceICopyMoveMgr:Iunknown interfaceIMySelection:IDispatch24ppt课件两个接口 interfaceICopyMoveMgr:24文档与IZInteractor、IZSelectEvents
接口之间的关系IZDocPtrspiActiveDoc=GetActiveDoc();IZSceneDocPtrspiSceneDoc=spiActiveDoc;
HRESULThr=spiSceneDoc->get_SelectionMgr (&spiSelMgr);25ppt课件文档与IZInteractor、IZSelectEvent25IZInteractorPtrm_spiInteractor=NULL;hr=m_spiSelMgr->CreateInteractor( &m_spiInteractor);
IZSelectEventsPtrspiSelectEvents=NULL;hr=m_spiInteractor->get_SelectEvents( &spiSelectEvents);26ppt课件26ppt课件26主要要点—程序内容概要1.系统初始化HRESULTCAppEvents::InitSelf(IZAddinSite*piAddinSite){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); HRESULThr=S_OK;
……}27ppt课件主要要点—程序内容概要1.系统初始化27ppt课件27系统的清除HRESULTCAppEvents::DeInitSelf(){ HRESULThr=S_OK;
……}28ppt课件系统的清除28ppt课件28添加工具条及其消息处理IZCommandHandlerPtrm_spiCmdHandler1;m_spiCmdHandler1=AddCommandHandler(IDS_C1_UNIQUENAME,IDS_C1_DISPLAYNAME,IDS_C1_STATUSSTRING,IDS_C1_TOOLTIP,IDB_C1_SMALL,IDB_C1_LARGE);//IDI_C1_SMALL,IDI_C1_LARGE);29ppt课件添加工具条及其消息处理29ppt课件29
hr=m_spiAddinSite->get_Application(&spiBaseApp); if(FAILED(hr)||spiBaseApp==NULL)returnhr; hr=spiBaseApp->get_EnvironmentMgr(&spiEnvMgr);if(FAILED(hr)||spiEnvMgr==NULL)returnhr; hr=spiEnvMgr->get_Environment(Z_ENV_SCENE,&spiEnv);if(FAILED(hr)||spiEnv==NULL)return
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度物流服务合同标的与服务内容2篇
- 2025年度航空航天零部件采购合同模板3篇
- 2025彩妆造型行业消费者权益保护合作协议3篇
- 泰州职业技术学院《城市更新与方法》2023-2024学年第一学期期末试卷
- 2024版:变压器买卖双方权益保障合同3篇
- 2024年足疗服务人员聘用协议样本版B版
- 二零二五版2025年度个体美容美发店合伙合作协议3篇
- 二零二五版物联网技术在农业应用合伙协议3篇
- 二零二五年度绿色建筑门窗安装及节能认证协议3篇
- 二零二五版货物搬运与物流信息平台建设合同3篇
- 自我发展与团队管理课件
- 《妇产科学》课件-17.盆腔器官脱垂
- 《UL线材培训资识》课件
- 监理报告范本
- 店铺交割合同范例
- 大型活动LED屏幕安全应急预案
- 2024年内蒙古包头市中考道德与法治试卷
- 湖南省长沙市2024-2025学年高二上学期期中考试地理试卷(含答案)
- 自来水质量提升技术方案
- 金色简约蛇年年终总结汇报模板
- 农用地土壤环境质量类别划分技术指南(试行)(环办土壤2017第97号)
评论
0/150
提交评论