自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 608

原创 3DExperience:DELMIA的仿真(Simulation)模式

记录:DELMIA仿真利用多线程进行仿真,在仿真时通过仿真控制器能够同步计算一些内容,但是计算中含有到QueryInterface可能会导致内存报错,有时在仿真过程中报错(仿真过程中不强制刷新模型不会报错,但一旦强制刷新模型则会报错),有时在关闭文档时会报错(可能在第二次或第三次关闭时报错)。...

2020-07-25 21:28:08 964

原创 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 577 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 489

原创 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 588 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 443

原创 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 260

原创 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 328

原创 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 328

原创 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 305

原创 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 369

原创 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 408

原创 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 2802

原创 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 339

原创 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 341

原创 3DExperience:记录一些可能会用到的接口以及知识点

从3D Shape得到PLM Representation:CATPLMComponentInterfacesServices::GetPLMComponentOf()从Rep Reference得到3DShape:RetrieveApplicativeContainer(“CATPrtCont”,IID_CATIMmiPrtContainer,(void **) & pContain...

2019-09-05 16:35:29 1003

原创 3DExperience:Product Modeler

从工业实际模型到持久模型Product Modeler简化版滑板是由七个组装好的实体部件组成,属于三种类型:一个板子(粉色)。两个支架(灰色)。四个轮子(绿色)。在Product modeler中,该滑板可表示为以下结构:Reference:对部件或组装部件模型的引用。Instance:实例,给定位置上的引用的模型,该实例所在装配体的引用聚合该实例。Representat...

2019-09-02 15:14:31 1072

原创 3DExperience:PLM的知识点

PLM对象PLM对象有以下几种:PLM ReferencePLM Representation ReferencePLM InstancePLM Representation InstancePLM PortPLM ConnectionPLM对象都有各自标识符,标识符是实现CATIAdpPLMIdentificator接口的组件。不要依赖CATIPLMIdentifierSet...

2019-08-30 17:33:05 1834

原创 3DExperience:回调机制

回调机制是CAA在对象之间实现发布/订阅的方式。对象可以扮演事件发布者的角色,告知订阅了该对象的其他对象在给定事件发生时调用它们。事件发布者和事件订阅者的基类是CATBaseUnknown和CATEventSubscriber。其他类型的回调用于特定的事件,例如在主循环中返回onidle回调、超过指定时间的超时回调或修改文件描述的文件描述符回调。什么是回调机制回调机制提供了发布/订阅功能。用报...

2019-08-29 14:24:47 508

原创 3DExperience:OM(Object Modeler)组件的继承

OM(Object Modeler)组件的继承组件可以由其他组件派生,派生组件可以看做是基组件一种,派生组件拥有基组件的行为和本身的行为。这就是OM-继承,尽管和c++继承相似,但却和C++继承不同。OM组件继承允许代码重用和分解。OM继承使CAADerivedCmp组件能运行继承的CATBaseCmp组件实现的CAAIXX和CAAIYY接口,这与c++派生类实例调用其基类方法的方式相同。...

2019-08-28 18:35:25 518

原创 3DExperience:创建组件和使用智能指针

以前用V5的时候,对组件、接口以及智能指针一知半解,能用,但是理解的不是很透彻,现在在学V6,把百科全书仔细看了一下,好好的理解了一下组件、接口和智能指针创建组件什么是组件组件是构建应用程序的元素。组件是一段你无法修改的可执行代码,但是你可以通过它公开的接口来使用,它隐藏了它的实现细节,即使在运行时也可以由暴露它的另一个组件替换。接口和执行相同的工作,并确保向上兼容使用它的客户端应用程序。...

2019-08-28 12:36:27 950

原创 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 614

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除