CAA二次开发 CGM模型四种操作方式 数学操作 几何操作 拓扑操作 特征操作
2017-12-18 19:24
531 查看
CAA二次开发 CGM模型四种操作方式 数学操作 几何操作 拓扑操作 特征操作
CGM模块中的操作CGM模块中的操作有细分、几何、拓扑、数学,本文主要讲基本几何操作。
1. 概要
以下为个人体会,希望能给初学者带来帮助。在通过CAA 对CATIA 进行二次开发过程中经常会使用图形操作,如投影、做点线面等。在CGM操作中,(CTCGMOperation)有数学操作,几何操作,拓扑操作和特征操作。不同操作的使用范围不同,占用时间和资源不同,所需元素的级别也不同。占用内存和时间排序:特征操作>拓扑操作>几何操作>数学操作。以点为例,元素级别如下:
特征->拓扑->几何 ->数学
CATISpectobject->CATVertex->CATPoint->CATMathPoint
初学者在创建基本图形及操作时常用CATISpectobject,及GSM工厂创建,此为特征级操作。特征级操作结果可以直接挂树,便于显示查看,但在做大型运算时,特征级别运算速度慢且消耗内存较多,因此合理结合使用几何和拓扑操作可以有效提高效率。对于catia中的曲面或其他基本几何,在被创建时底层几何既定,无论经过任何特征操作或拓扑操作都不会改变其底层几何。比如通过创成式模块中的分割将一张大面分割成一个小面,分割模型的特征面和拓扑面以及改变了,单其底层几何并未改变。
因此,根据需求不同,算法中可以选取不同的操作。
2. 数学操作
CAA中数学操作较为简单,主要类为:CATMathPoint CATMathVector CATMathLine CATMathAxisCATMathTransformation
3. 几何操作
几何操作有两种方式:公有类几何操作和成员函数几何操作,两种方式的工厂均为CATGeoFactory(1)公有类几何操作
公有类几何操作Geo工厂创建如下:
CATGeoFactory* piGeomFactory = ::CATCreateCGMContainer() ; if (NULL==piGeomFactory) return (1);
下图为常用的共有类几何操作,请见CATGeoOperation ,公有类几何操作有两种运行方式
BASIC方式:使用公有类操作时,若无特殊指定,则为basic模式。方法为:创建 ->Get
使用例子如下:
CATDistanceMinPtCrv* FirstPtCrv = CreateDistanceMin(pGeoFactory,FirstMathPoint,FirstCurve); CATDouble dis= FirstPtCrv->GetDistance();
Advanced方式:创建->Set->Run->Get
(2)成员函数几何操作
即CATGeoFactory 下的Create操作,如下图。 优势:涵盖各种基础操作,处理速度极快,处理Underlying geometry层面元素,如CATSurface等 劣势:一般用于中间过程运算,结果是几何元素,无法显示出来。挂树需转为特征
CATGeoFactory 创建方式与公有类方式不同:
CATGeoFactory * piGeomFactory; CATDocument * pDocument = NULL ; pDocument = piLinkableObject->GetDocument(); rc = pDocument->QueryInterface(IID_CATIContainerOfDocument, (void**)&pIContainerOfDocumentOnDoc); rc = pIContainerOfDocumentOnDoc->GetResultContainer(pIContainer); rc = pIContainer->QueryInterface(IID_CATGeoFactory, (void**)&piGeomFactory);
4. 拓扑操作
CATTopOperatorTopologicalOperators Global Function-长毛的月亮
拓扑操作是基于拓扑层 CATBody 进行求解计算的,关于 Body 在百科全书中有详细的介绍,我们姑且认为它是用于描述各种几何要素之间相互关系的,一个点、一条线、一个三维实体都有与之对应的 Body。与拓扑操作对应的是基于特征操作和几何操作,有时求解一个问题三种操作方法都能实现,与基于特征操作相比,拓扑操作的优点在于不会修改模型,不会树上创建特征,使用完结果 Body 后可以从 Container 中 Remove 掉,不再占用内存。
例子:创建->Get
CATSolidCylinder *pCylinderOp = ::CATCreateSolidCylinder(piGeomFactory, &topdata,axisStart, axisEnd,radius); // Gets the resulting body (the operator is run at its creation) CATBody *piCylinderBody = NULL; piCylinderBody = pCylinderOp->GetResult();
4. 特征操作
特征操作主要为 CATIGSMFactory(创成式设计)、CATIPrtFactory(零件设计)操作元素都是特征级(CATISpectObject),输入结果也都是特征级(CATISpectObject)。优点:涵盖caita创成式设计所有功能,创建结果直接可以挂树,便于树处理。
缺点:特征(CATISpectObject)的创建时为了实现复杂的QI需要创建大量COM接口,(复杂程度如下)创建消耗时间很长,占据内存很大,
并且特征操作内存则会一直增长,即使把特征删掉也没有用,它会缓存在 undo/redo 中,除非野蛮地使用 CATAfrUnlockUndoRedoTransactions()将 undo/redo 关掉。相关文章推荐
- CAA二次开发 CGM模型四种操作方式 数学操作 几何操作 拓扑操作 特征操作
- Creo二次开发:查找文件件下具有某种几何特征的模型
- openfire插件开发的四种方式
- java中四种操作xml方式的比较(摘抄)
- SVN二次开发——让SVN、TSVN(TortoiseSVN)支持windows的访问控制模型、NTFS ADS (可选数据流、NTFS的安全属性)
- java中四种操作xml方式的比较
- JAVAWEB开发之Spring详解之——Spring事务管理详解(四种事务管理方式)
- MOSS 2010:Visual Studio 2010开发体验(24)——如何在浏览器中直接对BCS模型直接进行编辑和新增操作
- IOS种四种持有化数据方式——(2)对模型对象进行归档
- Android开发——异步更新UI的四种方式
- hadoop开发方式总结及操作指导
- Android游戏开发之多线程的操作方式(二十六)
- Android游戏开发之多线程的操作方式(二十六)
- Revit二次开发高级专题讲座:访问Revit模型中的几何数据以及对象间关系判断方法(点击下载)
- Java中对XML四种操作方式的使用
- Ecmall二次开发-增删改查操作
- java操作(DOM、SAX、JDOM、DOM4J)xml方式的四种比较与详解
- java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式详解与比较
- discuzx3.2自定义积分操作日志,discuzx积分二次开发完全记录
- 【iOS-Cocos2d游戏开发之十九】游戏数据存储的四种常用方式NSKeyedArchiver/NSUserDefaults/Write写入/SQLite3