找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 19062|回复: 5
打印 上一主题 下一主题

[讨论] CAA交互模式的参数化设计

[复制链接]
跳转到指定楼层
1
发表于 2011-12-17 18:52:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

想做一个交互模式的参数化的例子,现在交互界面做好了(如图),参数化驱动程序写完了,但是运行时一直有点问题,感觉应该是获取参数列表和参数赋值有问题,但一直解决不了,功能实现的主要代码如下,程序框架在附件上,请指点。

//内存中加载零件
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);
  }
}
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 赞一下!赞一下!
推荐
发表于 2013-11-4 21:17:22 | 只看该作者
而且编译时一堆错误,一个个改好了
2
发表于 2011-12-21 21:12:51 | 只看该作者
高手,指点一下吧
3
发表于 2012-1-11 16:34:27 | 只看该作者
得到参数名字的时候,试着将CATICkeParm转化为CATIAlias,然后再GetAlias方法返回的CATUnicodeString应该就是用户看到的参数的名字,因为CATICkeParm接口下有几个得到名字的方法,~~~不同的方法返回的名字不一样~~
4
发表于 2012-2-4 14:34:14 | 只看该作者
求楼主指点,我也在做一个类似的东西
5
发表于 2013-11-4 21:17:02 | 只看该作者
你的菜单是在通用的workshop里吧,怎么运行没找不到你的菜单啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-27 15:04 , Processed in 0.024382 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表