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

iCAx开思网

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

我学UG二次开发,但不知道下列函数出自哪个头文件

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

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

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

x
UF_MODL_ask_list_item(),
UF_MODL_ask_exp_tag_string(),
UF_MODL_dissect_exp_string(),
UF_MODL_create_block1()
书上没有头文件,不知道这些函数出自那些头文件?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2004-10-12 10:20:21 | 只看该作者
uf_modl.h
3
发表于 2004-10-12 10:41:38 | 只看该作者
我加了头文件,但还是有问题。
原文件中的部分程序如下:
tag_t new_exp;
UF_MODL_create_exp_tag("w=10", [$new_exp)]
  
/*get the parameters and export*/
char *string;
char *lhs_str;
char *rhs_str;
  
但编译时char *string行出现错误说: F:\UG\List\List.c(45) : error C2143: syntax error : missing ';' before 'type'
这是为什么
4
发表于 2004-10-12 10:50:12 | 只看该作者
这个错误,是C语法上的。
把使用这几个字串的 代码一并贴出来看看
5
发表于 2004-10-12 13:04:01 | 只看该作者
ug定义的数据类型的头文件要包括,
比如:
uf_defs.h
  
还有如果用到的话:
uf_object_types.h
也要包括,
还有其他的头文件。
最好做一个头文件一下都包含进去
6
发表于 2004-10-12 15:42:06 | 只看该作者
呵呵,我明白了。
楼主兄弟是在看清华的书,这本书很好。不光教你如何写UG程序,还让你锻炼调程序的能力,给你一段含有若干错误的代码,你得去找bug,而不是搬着书来抄。
还有,把你用向导生成的.c文件改成.cpp,然后在编译连接
7
发表于 2004-10-12 16:48:49 | 只看该作者
不错,找错误,很锻炼人:)
8
发表于 2004-10-12 22:02:44 | 只看该作者
是的,我在学清华的书,加了几个头文件还是没有,代码如下,帮我分析分析,有38个错误和41个警告
/*****************************************************************************
**
**  List.c
**
**  Description:
**     Contains Unigraphics entry points for the application.
**
*****************************************************************************/
  
/*  Include files */
#include <stdio.h>
#include <uf.h>
#include <uf_ui.h>
#include <uf_defs.h>
  
#include <uf_object_types.h>
  
#include <uf_modl.h>
  
#include "List.h"
  
/*****************************************************************************
**  Activation Methods
*****************************************************************************/
  
/*  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 */
    //创建参数  create parameters
    tag_t new_exp;
    UF_MODL_create_exp_tag("w=10", [$new_exp)]
  
    /*get the parameters and export*/
    char *string, *lhs_str, *rhs_str;
  
    UF_MODL_ask_exp_tag_string (new_exp, [$string)]
    UF_UI_open_listing_window();
    UF_UI_write_listing_window("the new created parameter is:\n");
    UF_UI_write_listing_window(string);
    UF_UI_write_listing_window("\n");
  
    //delete the parameter
    UF_MODL_dissect_exp_string(string, [$lhs_str, &rhs_str, &new_exp)]
    UF_MODL_delete_exp(lhs_str);
    UF_free(string);
    UF_free(lhs_str);
    UF_free(rhs_str);
  
    //create 2 rectangles
    UF_FEATURE_SIGN sign = UF_NULLSIGN;  //create a new rectangle
    UF_FEATURE_SIGN sign1 = UF_POSITIVE; //create a rectangle that join with the rectangle created before
    double block_orig[3] = {0.0, 0.0, 0.0};
    double block_orig1[3] = {0.0, 0.0, 2.5};
    char *block_len[3] = {"1", "2", "3"};
    char *block_len1[3] = {"1", "1", "1"};
    tag_t blk_obj;
    tag_t blk1_obj;
    UF_MODL_create_block1(sign, block_orig, block_len, [$blk_obj)]
    UF_MODL_create_block1(sign1, block_orig1, block_len1, [$blk1_obj)]
  
    uf_list_t *list;
    // create the list
    UF_MODL_create_list([$list)]
    //put the rectangles into the list
    UF_MODL_put_list_item(list,blk_obj);
    UF_MODL_put_list_item(list,blk1_obj);
    int list_count;
    tag_t list_item;
    UF_MODL_ask_list_count(list, [$list_count)]
    for(int i=0; i<list_count;i++)
    {
      UF_MODL_ask_list_item(list, i, [$list_item)]
      UF_DISP_set_highlight(list_item, 1);
    }
  
    //delete the blk_obj in the list
    UF_MODL_delete_list_item([$list, blk_obj)]
  
    //delete the rectangles in the list
    UF_MODL_delete_feature(list);
    UF_MODL_update();
  
    //delete the list
    UF_MODL_delete_list([$list)]
  
    //delete the blk_obj
    UF_OBJ_delete_object(blk_obj);
  
        /* Terminate the API environment */
        errorCode = UF_terminate();
    }
  
    /* Print out any error messages */
    //PrintErrorMessage( errorCode );
}
/*****************************************************************************
**  Utilities
*****************************************************************************/
  
/* Unload Handler
**     This function specifies when to unload your application from Unigraphics.
**     If your application registers a callback (from a MenuScript item or a
**     User Defined Object for example), this function MUST return
**     "UF_UNLOAD_UG_TERMINATE". */
extern int ufusr_ask_unload( void )
{
    return( UF_UNLOAD_UG_TERMINATE );
}
  
/* PrintErrorMessage
**
**     Prints error messages to standard error and the Unigraphics status
**     line. */
static void PrintErrorMessage( int errorCode )
{
    if ( 0 != errorCode )
    {
        /* Retrieve the associated error message */
        char message[133];
        UF_get_fail_message( errorCode, message );
  
        /* Print out the message */
        UF_UI_set_status( message );
  
        fprintf( stderr, "%s\n", message );
    }
}
9
发表于 2004-10-13 01:40:31 | 只看该作者
告诉你了呀。
把c文件改成cpp文件
10
发表于 2004-10-13 11:35:23 | 只看该作者
TO spartutu :
你搞UG开发,必须要有UG Docement,所有的函数都在那里边,有2k多个函数!你的错误是变量定义的位置不对
/* Initialize the API environment */  
    int errorCode = UF_initialize();  
  
    if ( 0 == errorCode )  
    {  
        /* TODO: Add your application code here */  
    //创建参数 create parameters  
    tag_t new_exp;  
    UF_MODL_create_exp_tag("w=10", [$new_exp)]  
  
    /*get the parameters and export*/  
    char *string, *lhs_str, *rhs_str;
改成
/* Initialize the API environment */
tag_t new_exp;
  /*get the parameters and export*/  
   char *string, *lhs_str, *rhs_str;  
  
     int errorCode = UF_initialize();  
  
     if ( 0 == errorCode )  
     {  
         /* TODO: Add your application code here */  
         UF_MODL_create_exp_tag("w=10", [$new_exp)]  
  
    再试试,应该是没有问题了的!
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-12-27 12:14 , Processed in 0.031916 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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