iCAx开思工具箱

标题: 参数化求助 [打印本页]

作者: cwk_seu    时间: 2011-12-21 21:13
标题: 参数化求助
在做一个参数化的例子,大体的流程是,在catia窗口打开一个三维零件(只有两个拉伸凸台特征,其中拉伸高度是想参数化的尺寸),通过菜单调出对话框,在对话框里输入两个拉伸凸台的高度值,点击确定完成模型更新,现在程序编译和运行都没问题,但是功能实现不了,模型不能更新,整了好几天没搞定,非常郁闷,求高手指点迷经!!

确定按钮响应函数程序如下(蓝色部分是参数赋值程序):
void TestDialog::OnOK(CATCommand* cmd, CATNotification* evt, CATCommandClientData data)
{
  // Add your code here
//获取当前零件文档
HRESULT rc=E_FAIL;
CATDocument * pDocument=NULL;
CATFrmEditor* pEditor=CATFrmEditor::GetCurrentEditor();
if(NULL!=pEditor)
{
   pDocument=pEditor->GetDocument();
   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)
{
  //零件特征遍历
CATIDescendants * pIDescendants = NULL;
  rc = spSpecObjectPart->QueryInterface(IID_CATIDescendants,(void**)&pIDescendants);
  if (SUCCEEDED(rc))
  {
    CATLISTV (CATISpecObject_var) List ;
pIDescendants->GetAllChildren("CATIPad",List);
double firstLimit ; // First and second limits of the pad
    double secondLimit = 0.;
CATMathDirection dirY(0., 1., 0.);

    //第一个参数改变
CATIPad_var  spPrism(List[0]);
firstLimit = _pL1Editor->GetValue();
    spPrism->ModifyDirection(dirY);
spPrism->ModifyEndType(catOffsetLimit);
spPrism->ModifyEndOffset(firstLimit);
spPrism->ModifyStartType(catOffsetLimit);
    spPrism->ModifyStartOffset(secondLimit);

    //第二个参数改变
CATIPad_var  spPris(List[1]);
    firstLimit = _pL2Editor->GetValue();
    spPris->ModifyDirection(dirY);
spPris->ModifyEndType(catOffsetLimit);
spPris->ModifyEndOffset(firstLimit);
spPris->ModifyStartType(catOffsetLimit);
    spPris->ModifyStartOffset(secondLimit);

   
//更新模型
    spSpecObjectPart->Update();

  }
}
}
}



作者: linlily0925    时间: 2012-1-11 16:31
spPris->ModifyEndOffset(firstLimit);
你的这个firstlimit值应该是从面板中得到的值哦~~
如果面板中的值正确得到的话,pad应该是可以更新的~~




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3