马上注册登录,享用更多网站功能!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
问题描述:
我创建一条直线,在程序中通过得到该直线的长度,并对其数值进行精度保留操作,在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)"),程序运行时提示指针为空。
请问要如何修改才能得到需要的数值?
请求高手帮忙! |