iCAx开思工具箱

标题: CAA: 如何得到part的mass属性值 [打印本页]

作者: HNBoTree    时间: 2005-12-20 10:09
标题: CAA: 如何得到part的mass属性值
我用CATIInertia接口得到的property不正确,请各位高手指教。
                        CATIInertia* piInertiaOnPart = NULL;
                        rc = catPart->QueryInterface(IID_CATIInertia, (void**)&piInertiaOnPart);
                        if(SUCCEEDED(rc))
                        {
                                rc = piInertiaOnPart->GetInertia(&dDensity, &dMass, dPosition, dMatrix3x3, dComponents, dValues, &dVolums, &dAreas);
                        }
这样得到的dDensity为1000,而catia中显示的确是0,如何能够得到正确的dDensity。
谢谢!
作者: HNBoTree    时间: 2005-12-20 12:57
CATIA中有什么API可以直接得到Density的?
作者: hick    时间: 2005-12-20 13:40
before  CATIInertia
you must use CATISpaEnvironment->Init()
作者: HNBoTree    时间: 2005-12-21 11:25
yes ,我在用之前已经做了这样的动作。
        if(SUCCEEDED(HR_Env))
        {
                HR_Init = piSpaEnvironment->Init();
        }
但是得到值还是1000,我想是不是还有其他的API可以做到功能?
作者: tyeqin    时间: 2005-12-22 10:30
这样做:
        ProductStructureTypeLib::Analyze *oAnalyze;//得到CATIA中体积等属性而用
        if(temp0.Find(".catpart")>=0){
        partDoc = pDocs->Item(&var);
        ProductStructureTypeLib:: Product *pProduct;
        pProduct = partDoc-> Product;
        }
        pProduct->get_Analyze(&oAnalyze);
        oAnalyze->get_Volume(&oValue);
        oAnalyze->get_Mass(&oValue);
作者: HNBoTree    时间: 2007-1-2 18:44
我现在又发现了一个新问题,请大家帮忙指导!谢谢了先!

在CATIA V5 R16 版本上,CATPart 的properties/Mass 多了一个 Only main body 选项。

现在不管我用哪种方法去得CATPart 的 Mass 都不能够得到正确的结果。也不是单位的问题。

但是我发现CATInertia 上的一个API,SetGranularityMode(); 可以确保是Main body 的 Mass 值还是 all bodies 的Mass 值。

我的问题就在怎么样能够得到这个Only main body 的属性值。

由哪个API 可以提供?

作者: HNBoTree    时间: 2007-1-3 12:47
得到CATPart 的properties/Mass 的属性,我觉得有可能不用CATIInertia 和Analyze 这些API。

还有没有其他API吗,大家是否知道?




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