2014-07-29 19:38:22|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:CAA, CATIA|来源:唯设编程网
2D组件是一个几何和注释的可重用集合。该组件位于图纸页(sheet)中并可以像视图(view)一样进行编辑。这就是该组件被称之为详细(Detail)视图的原因。2D组件可以被多次实例化,每一个实例提供一个包含特定方向,位置和缩放比例的组件。详细视图可以作为CATDrawing在对应实例的同一个drawing中或者在另一个独立的CATDrawing中。
Catalog Browser命令允许从一个外部CATDrawing文档CATDrawing1在新的Drawing文档CATDrawing2中实例化一个副本(ditto)。为了实现该功能,会创建一个Detail Ref的特殊拷贝(Detail Ref2)和一个该拷贝的实例(Ditto Inst1)。Detail Ref2 Detail是一个无法访问并与参考详细(Detail Ref)对应的本地参考(查看图1)。
Detail Ref2不能够直接修改。只有Detail Ref可以被修改。当你对副本(ditto)进行第二次实例化的时候(从Detail Ref),在新的CATDrawing CATDrawing2中,一个新“拷贝”详细(Detail Ref2)的实例被创建(Ditto Inst2)。
在副本(Ditto)实例中,除文字修改以外,其它对象都不可以被修改。
在实例中修改文字:
在实例中的可编辑文字是一个有特殊属性的文字,当一个副本(ditto)被实例化时该属性用以通知系统复制该文字。查看下面在实例中获取可修改对象的方式:
// GetModifiableObjects method allows to retrieve texts modifiable in ditto piDitto CATIADrawingComponent * piMyDrawComp = NULL; HRESULT rc = piMyDitto -> QueryInterface (IID_CATIADrawingComponent,(void**)&piMyDrawComp); if ( SUCCEEDED(rc) ) { long Count = 0; piMyDrawComp -> GetModifiableObjectsCount (Count); for ( int Idx = 1; Idx<=Count; Idx++ ) { CATVariant Variant; rc = BuildVariant ((long)Idx, Variant); if ( SUCCEEDED(rc) ) { CATIABase * piABase = NULL; rc = piMyDrawComp -> GetModifiableObject (Variant, piABase); if ( SUCCEEDED(rc) ) {
这些对象使用在SketcherInterface框架中的2D线框工厂(wire frame factory)创建。在视图(View)上使用QueryInterface可以获取CATI2DWFFactory接口的指针。
注意:
1). 必须激活视图(View) 以处理2D几何元素。当一个视图被激活时,关联的草图(sketch)就进入了编辑模式,因此可以在其中创建几何元素。
2). 如果一个交互式命令处理几何元素,在2D几何元素创建的最后一步,必须执行在CATISketchEditor接口定义的SaveEdition方法。CATISketch接口继承自CATISketchEditor,因此,SaveEdition可以通过CATISketch接口执行。