- 博客(22)
- 收藏
- 关注
原创 3DExperience:利用CAT3DCustomRep或CATSurfacicRep在模型中可视化红色箭头(可根据参数画其他形状)
部分位置函数无关紧要。//获取视点 CATFrmLayout *pLaout=CATFrmLayout::GetCurrentLayout(); CATFrmWindow *pFrmWindow=pLaout->GetCurrentWindow(); CATViewer *pViewer=pFrmWindow->GetViewer(); CAT3DViewpoint *pViewpoint=&(pViewer->GetMain3DViewpoint()); Point
2020-07-25 21:38:05 692
原创 3DExperience:DELMIA的仿真(Simulation)模式
记录:DELMIA仿真利用多线程进行仿真,在仿真时通过仿真控制器能够同步计算一些内容,但是计算中含有到QueryInterface可能会导致内存报错,有时在仿真过程中报错(仿真过程中不强制刷新模型不会报错,但一旦强制刷新模型则会报错),有时在关闭文档时会报错(可能在第二次或第三次关闭时报错)。...
2020-07-25 21:28:08 1016
原创 3DExperience:CATBody的三角面片化
需要将零件的LoadMode转换为EditMode。void ARKBox::SetTriNumber(CATBody *ipBody,ARKTrianglePlane **&opaTriangle,TriNumber &oTriNumber){ double sag=0.1; CATICGMBodyTessellator *pTessellator=::CATCGMCreateBodyTessellator(ipBody,sag,CATPIBY4); pTessellator -
2020-07-25 21:21:27 674 1
原创 3DExperience:可视化的方法在模型中画出三角面片
先由两点划线。void ExportedByARKGraphicRep ARKBody::CreateLinRep(CATLine *ipLine,CAT3DRep *&opRep){ CAT3DRep *pRep = NULL; if (NULL == ipLine) return; CATCrvParam startParam, endParam ; ipLine -> GetStartLimit(startParam); ipLine -> GetEndLimit
2020-07-25 21:17:50 534
原创 3DExperience:一个状态命令(CATStateCommand)适用于多种选择、多种动作函数的方法
首先CATStateCommand::BuildGraphBuildGraph()中不写内容,额外增加一个函数void ARKStaticEvaluationStateCmd::Chioce(CATCommand* icmd,const char *istring, IID iIID,CATBoolean (ARKStaticEvaluationStateCmd::*Fuction)()){ _pcmd=icmd; _FirstPathAgent=new CATPathElem
2020-07-25 21:11:22 664 1
原创 3DExperience:从组件与UI活动对象创建CATPathElement对象
this指针某接口。ExportedByARKDocumentStructureItf CATPathElement *ARKEProduct::GetPathElement(){ CATFrmEditor *pEditor=CATFrmEditor::GetCurrentEditor(); CATPathElement context = pEditor->GetUIActiveObject(); CATIBuildPath *pBuildPath=NULL; QueryInterfa
2020-07-25 21:05:06 501
原创 3DExperience:判断CATIPLMNavOccurrence的Modeler是否为DELHumanModeler(是否是Manikin或Human)的函数
ExportedByARKDocumentStructureItf void ARKEProduct::GetManikin(ARKIManikin*& opManikin){ SWKIHumManikinUtils * pManikinUtils = NULL; if (SUCCEEDED (::CATInstantiateComponent ("SWKIHumManikinUtilsImpl", IID_SWKIHumManikinUtils, (void**) &pManiki
2020-07-25 21:02:16 287
原创 3DExperience:修改CATIPLMNavOccurrence下所有零件的LoadMode为EditMode
void ARKEProduct::ChangeLoadModeToEditMode(){ CATIPLMNavOccurrence_var spOccOnThis = this; CATIPLMNavReference *pRefOnThis = NULL; if(FAILED(spOccOnThis -> GetRelatedReference(pRefOnThis))||pRefOnThis==NULL){ CATIPLMNavInstance *pInstOnThis = NULL;
2020-07-25 20:59:04 381
原创 3DExperience:获得某CATIPLMNavOccurrence的全局位置矩阵(通过CATIMovable与非CATIMovable)
非注释是通过CATIMovable接口获取,注释的是通过CAT3DBagRep类获取。区别在于:在仿真时,通过CATIMovable全局位置矩阵不会变化而通过CAT3DBagRep类获取的可以变化。ExportedByARKDocumentStructureItf HRESULT ARKEProduct::GetAbsPosition(Transfor &oabsPosition){ if(_posTag){ oabsPosition = _currentPos; return S_OK
2020-07-25 20:54:52 369
原创 3DExperience:输入一个向量,随机生成其余两个正交向量的函数
随机生成的第一个向量,能取0坐标的就取0坐标ExportedByARKGlobal void GetDirections(const CATMathDirection &idirection1,CATMathDirection &odirection2,CATMathDirection &odirection3){ double d1x=idirection1.GetX(); double d1y=idirection1.GetY(); double d1z=idirec
2020-07-25 20:49:19 332
原创 3DExperience:打开给定Product Reference并将其添加到指定的Occurrence下
_pSelectedProduct是一个CATIPLMNavOccurrence接口指针,pAddedHuman 为被添加的Product Reference,pAddedObj为pAddedHuman 的一个实例。 HRESULT hr = S_OK ; CATIPLMProducts_var spProductsOnSelectedRef = NULL_var; CATIPLMNavOccurrence_var spOccOnSelected = _pSelectedProduct; CATIP
2020-07-25 20:44:56 403
原创 3DExperience:复制(克隆)一个Product Reference(类似于深拷贝)
pAddedHuman为被复制的Product Reference,pDuplactedHuman为新复制的Product Reference。 CATAdpDuplicator duplicator; CATIPLMComponent_var spComponent = pAddedHuman; ReleaseInterface(pAddedHuman); CATIAdpPLMIdentificator *pAddedHumanId = NULL; spComponent -> GetA
2020-07-25 20:39:37 466
原创 3DExperience:根据CATIPLMNavOccurrence获取体积函数
单位为立方米。由于V6对Product的打开机制是VisualMode,故获取速度会很慢。ExportedByARKGlobal void GetVolume(CATIPLMNavOccurrence *ipOcc,double &oVolume){ CATApplicationFrame *pappFrame = CATApplicationFrame::GetFrame(); CATIAApplication *ptApp = NULL; pappFrame -> QueryI
2020-07-25 20:33:47 2851
原创 3DExperience:根据CATIPLMNavOccurrence获取重心函数
局部坐标系下的重心,单位为m。由于V6对Product的打开机制是VisualMode,故获取速度会很慢。ExportedByARKGlobal void GetCoG(CATIPLMNavOccurrence *ipOcc,double *oaCog){ CATApplicationFrame *pappFrame = CATApplicationFrame::GetFrame(); CATIAApplication *ptApp = NULL; pappFrame -> QueryIn
2020-07-25 20:31:16 390
原创 3DExperience:根据PLM_ExternalID和V_version获取Product Reference的函数
把.edu中的代码整理了一下,变成能够直接调用的ExportedByARKGlobal HRESULT ARKOpenPLMComponent (const char* istrPLMType, const CATUnicodeString& iPLM_ExternalIDValue, const CATUnicodeString& iV_versionValue, const IID& iIID, void **op
2020-07-25 20:27:51 371
原创 3DExperience:记录一些可能会用到的接口以及知识点
从3D Shape得到PLM Representation:CATPLMComponentInterfacesServices::GetPLMComponentOf()从Rep Reference得到3DShape:RetrieveApplicativeContainer(“CATPrtCont”,IID_CATIMmiPrtContainer,(void **) & pContain...
2019-09-05 16:35:29 1103
原创 3DExperience:Product Modeler
从工业实际模型到持久模型Product Modeler简化版滑板是由七个组装好的实体部件组成,属于三种类型:一个板子(粉色)。两个支架(灰色)。四个轮子(绿色)。在Product modeler中,该滑板可表示为以下结构:Reference:对部件或组装部件模型的引用。Instance:实例,给定位置上的引用的模型,该实例所在装配体的引用聚合该实例。Representat...
2019-09-02 15:14:31 1130
原创 3DExperience:PLM的知识点
PLM对象PLM对象有以下几种:PLM ReferencePLM Representation ReferencePLM InstancePLM Representation InstancePLM PortPLM ConnectionPLM对象都有各自标识符,标识符是实现CATIAdpPLMIdentificator接口的组件。不要依赖CATIPLMIdentifierSet...
2019-08-30 17:33:05 1966
原创 3DExperience:回调机制
回调机制是CAA在对象之间实现发布/订阅的方式。对象可以扮演事件发布者的角色,告知订阅了该对象的其他对象在给定事件发生时调用它们。事件发布者和事件订阅者的基类是CATBaseUnknown和CATEventSubscriber。其他类型的回调用于特定的事件,例如在主循环中返回onidle回调、超过指定时间的超时回调或修改文件描述的文件描述符回调。什么是回调机制回调机制提供了发布/订阅功能。用报...
2019-08-29 14:24:47 552
原创 3DExperience:OM(Object Modeler)组件的继承
OM(Object Modeler)组件的继承组件可以由其他组件派生,派生组件可以看做是基组件一种,派生组件拥有基组件的行为和本身的行为。这就是OM-继承,尽管和c++继承相似,但却和C++继承不同。OM组件继承允许代码重用和分解。OM继承使CAADerivedCmp组件能运行继承的CATBaseCmp组件实现的CAAIXX和CAAIYY接口,这与c++派生类实例调用其基类方法的方式相同。...
2019-08-28 18:35:25 575
原创 3DExperience:创建组件和使用智能指针
以前用V5的时候,对组件、接口以及智能指针一知半解,能用,但是理解的不是很透彻,现在在学V6,把百科全书仔细看了一下,好好的理解了一下组件、接口和智能指针创建组件什么是组件组件是构建应用程序的元素。组件是一段你无法修改的可执行代码,但是你可以通过它公开的接口来使用,它隐藏了它的实现细节,即使在运行时也可以由暴露它的另一个组件替换。接口和执行相同的工作,并确保向上兼容使用它的客户端应用程序。...
2019-08-28 12:36:27 1040
原创 V5中CATIProduct在V6的变化
记录一下,需要用的时候便于查看V5中CATIProduct在V6的变化未出现的API表示V6不再支持V5 CATIProductV6 CATIProcutAddProductCreate a PLM Product Reference using either CATIPrdReferenceFactory, CATIPrd3DPartReferenceFactory ...
2019-08-27 15:55:05 668
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人