找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 16211|回复: 5
打印 上一主题 下一主题

使用OPENC函数UF_MODL_create_smbend时出错

[复制链接]
跳转到指定楼层
1
发表于 2005-9-20 10:45:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
赋值语句如下:       
bend_input_data.base_face = base_face;
        bend_input_data.app_curve = app_line;
        bend_input_data.app_curve_type = UF_SMBEND_BEND_CENTERLINE;
        strcpy(bend_input_data.angle,bend_angle);
        bend_input_data.angle_type = UF_SMBEND_BEND_ANGLE;
        strcpy(bend_input_data.radius,bend_radius);
        bend_input_data.radius_type = UF_SMBEND_INNER_RADIUS;
        bend_input_data.bend_dir = UF_SMBEND_BEND_DIR_AS_SPECIFIED;
        bend_input_data.stat_side = UF_SMBEND_STAT_SIDE_AS_SPECIFIED;
        strcpy(bend_input_data.baf,baf);
        error=UF_CALL(UF_MODL_create_smbend(&bend_input_data,&bend_feature));
错误的提示如下:
+++ A dimension subscript for an array attribute was out of range or invalid
肯定是输入参数有误,但是我查不出来错在哪里?它的错误提示,让我莫名其妙,请各位大虾指点指点。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2005-9-20 17:34:59 | 只看该作者
数组越界了嘛
3
发表于 2005-9-21 08:06:43 | 只看该作者
我当然也知道是数组越界,可能我没有说清楚,下面是整个测试程序段,base_face和app_line是从外面传入的。
里面涉及到数组的也就是bend_angle,bend_radius和baf,但这几个参数怎么也不可能会越界的。
另外,我在交互环境下,建立一个bend特征,然后用程序读入,得到相关参数后,再把这些参数作为函数
UF_MODL_create_smbend的输入参数,但依然是有错。因此对该函数的输入参数的形式很迷惑,有没有大虾碰到过这样的情况,请不吝指教。
        UF_KF_type_t type;
        tag_t base_face,app_line,bend_feature;
        UF_KF_instance_p_t instance;
        int error;
        UF_MODL_smbend_data_t bend_input_data;
        char bend_angle[UF_MAX_EXP_LENGTH+1]="90";
        char bend_radius[UF_MAX_EXP_LENGTH+1]="10";
        char baf[UF_MAX_EXP_LENGTH+1]="(Radius+(Thickness*0.44))*rad(Angle)";

        UF_initialize();

        bend_input_data.base_face = base_face;
        bend_input_data.app_curve = app_line;
        bend_input_data.app_curve_type = UF_SMBEND_BEND_CENTERLINE;
        strcpy(bend_input_data.angle,bend_angle);
        bend_input_data.angle_type = UF_SMBEND_BEND_ANGLE;
        strcpy(bend_input_data.radius,bend_radius);
        bend_input_data.radius_type = UF_SMBEND_INNER_RADIUS;
        bend_input_data.bend_dir = UF_SMBEND_BEND_DIR_AS_SPECIFIED;
        bend_input_data.stat_side = UF_SMBEND_STAT_SIDE_AS_SPECIFIED;
        strcpy(bend_input_data.baf,baf);
        error=UF_CALL(UF_MODL_create_smbend(&bend_input_data,&bend_feature));

        UF_terminate();
4
发表于 2005-9-21 12:47:17 | 只看该作者
bend_input_data中的几个字符型变量赋值后,看过是正确的吗?最好仔细看一下所有值是否正确
5
发表于 2005-9-22 08:39:41 | 只看该作者
奇怪就奇怪在这里啊,那几个字符数组我都查看过N遍了,没有任何的问题啊。而且我把我的输入值和读交互状态下创建的bend特征所得的输入值作过比较,完全是一样的。
6
发表于 2005-9-23 11:59:14 | 只看该作者
我用相同的方法试了一下UF_MODL_create_smhole()这个函数,能够正常运行。
现在怀疑是不是bend_input_data中的baf的赋值有问题?
char baf[UF_MAX_EXP_LENGTH+1]="(Radius+(Thickness*0.44))*rad(Angle)";
但那个公式是UG里COPY过来的阿,而且最大字符长度为257,根本就没有越界阿。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-12 21:46 , Processed in 0.027896 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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