iCAx开思工具箱

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 26629|回复: 14
打印 上一主题 下一主题

【求助】UDO问题!

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

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

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

x

我把清华那本书上面的那个UDO2程序试了一下,运行没有错误,但是结果不对!具体表现是:可以作出那个block,但是uc1601相关的显示却没有出现(也就是回调函数没有执行)!但是当我把block删除后可能(因为不是每次都出现,时有时无)出现 “in display event”。各位大虾帮忙看看原因是什么,顺便提下udo有什么优势!
  
主要代码如下:
void registed_display_fun(tag_t udo, void *display_context)
{
  int errorCode = UF_initialize();
  uc1601("in display event" , 1);
  errorCode = UF_terminate();  
}
  
void registed_select_fun(tag_t udo, void *select_context)
{
  int errorCode = UF_initialize();
  uc1601("in select event" , 1);
  errorCode = UF_terminate();  
}
  
void registed_fit_fun(tag_t udo, void *select_context)
{
  UF_UDOBJ_all_data_t all_data;
  char *class_name , *friendly_name;
  
  int errorCode = UF_initialize();
  uc1601("in fit event" , 1);
  
  errorCode = UF_UDOBJ_ask_udo_data ( udo, [$all_data)]
   &nbsprintErrorMessage(errorCode);
  
  errorCode = UF_UDOBJ_ask_class_data( all_data.class_id,  
    [$class_name, & friendly_name )]
   &nbsprintErrorMessage(errorCode);
  
  UF_UDOBJ_free_udo_data( [$all_data )]
  uc1601( class_name, 1);
  uc1601( friendly_name, 1);
  UF_free( class_name);
  UF_free( friendly_name );
  errorCode = UF_terminate();
}  
/*  Unigraphics Startup
**      This entry point activates the application at Unigraphics startup */
extern DllExport void ufsta( char *param, int *returnCode, int rlen )
{
    /* Initialize the API environment */
    int errorCode = UF_initialize();
  
    if ( 0 == errorCode )
    {
        /* TODO: Add your application code here */
  
        /* Terminate the API environment */
        errorCode = UF_terminate();
    }
  
    /* Print out any error messages */
   &nbsprintErrorMessage( errorCode );
}
/*  Explicit Activation
**      This entry point is used to activate the application explicitly, as in
**      "File->Execute UG/Open->User Function..." */
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
{        
      double block_orig[3] = {0.0, 0.0, 0.0};
    char *block_len[3] = {"1", "2", "3"};
    tag_t block_tag;
    UF_FEATURE_SIGN sign = UF_NULLSIGN;
    
    UF_UDOBJ_class_t class_id;
    tag_t udo_tag = NULL_TAG;
    UF_UDOBJ_link_t link_defs[1];
  
//    void *select_contex;
    /* Initialize the API environment */
    int errorCode = UF_initialize();
  
    if ( 0 == errorCode )
    {
  
    UF_MODL_create_block1(sign, block_orig, block_len, [$block_tag)]
    errorCode = UF_UDOBJ_create_class("UDOTestClass", "MY_UDO", [$class_id)]
   &nbsprintErrorMessage( errorCode);
  
    errorCode = UF_UI_add_to_class_sel(class_id);
   &nbsprintErrorMessage(errorCode);
  
    errorCode = UF_UDOBJ_create_udo( class_id, [$udo_tag )]
     &nbsprintErrorMessage(errorCode);
  
    link_defs[0].link_type = 1;
    link_defs[0].assoc_ug_tag = block_tag;
    link_defs[0].object_status = 0;
  
    errorCode = UF_UDOBJ_add_links(udo_tag, 1, link_defs);
     &nbsprintErrorMessage(errorCode);
  
    errorCode = UF_UDOBJ_add_owning_links(udo_tag ,1, [$block_tag)]
     &nbsprintErrorMessage(errorCode);
  
    errorCode = UF_UDOBJ_register_display_cb(class_id, registed_display_fun);
     &nbsprintErrorMessage(errorCode);
  
    errorCode = UF_UDOBJ_register_select_cb(class_id, registed_select_fun);
     &nbsprintErrorMessage(errorCode);
  
    
    errorCode = UF_UDOBJ_register_fit_cb( class_id, registed_fit_fun);
      PrintErrorMessage(errorCode);
  
    
        errorCode = UF_terminate();
    }
  
    /* Print out any error messages */
    PrintErrorMessage( errorCode );
}
  
程序附件如下:
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 支持支持
沙发
发表于 2004-12-21 00:16:04 | 只看该作者

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

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

x
板凳
发表于 2004-12-21 00:19:38 | 只看该作者

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

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

x
地板
发表于 2004-12-21 16:03:44 | 只看该作者

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

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

x
5
发表于 2004-12-21 17:39:30 | 只看该作者

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

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

x
6
 楼主| 发表于 2004-12-21 17:43:37 | 只看该作者

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

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

x
7
发表于 2004-12-21 19:57:59 | 只看该作者

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

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

x
8
发表于 2004-12-21 21:18:24 | 只看该作者

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

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

x
9
 楼主| 发表于 2004-12-21 21:35:42 | 只看该作者

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

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

x
10
发表于 2004-12-21 22:09:59 | 只看该作者

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

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

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

本版积分规则

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

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

GMT+8, 2024-7-2 02:02 , Processed in 0.017965 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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