注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

NXOpen创建基本几何体  

2014-05-21 11:50:28|  分类: UG NX |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

创建基本几何体的函数在头文件uf_modl_primitives.h下,测试代码如下:

#include <uf.h>
#include <uf_part.h>
#include <uf_ui.h>
#include <uf_exit.h>
#include <string>
#include <uf_modl.h>
#include <uf_modl_primitives.h>

tag_t CreateBlock(double x,double y,double z,double length,double width,double height)
{
    UF_FEATURE_SIGN sign=UF_NULLSIGN;
    double corner_pt[3]={x,y,z};
    char len[80],wid[80],hei[80];
    sprintf_s(len,"%f",length);
    sprintf_s(wid,"%f",width);
    sprintf_s(hei,"%f",height);
    char * edge_len[3]={len,wid,hei};
    tag_t blkid=NULL_TAG;
    UF_MODL_create_block1(sign,corner_pt,edge_len,&blkid);
    return blkid;
}

tag_t CreateCylinder(double x,double y,double z,double r,double h,double dx,double dy,double dz)
{
    UF_FEATURE_SIGN sign=UF_NULLSIGN;
    double origin[3]={x,y,z};
    double direction[3]={dx,dy,dz};
    char height[80],diam[80];
    sprintf_s(diam,"%f",2*r);
    sprintf_s(height,"%f",h);

    tag_t cylid=NULL_TAG;
    UF_MODL_create_cyl1(sign,origin,height,diam,direction,&cylid);
    return cylid;
}

tag_t CreateSphere(double x,double y,double z,double r)
{
    UF_FEATURE_SIGN sign=UF_NULLSIGN;
    double center[3]={x,y,z};
    char diam[80];
    sprintf_s(diam,"%f",2*r);
    tag_t sphid=NULL_TAG;
    UF_MODL_create_sphere1(sign,center,diam    ,&sphid);
    return sphid;
}

tag_t CreateCone(double x,double y,double z,
    double r1,double r2,double h,
    double dx,double dy,double dz)
{
    UF_FEATURE_SIGN sign=UF_NULLSIGN;
    double origin[3]={x,y,z};
    char height[80];
    sprintf_s(height,"%f",h);
    char diam1[80],diam2[80];
    sprintf_s(diam1,"%f",2*r1);
    sprintf_s(diam2,"%f",2*r2);
    char* diam[2]={diam1,diam2};
    double direction[3]={dx,dy,dz};
    tag_t conid=NULL_TAG;
    UF_MODL_create_cone1(sign,origin,height,diam,direction,&conid);
    return conid;
}

void CreatePrimarySolid()
{
    char items[][38]=
    {
        "Block",
        "Cylinder",
        "Sphere",
        "Cone"
    };
    char msg[100];
    int ret=uc1603("Please Select:",1,items,4);
    switch(ret)
    {
    case 5://block
        CreateBlock(0,0,0,30,40,50);
        break;
    case 6://cylinder
        CreateCylinder(20,30,40,15,55,1,1,1);
        break;
    case 7://Sphere
        CreateSphere(0,0,50,20);
        break;
    case 8://cone
        CreateCone(20,30,40,15,25,55,1,1,-1);
        break;
    }
}

//入口函数
extern DllExport void ufsta( char *param, int *returnCode, int rlen)
{
    if(UF_initialize()) 
        return;
    //Add your code here
    CreatePrimarySolid();
    UF_terminate();
}
//退出函数
extern int ufusr_ask_unload()
{
    return UF_UNLOAD_IMMEDIATELY;
}
NXOpen中提供的函数中,有几个参数使用字符串传递,主要是为了照顾到表达式。
  评论这张
 
阅读(430)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016