iCAx开思工具箱

标题: 在自定义特征中实例化UDF时报错 [打印本页]

作者: danshuihai    时间: 2012-8-31 20:47
标题: 在自定义特征中实例化UDF时报错
    想在程序中加入一段创建UDF的代码,但每次创建特征没有问题,更新特征时就在UDF实例化时报错,提示“The destination is not valid."如果此时不对零件进行任何操作,只用CATIA自己的按钮创建UDF,也有基本同样的提示。
图1是程序运行到Instantiate时的出错提示: (, 下载次数: 0)
图2是关掉这个提示后,用CATIA的功能创建UDF的提示: (, 下载次数: 0)
    Instantiate(NULL_var)这里的参数不知道有没有问题。另外,如果我创建的特征是特征树的最后一个节点,创建和更新都是没有问题,只是在后面还新建了其他特征时出错。我也不确定是UDF代码的问题,还是我自定义特征的问题,望高手指点。

作者: linlily0925    时间: 2012-9-6 11:16
看你提示的错误,应该是放置UDF的目录路径错了,一般这个路径就是当前的Part文件,程序会默认找到当前文件中激活的GSD集或者Body集,然后将UDF或者PC放在该目录下,给你一段代码,我运行木有问题的~~

CATISpecObject_var spSpecPrtPartNew = spPart;(CATIPrtPart_var类型,当前的part文件)   
CATBaseUnknown_var spBaseUnknownPrtPartNew = spSpecPrtPartNew ;
CATBaseUnknown* pBaseUnknownPrtPartNew= (CATBaseUnknown*)spBaseUnknownPrtPartNew;
CATPathElement PathNewPart(pBaseUnknownPrtPartNew);

CATPathElement * FirstUIactiveObject1 = NULL ;
CATBaseUnknown_var FirstDest1 = NULL_var ;
hr = pIUdfInstantiate->SetDestinationPath(&PathNewPart,FirstUIactiveObject1,FirstDest1);  
作者: danshuihai    时间: 2012-9-9 12:28
linlily0925 发表于 2012-9-6 11:16
看你提示的错误,应该是放置UDF的目录路径错了,一般这个路径就是当前的Part文件,程序会默认找到当前文件中 ...

谢谢你。这种放置位置的办法我也试过,有同样的问题出现。如果我将特征更新中的删除节点的代码注释掉,就不会在这里报错,所以我怀疑是不是因为我更新特征时有删除节点导致的。
作者: linlily0925    时间: 2012-9-9 15:41
特征更新中的删除节点?




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