找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

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

初次做的UG二次开发,请各位大哥指导

[复制链接]
跳转到指定楼层
1
发表于 2005-7-7 22:14:17 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
      我开始接触UG二次开发有好天了。因为要做个项目,加上自己有编程的基础,所以导师叫我去做个二次开发的课题。 我虽然有程序设计的基础,但是UG 和VC之间的接口还有点搞不明白。我有几个问题想向各位大哥请教,如果能得到深夜摔键盘兄的指导,那就更好了。
       我的问题是这样的:老师叫我开发个小程序,利用参数输入,生成模型
于是我做了个垫片参数建模的小程序。在UG下做了如下的对话框:
      
内径:
外径:
厚度:
创建(按钮)
  
在输入如上参数的基础上点击创建按钮,就能生成垫圈了。我的程序如下:
首先预设置参数值。找到  construct_cb(创建函数),然后加入如下代码:
  
int CY_construct_cb ( int dialog_id,
              void * client_data,
              UF_STYLER_item_value_type_p_t callback_data)
{
      UF_STYLER_item_value_type_t data;
   /* Make sure User Function is available. */   
      if ( UF_initialize() != 0)  
           return ( UF_UI_CB_CONTINUE_DIALOG );
  
      /* ---- Enter your callback code here ----- */
   // UF_STYLER_item_value_type_t data;
     data.item_attr=UF_STYLER_VALUE;
    data.item_id=CY_RMIN;
    data.value.real=2;
    UF_STYLER_set_value(dialog_id,[$data)]
  
    data.item_id=CY_RMAX;
    data.value.real=3;
    UF_STYLER_set_value(dialog_id,[$data)]
  
    data.item_id=CY_HE;
    data.value.real=4;
   UF_STYLER_set_value(dialog_id,[$data)]
   
  
      UF_terminate ();
  
     /* 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.*/
  
}
  
上部分的程序是给对话框预设置值的,运行上叙程序后,我预想对话框的值如下:
  
内径:2
外径:3
厚度:4
  
在创建按钮的回调函数中输入如下代码:
  
int CY_creat_cb ( int dialog_id,
              void * client_data,
              UF_STYLER_item_value_type_p_t callback_data)
{
      
  
    UF_STYLER_item_value_type_t data;
    double rx,rd,he;                    //  为什么这个定义一定要放  tag_t cy1_tag, cy2_tag;
    int ret;                            //  前面呢
    tag_t cy1_tag, cy2_tag;
    double origin[3]={0,0,0};
    double d[3]={0,0,1};
      char dmin[256],dmax[256],hig[256];
    dmin[0]='\0';
    dmax[0]='\0';
    hig[0]='\0';
    //double rx,rd,he;
   
     /* Make sure User Function is available. */   
      if ( UF_initialize() != 0)  
           return ( UF_UI_CB_CONTINUE_DIALOG );
  
      /* ---- Enter your callback code here ----- */
   data.item_attr=UF_STYLER_VALUE;
    data.item_id=CY_RMIN;
    UF_STYLER_ask_value(dialog_id,[$data)]
    rx=data.value.real;
      
    data.item_id=CY_RMAX;
    UF_STYLER_ask_value(dialog_id,[$data)]
    rd=data.value.real;
     
    data.item_id=CY_HE;
    UF_STYLER_ask_value(dialog_id,[$data)]
    he=data.value.real;
  
    sprintf(dmin,"%f",rx);
    sprintf(dmax,"%f",rd);
    sprintf(hig,"%f",he);
  
    ret=UF_MODL_create_cyl1(UF_NULLSIGN,origin,hig,dmax,d,[$cy1_tag)]
    ret=UF_MODL_create_cyl1(UF_NEGATIVE,origin,hig,dmin,d,[$cy2_tag)]
  
      UF_terminate ();

     /* Callback acknowledged, do not terminate dialog */
     return (UF_UI_CB_CONTINUE_DIALOG);  
      
     /* or Callback acknowledged, terminate dialog.    */
     /* return ( UF_UI_CB_EXIT_DIALOG );               */
  
}
  
程序的运行:输入参数,点击创建,然后生成垫圈:
上面的程序通过编译与连接,生成了DLL。但是我在UG中调用对话框却出现了这样的问题,都是要点击两次,才会出现对话框。此时,对话框参数的预设置值并不是我在程序中设置的,而全部是零。我的程序是没问题的啊,这是怎么回事??是不是我的UG出什么问题了啊?? 还有我输入参数后点击创建,并没有生成我要的垫圈(我是在建模模块下进行的)。这又是怎么回事啊?请各位大哥指教,小弟感激不尽!!
  
这是一个学UG开发的好例子,短小精悍,五脏俱全。--zzz
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
27
发表于 2010-3-19 15:10:12 | 只看该作者

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

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

x
26
发表于 2008-4-2 20:20:36 | 只看该作者

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

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

x
25
发表于 2008-4-1 10:59:50 | 只看该作者

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

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

x
24
发表于 2005-9-5 21:48:53 | 只看该作者

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

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

x
23
发表于 2005-8-15 15:52:15 | 只看该作者

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

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

x
22
发表于 2005-7-26 09:13:59 | 只看该作者

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

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

x
21
发表于 2005-7-22 21:44:58 | 只看该作者

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

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

x
20
发表于 2005-7-21 15:40:58 | 只看该作者

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

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

x
19
发表于 2005-7-21 00:16:21 | 只看该作者

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

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

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

本版积分规则

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

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

GMT+8, 2024-12-1 09:58 , Processed in 0.033408 second(s), 14 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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