iCAx开思工具箱

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 24815|回复: 1
打印 上一主题 下一主题

在CAA中如何将获得的直线的长度进行精度保留操作?

[复制链接]
跳转到指定楼层
楼主
发表于 2009-11-20 09:58:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

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)"),程序运行时提示指针为空。

请问要如何修改才能得到需要的数值?
请求高手帮忙!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 支持支持
沙发
 楼主| 发表于 2009-12-3 19:15:03 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手板模型制作,在线3D打印服务

QQ|小黑屋|手机版|开思工具箱 CAD工具箱_CAM工具箱  

GMT+8, 2024-10-1 10:32 , Processed in 0.010657 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表