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

iCAx开思网

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

[求助] 请大虾帮我看看这几行程序

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

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

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

x
我的目标是找到face,读出指定u v 处face的参数

#include <uf.h>
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
#        include <strstream>
#   include <iostream>
        using std:strstream;
        using std::endl;      
        using std::ends;
        using std::cerr;
#else
#        include <strstream.h>
#   include <iostream.h>
#endif
#include "test.h"
#include <uf.h>
#include <uf_modl.h>
#include <uf_part.h>
#include <uf_defs.h>

// Main routine
extern void main( char argc, char *argv[] )
{
    /* Initialize the API environment */
    int errorCode = UF_initialize();

    if ( 0 == errorCode )
    {
        /* TODO: Add your application code here */
tag_t body_id;/* <I>      Face identifier.       */
double param[2];/* <I>    Parameter (u,v) on face (param[2]).             */
double point[3];/* <O>            Point at parameter (point[3]).               */
double u1[3];/* <O>             First derivative in U (u1[3]).             */
double v1[3];/* <O>             First derivative in V (v1[3]).             */
double u2[3];/* <O>             Second derivative in U (u2[3]).             */
double v2[3];/* <O>             Second derivative in V (v2[3]).             */
double unit_norm[3];/* <O>                    Unit face normal (unit_norm[3]).                    */
double radii[2];  /* <O>                Principal radii of curvature (radii[2]).                */
UF_PART_load_status_t error_status;
uf_list_p_t face_list;
double wn;
int num;


UF_MODL_create_list(&face_list);

UF_PART_open("D:\\2.prt",&body_id,&error_status);
UF_MODL_ask_body_faces(body_id,&face_list);
UF_MODL_ask_list_count(face_list,&num);

param[0]=0.5;
param[1]=0.5;

UF_MODL_ask_face_props(body_id,param,point,u1,v1,u2,v2,unit_norm,radii);

        /* Terminate the API environment */
        errorCode = UF_terminate();
    }

    /* Print out any error messages */
    PrintErrorMessage( errorCode );
}


/* PrintErrorMessage
**
**     Prints error messages to standard error. */
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 */

        // Construct a buffer to hold the text.
        ostrstream error_message;

        // Initialize the buffer with the required text.
        error_message << endl
                      << "Error:" << endl
                      << message
                      << endl << endl << ends;

            // Write the message to standard error
        cerr << error_message.str();
    }
}


请大虾指点,我建了一个b-splines surface试的,发现读不出来
所以加了
UF_MODL_ask_body_faces(body_id,&face_list);
UF_MODL_ask_list_count(face_list,&num);
来test一下
结果发现num=0
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2007-10-17 07:50:38 | 只看该作者
我们还没教到UG编程,很佩服你会用宏程序,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025-1-23 11:59 , Processed in 0.025881 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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