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

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

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

网易考拉推荐

NXOpen常用标准对话框(6)  

2014-05-19 17:57:57|  分类: UG NX |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

拾取向量对话框

拾取向量对话框通过函数UF_UI_specify_vector调用,其原型如下:

int UF_UI_specify_vector(
    char* message,
    int* mode,
    int display_conehead,
    double direction[3],
    double origin[3],
    int*response);

第一个参数显示提示消息,第二个参数是拾取模式,可以是如下值:

UF_UI_INFERRED 
UF_UI_TWO_POINTS 
UF_UI_AT_ANGLE 
UF_UI_EDGE_CURVE 
UF_UI_TANGENT_TO_CURVE 
UF_UI_FACE_NORMAL 
UF_UI_DATUM_PLANE 
UF_UI_DATUM_AXIS 
UF_UI_XC_AXIS 
UF_UI_NEGATIVE_XC_AXIS 
UF_UI_YC_AXIS 
UF_UI_NEGATIVE_YC_AXIS 
UF_UI_ZC_AXIS 
UF_UI_NEGATIVE_ZC_AXIS

第三个参数决定函数执行完毕之后,是否显示矢量箭头,可以是值UF_UI_DISP_TEMP_VECTOR或者UF_UI_DISP_NO_VECTOR中的一个。第四个和第五个参数分别是方向和基点,这个参数唯一地确定了一个矢量,最后一个参数则是对话框的返回值,和前面介绍的其他对话框一样。

测试代码如下:

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

void DlgTest()
{
    int mode=UF_UI_INFERRED;
    int display_conehead=UF_UI_DISP_NO_VECTOR;
    double direction[3]={0,0,1};
    double origin[3] ={0,0,0};
    int response;
    char str[100];
    UF_UI_specify_vector("specify a Vector",&mode,display_conehead,direction,origin,&response);
    if(response==UF_UI_OK)
    {
        sprintf(str,"Origin: (%f,%f,%f), Direction: {%f,%f,%f}",
            origin[0],origin[1],origin[2],
            direction[0],direction[1],direction[2]);
        uc1601(str,1);
    }
}

//入口函数
extern DllExport void ufsta( char *param, int *returnCode, int rlen)
{
    if(UF_initialize()) 
        return;
    //Add your code here
    DlgTest();
    UF_terminate();
}
//退出函数
extern int ufusr_ask_unload()
{
    return UF_UNLOAD_IMMEDIATELY;
}
运行效果如下:
1
2

拾取平面对话框

拾取平面对话框的函数为UF_UI_specify_plane,该函数创建一个临时平面,函数原型如下:

int UF_UI_specify_plane(
    char * message, 
    int * mode, 
    int display, 
    int * response, 
    double orientation [9] , 
    double origin [3] , 
    tag_t * plane_eid);

第一个参数是在状态栏中的提示信息,最大不超过80个字符。

第二个参数是选择平面的模式,可以是如下值:

-1 = Enable ok without default selection
0 = Inhibit default selection
1 = Three Points
2 = Two Lines
3 = Point, Perp Curve
4 = Plane of Arc/Conic
5 = Plane of WCS
6 = Plane of CSYS
7 = Principal Plane
8 = Existing Plane
9 = Two Tangent Faces
10 = Point, Tangent Face
11 = Coefficients
12 = Parallel Thru Pt
13 = Parallel At Dist
14 = Perp, Thru Line

第三个参数display确定函数执行完成之后,是否显示该平面,0表示一直显示,而1则表示不显示。

第四个response和其他标准对话框一样,指示对话框所点击的按钮。

第五个参数数组orientation[9]则是决定平面的朝向。

第六个参数数组origin [3]指示平面通过的点,最后一个参数是平面的标识,通常返回NULL_TAG,只有在模式选择8(Existing Plane )时,返回已经存在的平面对象的标识。

测试代码如下:

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

void DlgTest()
{
    int mode=2;//Using 2 lines to specify a plane
    double direction[9];
    double origin[3];
    int response;
    tag_t pid;
    UF_UI_specify_plane("specify a Plane",&mode,0,&response,direction,origin,&pid);
}

//入口函数
extern DllExport void ufsta( char *param, int *returnCode, int rlen)
{
    if(UF_initialize()) 
        return;
    //Add your code here
    DlgTest();
    UF_terminate();
}
//退出函数
extern int ufusr_ask_unload()
{
    return UF_UNLOAD_IMMEDIATELY;
}
运行效果如下:
3

注意图中两个虚线的小三角形就是该函数创建的。

  评论这张
 
阅读(872)| 评论(0)
推荐 转载

历史上的今天

评论

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

页脚

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