iCAx开思网

标题: 在CAA中如何将获得的直线的长度进行精度保留操作? [打印本页]

作者: 歆韵    时间: 2009-11-20 09:58
标题: 在CAA中如何将获得的直线的长度进行精度保留操作?
问题描述:
        我创建一条直线,在程序中通过得到该直线的长度,并对其数值进行精度保留操作,在CATIA中是使用round。
        我可以实现得到直线长度,但round进行操作,编译通过,运行时出现错误,提示指针为空。
程序代码如下:直线类型为CATISpecObject_var Line
CATICkeParm_var spLength=spCkeParmFactory->CreareObjectReference(Line);
CATICkeFunctionFactory_var spFunctionFactory=CATCkeGlobalFunctions::GetFunctionFactory();
CATCkeListOf(Parm) ParmList;
spFunctionFactory->AddToParmeterSet(spLength);
ParmList->Append(spLength);

CATICkeParm_var  Length_Line=spCkeParmFactory->CreateLength("Length",0.0);
CATUnicodeString iBody("length(a1)");
CATICkeRelation_var  CkeLength_Line=
spCkeParmFactory->CreateFotmular("Length of Line",
                                                            " ",
                                                            " ",
                                                            Length_Line,
                                                            &ParmList,
                                                            iBody,
                                                           NULL_var,
                                                            CATCke::False);
spFunctionFactory->AddToCurrentRelation(CkeLength_Line);
CATISpecObject_var RelationLength_Line = CkeLength_Line;
RelationLength_Line->Update();
到这求出直线的长度,现在我需要对直线长度进行精度设置,只有整数部分,小数点后四舍五入
我对上面CATUnicodeString iBody("length(a1)")进行修改,改为
CATUnicodeString iBody("round(length(a1),mm,0)"),程序运行时提示指针为空。

请问要如何修改才能得到需要的数值?
请求高手帮忙!
作者: 歆韵    时间: 2009-12-3 19:15
自己编写了一个四舍五入的代码,把这问题解决了




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3