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

iCAx开思网

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

[求助]UG二次开发—UF_STYLER_set_value无法正常使用??

[复制链接]
跳转到指定楼层
1
发表于 2004-5-29 11:11:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是我源程序的一段代码,是某个对话框的构造函数的回调函数,我的目的是希望实现在弹出这个对话框的时候,相应的对话框中的控件能有一个初始的值。附件中有我的对话框示意图。
int CHANGE_constructor_cb ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)
{
  /*样条曲线数据定义区*/
  struct UF_CURVE_spline_s spline_data;
  UF_CURVE_spline_p_t spline_pointer=malloc( sizeof    (UF_CURVE_spline_p_t));
  double poles[20][2];
  int number;
  int i=0;
  int j=0;
  
           /*set对话框value定义区*/
  UF_STYLER_item_value_type_t value[25];
  
            /*出错信息反馈定义区*/
  int error;
  char message1[133];
  
           /* Make sure User Function is available. */  
  if ( UF_initialize() != 0)  
    return ( UF_UI_CB_CONTINUE_DIALOG );
  
  /* ---- Enter your callback code here -----*/  
  
   /*得到样条曲线的控制点的坐标值*/
  UF_CURVE_ask_spline_data ( curve_id ,
                           [$spline_data )]                    
  number=spline_data.num_poles;
  
  for(i=0;i<number;i++)
  {
    for(j=0;j<2;j++)
    {
      poles[j] = spline_data.poles[j];
    }  
  }
  
  
              value[0].item_id    = CHANGE_SCALE_REAL_0;
  value[0].item_attr  = UF_STYLER_VALUE;  
  
  value[1].item_id    = CHANGE_SCALE_REAL_1;
  value[1].item_attr  = UF_STYLER_VALUE;
  
  value[2].item_id    = CHANGE_SCALE_REAL_2;
  value[2].item_attr  = UF_STYLER_VALUE;  
  
  value[3].item_id    = CHANGE_SCALE_REAL_3;
  value[3].item_attr  = UF_STYLER_VALUE;
  
  value[4].item_id    = CHANGE_SCALE_REAL_4;
  value[4].item_attr  = UF_STYLER_VALUE;  
  
  value[5].item_id    = CHANGE_SCALE_REAL_5;
  value[5].item_attr  = UF_STYLER_VALUE;
  
  value[6].item_id    = CHANGE_SCALE_REAL_6;
  value[6].item_attr  = UF_STYLER_VALUE;  
  
  value[7].item_id    = CHANGE_SCALE_REAL_7;
  value[7].item_attr  = UF_STYLER_VALUE;
  
  value[8].item_id    = CHANGE_SCALE_REAL_8;
  value[8].item_attr  = UF_STYLER_VALUE;  
  
  value[9].item_id    = CHANGE_SCALE_REAL_9;
  value[9].item_attr  = UF_STYLER_VALUE;
  
  value[10].item_id    = CHANGE_SCALE_REAL_10;
  value[10].item_attr  = UF_STYLER_VALUE;  
  
  value[11].item_id    = CHANGE_SCALE_REAL_11;
  value[11].item_attr  = UF_STYLER_VALUE;
  
  value[12].item_id    = CHANGE_SCALE_REAL_12;
  value[12].item_attr  = UF_STYLER_VALUE;
  
  value[13].item_id    = CHANGE_SCALE_REAL_13;
  value[13].item_attr  = UF_STYLER_VALUE;  
  
  value[14].item_id    = CHANGE_SCALE_REAL_14;
  value[14].item_attr  = UF_STYLER_VALUE;
  
  value[15].item_id    = CHANGE_SCALE_REAL_15;
  value[15].item_attr  = UF_STYLER_VALUE;  
  
  value[16].item_id    = CHANGE_SCALE_REAL_16;
  value[16].item_attr  = UF_STYLER_VALUE;
  
  value[17].item_id    = CHANGE_SCALE_REAL_17;
  value[17].item_attr  = UF_STYLER_VALUE;  
  
  value[18].item_id    = CHANGE_SCALE_REAL_18;
  value[18].item_attr  = UF_STYLER_VALUE;
  
  value[19].item_id    = CHANGE_SCALE_REAL_19;
  value[19].item_attr  = UF_STYLER_VALUE;  
  
  value[20].item_id    = CHANGE_SCALE_REAL_20;
  value[20].item_attr  = UF_STYLER_VALUE;
  
  value[21].item_id    = CHANGE_SCALE_REAL_21;
  value[21].item_attr  = UF_STYLER_VALUE;  
  
  value[22].item_id    = CHANGE_SCALE_REAL_22;
  value[22].item_attr  = UF_STYLER_VALUE;
  
  value[23].item_id    = CHANGE_SCALE_REAL_23;
  value[23].item_attr  = UF_STYLER_VALUE;  
  
  value[24].item_id    = CHANGE_SCALE_REAL_24;
  value[24].item_attr  = UF_STYLER_VALUE;
  
  value[25].item_id    = CHANGE_SCALE_REAL_25;
  value[25].item_attr  = UF_STYLER_VALUE;  
  
  /*将控制点坐标值读到控件中*/
  for(i=0;i<number;i++)
  {
    value[2*i].value.real=poles[0];
    value[2*i+1].value.real=poles[1];        
  }
  
/*出错信息反馈*/
  error = UF_STYLER_set_value(dialog_id,value);
  
  if(error)  
  {        
      UF_get_fail_message( error, message1 );  
      UF_UI_set_status (message1);
  }  
  
UF_terminate ();
   return 0;
  
    /* Callback acknowledged, do not terminate dialog */
   // return (UF_UI_CB_CONTINUE_DIALOG);  
    /* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted    */
    /* for this callback type.  You must continue dialog construction.*/
  
}

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2004-5-29 11:27:07 | 只看该作者
  error = UF_STYLER_set_value(dialog_id,value);  
应该是每一个控件都要调用一次该函数,第一个参数应该是你的控件ID吧。。。。。。
3
发表于 2004-5-29 12:11:22 | 只看该作者
这个函数一次只能设一个吧,你一次给它25个,恐怕它消化不了吧。
4
发表于 2004-5-29 12:49:04 | 只看该作者
我曾经用一个试过,但也没试通。应该不是这个问题吧?因为UF_STYLER_set_value和UF_STYLER_ask_value的用法是基本一致的
我UF_STYLER_ask_value这个函数时可以ask多个控件的值
5
发表于 2004-5-29 13:24:43 | 只看该作者
无论是设定值,还是取得值,你得让那个函数找到是哪个控件啊!
UF_STYLER_set_value(dialog_id,value);
你这里使用了dialog_id是什么意思?
呵呵,昨天我试着用了REAL控件,一共6个,我是挨个控件获取值的
6
发表于 2004-6-1 16:35:34 | 只看该作者
your  array is value[25] which should be 0~24, but you used 0~25......will it cause problem?
7
发表于 2004-6-3 10:06:06 | 只看该作者
你对UF_STYLER_set_value()的理解不对,那个函数只能一次给一个控件赋值,如果要个多个控件赋值就得用循环。另外你说的同时获取多个控件的值得函数不是UF_STYLER_ask_value(),而是UF_STYLER_ask_values(),就差了一个s,但是意思可是完全不一样了。
8
发表于 2004-6-3 10:06:51 | 只看该作者
这些我都做过测试,不会错的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-12-26 21:48 , Processed in 0.026069 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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