iCAx开思网
标题:
CAA交互模式的参数化设计
[打印本页]
作者:
cwk_seu
时间:
2011-12-17 18:52
标题:
CAA交互模式的参数化设计
想做一个交互模式的参数化的例子,现在交互界面做好了(如图),参数化驱动程序写完了,但是运行时一直有点问题,感觉应该是获取参数列表和参数赋值有问题,但一直解决不了,功能实现的主要代码如下,程序框架在附件上,请指点。
//内存中加载零件
HRESULT rc=E_FAIL;
CATDocument * pDocument=NULL;
CATUnicodeString ModelDocName="F:\savefile\catia_development\zhou.CATPart";
rc = CATDocumentServices::OpenDocument(ModelDocName,pDocument);
if (SUCCEEDED(rc))
{
CATInit *pInitOnDoc=NULL;
rc = pDocument->QueryInterface(IID_CATInit,(void**)&pInitOnDoc);
//获取零件的根容器
CATIPrtContainer *pIPrtCont = NULL;
pIPrtCont=(CATIPrtContainer *)pInitOnDoc->GetRootContainer("CATIPrtContainer");
//获取零件设计特征
CATISpecObject_var spSpecObjectPart = pIPrtCont->GetPart();
if (NULL_var != spSpecObjectPart)
{
//获取参数列表
CATIParmPublisher * pIParmPublisher = NULL;
rc = spSpecObjectPart->QueryInterface(IID_CATIParmPublisher,(void**)&pIParmPublisher);
if (SUCCEEDED(rc))
{
CATUnicodeString L1="L1";
CATUnicodeString L2="L2";
CATLISTV (CATISpecObject_var) List ;
CATICkeParm *pICkeParm = NULL;
pIParmPublisher->GetAllChildren("CATICkeParm",List);
int Nb = List.Size();
if ( Nb >= 1 )
{
CATISpecObject_var specObj = List[1] ;
rc = specObj->QueryInterface(IID_CATICkeParm,(void**) &pICkeParm);
}
//根据特征尺寸依次获取参数并赋值
if (pICkeParm->Name()==L1)
{
L1=pICkeParm->Content();
CATUnicodeString msg;
double OutputReal;
msg = _pL1Editor->GetText();
int IsConversionOK = msg.ConvertToNum(&OutputReal);
OutputReal = OutputReal/1000;
pICkeParm->Valuate(OutputReal);
}
else
{
L2=pICkeParm->Content();
msg = _pL2Editor->GetText();
int IsConversionOK = msg.ConvertToNum(&OutputReal);
OutputReal = OutputReal/1000;
pICkeParm->Valuate(OutputReal);
}
ObjectUpdate(spSpecObjectPart);
}
}
}
作者:
cwk_seu
时间:
2011-12-21 21:12
高手,指点一下吧
作者:
linlily0925
时间:
2012-1-11 16:34
得到参数名字的时候,试着将CATICkeParm转化为CATIAlias,然后再GetAlias方法返回的CATUnicodeString应该就是用户看到的参数的名字,因为CATICkeParm接口下有几个得到名字的方法,~~~不同的方法返回的名字不一样~~
作者:
raul665
时间:
2012-2-4 14:34
求楼主指点,我也在做一个类似的东西
作者:
liushaowei
时间:
2013-11-4 21:17
你的菜单是在通用的workshop里吧,怎么运行没找不到你的菜单啊
作者:
liushaowei
时间:
2013-11-4 21:17
而且编译时一堆错误,一个个改好了
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3