|
设置图形属性
实现CATIVisProperties接口
CAAPstIntegrateNewFeatures > CAAPstINFCreateDocument > CAAPstINFInitCont > CAAPstINFNavigate > CAAPstINFVisu > CAAPstINFGraphicalProperties > CAAPstINFEdit > CAAPstINFCCP > CAAPstINFDelete > CAAPstINFUpdate
摘要本文展示了如何实现CATIVisProperties接口。 它使您能够将图形属性与特征相关联。 但是,有时,实现CATIVisProperties 接口是不够的,您应该覆盖CATIVisu接口的CATExtIVisu适配器类的方法。 本文也对其进行了描述。您将从这个用例中学到什么CAAPstINFGraphicProperties用例CAAPstINFGraphicProperties实现了什么怎样启动CAAPstINFGraphicProperties在哪可以找到 CAAPstINFGraphicProperties代码步骤总之引用 |
- 您将从这个用例中学到什么
- CAAPstINFGraphicProperties用例
- CAAPstINFGraphicProperties实现了什么
- 怎样启动CAAPstINFGraphicProperties
- 在哪可以找到 CAAPstINFGraphicProperties代码
摘要本文展示了如何实现CATIVisProperties接口。 它使您能够将图形属性与特征相关联。 但是,有时,实现CATIVisProperties 接口是不够的,您应该覆盖CATIVisu接口的CATExtIVisu适配器类的方法。 本文也对其进行了描述。您将从这个用例中学到什么CAAPstINFGraphicProperties用例CAAPstINFGraphicProperties实现了什么怎样启动CAAPstINFGraphicProperties在哪可以找到 CAAPstINFGraphicProperties代码步骤总之引用 |
您将从这个用例中学到什么
在阅读本文之前,建议阅读"图形属性"技术文章[1],以了解图形属性在可视化机制中的处理方式。 它基于三个接口:
- CATIVisProperties, 主接口允许将一种或多种类型的几何图形与特征相关联。每个几何体类型都是CATVISGometype。 作为主要的预定义类型,有点类型(CATVPPoint)、线型(CATVPLine或CATVPEdge)或曲面类型(CATVPMesh)。 每种类型的几何图形都将一组图形特性重新组合在一起。颜色、线型等此类属性是CATVisPropertyType
- CATIProperty,保存图形属性的接口。该接口是在每个特征上本机实现的。
- 该接口源于CATIVisu,使用CATIVisProperties将图形特性与图形表示相关联。
当您想要将图形特性与功能关联时,需要问三个问题:
- 要在特征上修改哪些图形特性?
- "图形属性"工具栏中显示的图形属性所涉及的几何图形类型有哪些?
- CATIVisu是否正确实现,以修改与特征相关的图形表示?
在本用例中,您将了解:
- 要实现CATIVisProperties接口:IsGeomTypeDefined方法和GetSubTypeFromPath方法分别回答了第一个和第二个问题。
- 必要时,覆盖CATIVisu 接口的CATExtIVisu适配器类的某些方法
[置顶]
CAAPstINFGraphicProperties用例
CAAPstINFGraphicProperties是http://CAAProductStructure.edu框架的一个用例,说明了Visualization和GeometryVisualization框架的功能。
[置顶]
CAAPstINFGraphicProperties实现了什么
此用例允许修改CAAPstINFPoint、CAAPstINFWire和CAAPstINFLine特征的图形属性。 有关这三个特性的更多详细信息,请参阅"创建新的StartUp目录"用例[2]。 由“"在产品文档中‘从头开始’创建新特征"用例[3]创建的文档CAAPstINFDocument[图1]包含这些特征的一些实例。
在选择“属性”命令(上下文菜单或“编辑”菜单)时,可以修改这些特征的某些图形属性。 看一个例子 [图.2] 您可以获得:
图2: 经过一些图形修改后的CAAPstINFDocument文档 | 你可以在上面看到
- 在CAAPstINFPoint2特征上:符号的颜色和类型已更改
- 在CAAPstINFLine1特征上:线条的颜色、厚度和类型都发生了变化
- 在CAAPstINFWire1特征上:标记的颜色和符号发生了变化,线条的颜色、厚度和类型也发生了变化。 请注意,现在,我们可以区分为线创建的标记和为点创建的标记。 在之前的图像[图1]中,视觉区分是不可能的,因为标记具有相同的表示(白色十字)。
这是可能的,因为:
- CATIVisProperties接口在三个特征上的实现:CAAPstINFPoint, CAAPstINFWire和 CAAPstINFLine,
- 为相同的功能覆盖(或不覆盖)CATI3DGeoVisu接口的CATExtIVisu类适配器的某些方法。
如果您阅读了"图形属性"[1] 技术文章,更准确地说是"可视化过程中图形属性的集成"部分,您就会知道可视化过程调用以下方法之一来更新图形表示(CATRep类):
- SetPointGraphicAttribute
- SetLineGraphicAttribute
- SetMeshGraphicAttribute
- SetEdgeGraphicAttribute
- SetAsmGraphicAttribute
- SetOtherGeomTypeGraphicAttribute
更准确地说,它是一个或多个被调用的方法。 它取决于特征定义的几何体类型的数量。 本文介绍了SetPointGraphicAttribute和SetLineGraphicAttribute方法的重写。
[置顶]
如何启动CAAPstINFGraphicProperties
有关如何启动该用例的详细描述,请参阅"在产品结构中集成新特征"用例中标题为"如何启动CAAPstIntegrateNewFeatures用例"的部分。
具体来说,本文中描述的代码是在将产品文档(您可以使用CAAPstINFDocument.CATProduct文档,该文档位于http://CAAProductStructure.edu 框架的CNext/resources/graphic目录[图1])加载到CATIA会话中时执行的。
CAAPstINFDocument.CATProduct加载后的交互场景:
- 单击CAAPstINFPoint2上的左侧按钮
- 按钮右键,单击属性命令
- 此时会出现属性对话框
- 单击图形选项卡
- 在点框中
- 在颜色组合框中选择一种颜色
- 在符号组合框中选择新符号
- Click button left on the CAAPstINFLine1
- 按钮右键,单击属性命令
- 此时会出现属性对话框
- 单击图形选项卡
- 在直线和曲线框中
- 在颜色组合框中选择一种颜色
- 在线型组合框中选择线型
- 在宽度组合框中选择宽度(线宽)
- Click button left on the CAAPstINFWire1
- 按钮右键,单击属性命令
- 此时会出现属性对话框
- 单击图形选项卡
- 在点框中
- 在颜色组合框中选择一种颜色
- 在符号组合框中选择新符号
- 在直线和曲线框中
- 在颜色组合框中选择一种颜色
- 在线型组合框中选择线型
- 在宽度组合框中选择宽度(线宽)
[置顶]
在哪可以找到CAAPstINFGraphicProperties代码
CAAPstINFGraphicProperties用例由位于http://CAAProductStructure.edu框架的CAAPstINFModeler.m模块中的源文件组成。
Windows | InstallRootDirectory\http://CAAProductStructure.edu\CAAPstINFModeler.m\ | Unix | InstallRootDirectory/http://CAAProductStructure.edu/CAAPstINFModeler.m\ |
Windows | InstallRootDirectory\http://CAAProductStructure.edu\CAAPstINFModeler.m\ | Unix | InstallRootDirectory/http://CAAProductStructure.edu/CAAPstINFModeler.m\ |
Windows | InstallRootDirectory\http://CAAProductStructure.edu\CAAPstINFModeler.m\ | Unix | InstallRootDirectory/http://CAAProductStructure.edu/CAAPstINFModeler.m\ |
Windows | InstallRootDirectory\http://CAAProductStructure.edu\CAAPstINFModeler.m\ | Unix | InstallRootDirectory/http://CAAProductStructure.edu/CAAPstINFModeler.m\ |
其中InstallRootDirectory是安装CAA CD-ROM的目录。
[置顶]
步骤
CAAPstINFGraphicProperties的主要步骤是:
- 创建CATIVisProperties数据扩展
- 处理直线特征
- 处理点特征
- 处理线特征
[置顶]
创建CATIVisProperties数据扩展
对于这三个特征,在创建数据扩展时实现了CATIVisProperties接口。 简而言之,只描述了CAAPstINFPoint特征的情况。 对于直线和线,分别通过CAAPstINFLine和CAAPstINFWire更改CAAPstINFPoint。
#ifndef CAAEPstVisPropertiesPoint_H#define CAAEPstVisPropertiesPoint_H#include "CATExtIVisProperties.h" // 需要从中派生class CAAEPstVisPropertiesPoint : public CATExtIVisProperties{ CATDeclareClass; public: CAAEPstVisPropertiesPoint(); virtual ~CAAEPstVisPropertiesPoint(); HRESULT IsGeomTypeDefined(CATVisGeomType & iGeomType) ; HRESULT GetSubTypeFromPath(CATPathElement & iPathElement, CATVisPropertyType iPropertyType, CATVisGeomType & oGeomType, unsigned int & oPropertyNumber) ; private: CAAEPstVisPropertiesPoint(const CAAEPstVisPropertiesPoint &iObjectToCopy); CAAEPstVisPropertiesPoint & operator = (const CAAEPstVisPropertiesPoint &iObjectToCopy);};#endif | CAAEPstVisPropertiesPoint C++类派生自CATIVisProperties,即CATExtIVisProperties接口的适配器类。 CATDeclareClass宏声明CAAEPstVisPropertiesPoint类属于组件。 复制构造函数和"="运算符设置为私有,以防止编译器自动将其创建为公共。
公共方法(构造函数和析构函数除外)是在CATIVisProperties接口中定义的方法
//Local Framework#include "CAAEPstVisPropertiesPoint.h"#include "TIE_CATIVisProperties.h"TIE_CATIVisProperties(CAAEPstVisPropertiesPoint);CATImplementClass(CAAEPstVisPropertiesPoint, DataExtension, CATBaseUnknown, CAAPstINFPoint);CAAEPstVisPropertiesPoint::CAAEPstVisPropertiesPoint(){}CAAEPstVisPropertiesPoint::~CAAEPstVisPropertiesPoint(){}... | CAAEPstVisPropertiesPoint类表示,由于TIE_CATIVisProperties宏,它实现了CATIVisProperties接口。 此扩展类专用于CAAPstINFPoint特征。 CATImplementClass宏声明,由于DataExtension关键字,CAAEPstVisPropertiesPoint类是一个数据扩展类,并且它扩展了主类为CAAPstINFPoint的组件。 第三个参数必须始终设置为CATBaseUnknown(未使用的参数)
构造函数和析构函数为空。
...HRESULT CAAEPstVisPropertiesPoint::IsGeomTypeDefined(CATVisGeomType & iGeomType){ 请参见point的实现 请参见line 的实现 请参见wire的实现} ... | 该方法的目标是在输入参数iGeomType可用于特征时返回S_OK,否则返回E_FAIL。 本文稍后将针对每个特性解释此方法。
...HRESULT CAAEPstVisPropertiesPoint::GetSubTypeFromPath(CATPathElement & iPathElement, CATVisPropertyType iPropertyType, CATVisGeomType & oGeomType, unsigned int & oPropertyNumber){ see the implementation for the point see the implementation for the line see the implementation for the wire} | 自动调用此方法以更新"图形属性"工具栏。 此工具栏包含用于修改颜色、线类型等的组合... 所选特征的。 该方法的目标是返回与工具栏修改有关的输入图形特征iPropertyType的几何图形类型oGeomType。 返回的几何图形类型当然必须由特征定义。
评论:
- oPropertyNumber 未被可视化机制使用,因此以零对其进行评估。
- 不要处理属性CATVPGlobalType的类型。这是通过可视化机制完成的。
本文稍后将针对每个特特征解释此方法。
在专用于http://CAAProductStructure.edu框架的接口字典中,有必要添加以下行, 以表明CAAPstINFPoint、CAAPstINFLine和CAAPstINFWire 特征在libCAAPstINFModeler模块中实现了CATIVisProperties 接口。
...CAAPstINFPoint CATIVisProperties libCAAPstINFModelerCAAPstINFine CATIVisProperties libCAAPstINFModelerCAAPstINFWire CATIVisProperties libCAAPstINFModeler... | [置顶]
处理直线特征
CAAPstINFLine特征由构成它的两个CAAPstINFPoint之间的一条直线以图形方式表示。 请参阅"启用产品文档中新特征的可视化"[4]一文,了解如何实现CATI3DGeoVisu接口的BuildRep方法。
- CATIVisProperties接口的IsGeomTypeDefined方法
HRESULT CAAEPstVisPropertiesLine::IsGeomTypeDefined(CATVisGeomType & iGeomType){ HRESULT rc = E_FAIL ; if ( (CATVPLine == iGeomType) || (CATVPGlobalType == iGeomType) ) rc = S_OK ; return rc ;} | CAAPstINFLine特征定义CATVPLine几何类型,以修改直线的颜色、宽度和类型。 CATVPGlobalType类型允许修改显示/不显示标志、拾取/不拾取标志、lowint标志和层数。
- CATIVisProperties接口的GetSubTypeFromPath方法
HRESULT CAAEPstVisPropertiesLine::GetSubTypeFromPath(CATPathElement & iPathElement, CATVisPropertyType iPropertyType, CATVisGeomType & oGeomType, unsigned int & oPropertyNumber){ HRESULT rc = E_FAIL ; switch ( iPropertyType ) { case CATVPColor: case CATVPLineType: case CATVPWidth: oGeomType = CATVPLine ;c rc = S_OK ; break; } oPropertyNumber = 0 ; return rc ;} | 对于CAAPstINFLine特征,没有歧义。对于CATVPColor、CATVPLineType和CATVPWidth属性,几何体的类型为CATVPLine。
几何体的类型是CATVPLine,因此关注的是CATExtIVisu 适配器类的SetLineGraphicAttribute方法。 CAAPstINFLine特征的图形表示为CAT3DCustomRep,其中包含一个图形原型CAT3DLineGP。 因此,CATExtIVisu 适配器类的默认实现将正确处理属性修改。没有必要覆盖此方法。
[置顶]
处理点特征
CAAPstINFPoint特征由标记图形表示。请参阅"启用产品文档中新特征的可视化"[4]一文,了解如何实现CATI3DGeoVisu接口的BuildRep方法。
- CATIVisProperties接口的IsGeomTypeDefined方法
HRESULT CAAEPstVisPropertiesPoint::IsGeomTypeDefined(CATVisGeomType & iGeomType){ HRESULT rc = E_FAIL ; if ( (CATVPPoint == iGeomType) || (CATVPGlobalType == iGeomType) ) rc = S_OK ; return rc ;} | CAAPstINFPoint特征定义CATVPPoint几何类型,以修改标记的颜色和符号。 CATVPGlobalType类型允许修改显示/不显示标志、拾取/不拾取标志、lowint标志和层数。
- CATIVisProperties接口的GetSubTypeFromPath方法
HRESULT CAAEPstVisPropertiesPoint::GetSubTypeFromPath(CATPathElement & iPathElement, CATVisPropertyType iPropertyType, CATVisGeomType & oGeomType, unsigned int & oPropertyNumber){ HRESULT rc = E_FAIL ; switch ( iPropertyType ) { case CATVPColor: case CATVPSymbol: oGeomType = CATVPPoint ; rc = S_OK ; break; } oPropertyNumber = 0 ; return rc ;} | 对于CAAPstINFPoint特征,没有任何歧义,对于CATVPColor和CATVPSymbol属性,几何体类型为CATVPPoint。
几何体的类型是CATVPPoint ,因此关注的是CATExtIVisu适配器类的SetPointGraphicAttribute方法。 CAAPstINFLine特征的图形表示是一个CAT3DCustomRep,其中包含一个图形原形CAT3DMarkerGP。 因此,CATExtIVisu适配器类的默认实现将无法正确处理属性修改。有必要覆盖此方法。
此方法的目标是修改标记的颜色(CATVPColor)和符号(CATVPSymbol)。 对于CATVPAllPropertyType,必须更改颜色和符号。
void CAAEPstINFVisuPoint::SetPointGraphicAttribute(CATRep *iRep, CATVisPropertyType iPropertyType, CATVisPropertiesValues & iPropertyValue){ if ( NULL == iRep ) return; CAT3DCustomRep * pRepPoint = (CAT3DCustomRep *) iRep ; // 符号属性 if ( (iPropertyType == CATVPAllPropertyType ) || ( iPropertyType == CATVPSymbol)) { // 检索新符号 unsigned int NewSymbol; if (SUCCEEDED(iPropertyValue.GetSymbol(NewSymbol))) { // 检索当前GP CATGraphicPrimitive * pOldGP = pRepPoint->GetGP(0) ; if ( NULL != pOldGP ) { CAT3DMarkerGP * pOldPointGP = (CAT3DMarkerGP *) pOldGP ; // 检索坐标点和当前符号 float * points; int nbPoints; SymbolType OldSymbol; pOldPointGP->Get(&points, &nbPoints, &OldSymbol); if ( NewSymbol != OldSymbol ) { // 使用新符号创建新标记 CAT3DMarkerGP * pNewPointGP = new CAT3DMarkerGP(points,1,(SymbolType) NewSymbol); //用相同的图形属性替换标记 pRepPoint->Modify(pOldPointGP,pNewPointGP,NULL); //必须删除旧的GP CATGraphicPrimitive::Destroy(pOldPointGP); pOldPointGP = NULL ; } } } } ...} | CAT3DMarkerGP的符号未设置到CATGraphicAttributeSet实例中。 该值在图形原型(GP)构造中给出。 因此,要改变它,必须创建一个新的GP。
如果新符号与当前符号不同,将创建新的CAT3DMarkerGP。 由于CAT3DCustomRep类的Modify方法,新的GP取代了旧的GP。 由于使用了Destroy方法,必须销毁旧的GP。
... // 颜色属性 if ( (iPropertyType == CATVPAllPropertyType ) || ( iPropertyType == CATVPColor)) { CATGraphicAttributeSet * pAg = &(pRepPoint->GetAttribut(0)); SetGraphicAttributeSet (pAg, CATVPColor, iPropertyValue); }} | 颜色在与CAT3DCustomRep的第一(0)个GP关联的CATGraphicAttributeSet实例上修改。 由于GetAttribut方法,您可以检索到它。 SetGraphicAttributeSet方法允许在pAg图形属性上修改iPropertyValue参数上读取的CATVPColor属性。
[置顶]
处理线特征
CAAPstINFWire特征以图形方式表示标记和每个标记之间的线。每个标记之间的线。请参阅"启用产品文档中新特征的可视化"[4]一文,了解如何实现CATI3DGeoVisu接口的BuildRep方法。
- CATIVisProperties接口的IsGeomTypeDefined方法
HRESULT CAAEPstVisPropertiesWire::IsGeomTypeDefined(CATVisGeomType & iGeomType){ HRESULT rc = E_FAIL ; if ( (CATVPLine == iGeomType) || (CATVPPoint == iGeomType) || (CATVPGlobalType == iGeomType) ) rc = S_OK ; return rc ;} | CAAPstINFWire特征定义CATVPLine几何类型以修改线的颜色、宽度和类型,并定义CATVPPoint几何类型以修改标记的颜色和符号。 CATVPGlobalType类型允许修改显示/不显示标志、拾取/不拾取标志、lowint标志和层数。
- CATIVisProperties接口的GetSubTypeFromPath方法
HRESULT CAAEPstVisPropertiesWire::GetSubTypeFromPath(CATPathElement & iPathElement, CATVisPropertyType iPropertyType, CATVisGeomType & oGeomType, unsigned int & oPropertyNumber){ HRESULT rc = E_FAIL ; switch ( iPropertyType ) { case CATVPColor: case CATVPLineType: case CATVPWidth: oGeomType = CATVPLine ; rc = S_OK ; break; case CATVPSymbol: oGeomType = CATVPPoint ; rc = S_OK ; break; } oPropertyNumber = 0 ; return rc ;} | 对于CATVPLineType、CATVPWidth和CATVPSymbol属性类型,没有歧义,它是线型几何体的CATVPLine或标记的CATVPPoint。 但对于颜色,可以在线条和标记几何体之间进行选择。这里的选择是CATVPLine。
几何图形的类型为CATVPPoint和CATVPLine,因此CATExtIVisu类适配器的相关方法为SetPointGraphicAttribute和SetLineGraphicAttribute。 CAAPstINFWire特征的图形表示是一个CAT3DCustomRep,它包含两个图形原型: 具有N个点的CAT3DMarkerGP和具有相同点的CAT3DLineGP。 默认的SetPointGraphicAttribute方法不处理CAT3DCustomRep,默认的SetLineGraphicAttribute修改CAT3DCustomRep的所有图形原型,而不测试图形原型的类型。 有必要覆盖这两种方法。
该方法的目标是修改所有标记的颜色(CATVPColor)和符号(CATVPSymbol)。 对于CATVPAllPropertyType,必须更改颜色和符号。
void CAAEPstINFVisuWire::SetPointGraphicAttribute(CATRep *iRep, CATVisPropertyType iPropertyType, CATVisPropertiesValues & iPropertyValue){if ( NULL == iRep ) return; CAT3DCustomRep * pRepWire = (CAT3DCustomRep *) iRep ; // 检索CAT3DMarkerGP int NbGP = pRepWire->GetGPSize(); if ( NbGP != 2 ) return ; CATGraphicPrimitive * pGP = pRepWire->GetGP(0) ; if ( 0 == pGP->IsAKindOf("CAT3DMarkerGP") ) return; // 更改符号 if ( (iPropertyType == CATVPAllPropertyType ) || ( iPropertyType == CATVPSymbol)) { // Retrieve the new symbol unsigned int NewSymbol; if (SUCCEEDED(iPropertyValue.GetSymbol(NewSymbol))) { // 检索当前GP CAT3DMarkerGP * pOldPointGP = (CAT3DMarkerGP *) pGP ; if ( NULL != pOldPointGP ) { // 检索坐标的点和当前符号 float * points; int nbPoints; SymbolType OldSymbol; pOldPointGP->Get(&points, &nbPoints, &OldSymbol); if ( NewSymbol != OldSymbol ) { // 使用新符号创建新标记 CAT3DMarkerGP * pNewPointGP = new CAT3DMarkerGP(points,nbPoints,(SymbolType) NewSymbol); //用相同的图形属性替换标记 pRepWire->Modify(pOldPointGP,pNewPointGP,NULL); //必须删除旧的GP CATGraphicPrimitive::Destroy(pOldPointGP); pOldPointGP = NULL ; } } } } // 更改颜色 if ( (iPropertyType == CATVPAllPropertyType ) || ( iPropertyType == CATVPColor)) { // 标记的颜色已修改 CATGraphicAttributeSet * pAg = &(pRepWire->GetAttribut(0)); SetGraphicAttributeSet (pAg, CATVPColor, iPropertyValue); } } | 该方法与CAAPstINFPoint特征的方法稍有相同。 区别在于在CAT3DCustomRep中检索CAT3DMarkerGP。 如果在CAAPstINFPoint情况下,图形原型是唯一的,使用CAAPstINFWire,CAT3DCustomRep在创建时第一个位置包含标记GP,第二个位置包含直线GP。 始终保持此顺序,因为即使必须删除CAT3DMarkerGP才能修改符号,Modify方法也会用新的GP替换旧的GP。
该方法的目标是修改所有直线的颜色(CATVPColor)、厚度(CATVPLineType)和线条类型(CATVPLineType)。 对于CATVPAllPropertyType,必须更改这三个属性。
void CAAEPstINFVisuWire::SetLineGraphicAttribute(CATRep *iRep, CATVisPropertyType iPropertyType, CATVisPropertiesValues & iPropertyValue){ if ( NULL == iRep ) return; CAT3DCustomRep * pRepWire = (CAT3DCustomRep *) iRep ; // 测试第二个GP是否为包含直线的GP int NbGP = pRepWire->GetGPSize(); if ( NbGP != 2 ) return ; CATGraphicPrimitive * pGP = pRepWire->GetGP(1) ; if ( 0 == pGP->IsAKindOf("CAT3DLineGP") ) return ; // 更改厚度 if ( (iPropertyType == CATVPAllPropertyType ) || ( iPropertyType == CATVPWidth)) { CATGraphicAttributeSet * pAg = &(pRepWire->GetAttribut(1)); SetGraphicAttributeSet (pAg, CATVPWidth, iPropertyValue); } // 改变类型 if ( (iPropertyType == CATVPAllPropertyType ) || ( iPropertyType == CATVPLineType )) { CATGraphicAttributeSet * pAg = &(pRepWire->GetAttribut(1)); SetGraphicAttributeSet (pAg, CATVPLineType, iPropertyValue); } // 改变颜色 if ( (iPropertyType == CATVPAllPropertyType ) || ( iPropertyType == CATVPColor)) { CATGraphicAttributeSet * pAg = &(pRepWire->GetAttribut(1)); SetGraphicAttributeSet (pAg, CATVPColor, iPropertyValue); }} | 对于线图形属性,它比点更容易,所有属性都在CATGraphicAttributeSet值上。 CAT3DLineGP是CAT3DCustomRep的第二个图形原型,要修改的CATGraphicAttributeSet值是由GetAttribut方法返回的值,参数为1。
[置顶]
总之
本文说明了如何实现CATIVisProperties以将图形特性与要素相关联。 此接口有一个适配器类CATExtIVisProperties,,其两个方法将被覆盖:
该方法定义了由特征定义的属性类型。 A type 几何图形类型是一种CATVisGeomType,其主要预定义值为: CATVPPoint, CATVPLine, CATVPEdge , CATVPMesh 和 CATVPGlobalType
此方法为"图形属性"工具栏中显示的每个属性定义受影响的几何体类型。
图形表示考虑了图形属性,这得益于CATIVisu接口的CATExtIVisu类适配器的方法: SetPointGraphicAttribute, SetLineGraphicAttribute,等。 当这些方法的默认实现无法正确修改特征的图形表示时,有必要覆盖它们。
[置顶]
引用
[1] | 图形属性 | [2] | 创建新的StartUp目录 | [3] | 在产品文档中" 从头开始"创建新特征 | [4] | 实现产品文档中新功能的可视化 | [置顶]
历史版本
版权所有 2002, 达索系统. 保留所有权利. |
|