文章作者:里海
来源网站:https://blog.csdn.net/WangPaiFeiXingYuan
UF_UI_select_conehead
Defined in: uf_ui.h
int UF_UI_select_conehead(char * message, int num, double origins [ ] , double directions [ ] , char * * labels, UF_DISP_conehead_attrb_s * attributes, double selection_point, int display_coneheads, int * selected_num, int * response )
overview 概述
Displays the given coneheads and allows the user to select one of
them. The coneheads are described using the standard conehead attributes.
Each conehead has a selection point. The location of the selection
point is set by the input parameter selection_point. The user is then
prompted for a screen location, and the conehead whose selection
point is closest, is returned to the caller.
The selection_point parameter may be any value in the range 0.0 to
1.0. A value of 0.0 sets the selection point to the base of each
conehead. 1.0 sets the selection point to the tips.
The display_coneheads flag determines if, all the coneheads, none of
the coneheads, or just the selected conehead, is left displayed when
the function ends. The selected coneheads selection point is marked
with a small circle.
The user can choose Back or Cancel without selecting a conehead.
UF_DISP_set_conehead_attrb describes how to set conehead attributes.
显示给定的锥头,并允许用户选择其中之一。使用标准的 conehead 属性描述 conehead。每个锥头都有一个选择点。选择点的位置由输入参数 select _ point 设置。然后提示用户输入屏幕位置,并将选择点最近的锥头返回给调用者。Select _ point 参数可以是范围在0.0到1.0之间的任何值。如果值为0.0,则将选择点设置为每个锥头的底部。0将选择点设置为提示。Display _ conehead 标志确定在函数结束时是否显示所有的 conehead,没有任何 conehead,或者只显示所选的 conehead。选定的锥头选择点用一个小圆圈标记。用户可以选择 Back 或 Cancel,而无需选择 conehead。UF _ DISP _ set _ conehead _ attrb 描述了如何设置 conehead 属性。
UFUN例子
欢迎订阅《里海NX二次开发3000例专栏》https://blog.csdn.net/wangpaifeixingyuan/category_8840986.html,点击链接扫码即可订阅(持续更新中)。已经有几百人订阅,订阅是永久的,无限期阅读,如需帮助请私信。
parameters 参数
char * | message | Input | The cue line message. (80 character maximum) 提示线消息。(最多80个字符) |
int | num | Input | The number of coneheads to display. 要显示的锥头数量。 |
double | origins [ ] | Input | An array of conehead origin points. Contains num3 entries. 锥头原点的数组。包含 num3条目。 |
double | directions [ ] | Input | An array of conehead directions. Contains num3 entries. 锥头方向的数组。包含 num3条目。 |
char * * | labels | Input | An array of pointers to character string labels to be placed on the coneheads. If no labels are desired this may be passed as NULL. Individual entries may also be set to NULL. Contains num entries. 指向要放置在锥头上的字符串标签的指针数组。如果不需要任何标签,这可以作为 NULL 传递。单个条目也可以设置为 NULL。包含数字项。 |
UF_DISP_conehead_attrb_s * | attributes | Input | An array of conehead attribute structures If this is set to NULL, the current conehead attributes are used for all the coneheads. For a description of this structure and how to set the current conehead attributes see UF_DISP_set_conehead_attrb. Contains num entries. Conehead 属性结构的数组如果设置为 NULL,则所有的 conehead 都使用当前的 conehead 属性。有关此结构以及如何设置当前 conehead 属性的说明,请参见 UF _ DISP _ set _ conehead _ attrb。包含数字项。 |
double | selection_point | Input | Determines where the selection points are on the coneheads. This is given as a fraction of the total conehead length, 0.0 to 1.0. 确定选择点在锥头上的位置。这是作为总锥头长度的一部分给出的,0.0到1.0。 |
int | display_coneheads | Input | Which coneheads will remain displayed on ReturnUF_UI_DISP_NONE UF_UI_DISP_SELECTED UF_UI_DISP_ALL 哪些锥头将继续显示在 Return nUF _ UI _ DISP _ NONE UF _ UI _ DISP _ SELECTED UF _ UI _ DISP _ ALL 上 |
int * | selected_num | Output | The conehead that was selected. 1 to num. Only valid if response = UF_UI_OK. 选择的 conehead。1到 num。只有当 response = UF _ UI _ OK 时才有效。 |
int * | response | Output | Indication of the users response: UF_UI_OK UF_UI_BACK UF_UI_CANCEL 用户响应的指示: UF _ UI _ OK UF _ UI _ Back UF _ UI _ CANCEL |
>>> 返回目录
文章来源:https://www.toymoban.com/news/detail-855312.html
C++语言在UG二次开发中的应用及综合分析
- C++ 是C语言的扩展,它既可以执行C语言的过程化程序设计,也可以进行以抽象数据类型为特点的基于对象的设计,以及面向对象的程序设计。C++ 在处理问题规模上具有很大的适应性。
- C++不仅具有计算机高效运行的实用性特征,并且致力于提升大规模程序的编程质量以及程序设计语言的问题描述能力。
在UG二次开发中,C++语言具有以下特点
- C++语言支持多种程序设计风格
- C++的许多特性以库的形式存在,保证了语言的简洁和开发运行的效率
- 与C语言相比,C++引入了面向对象的概念,使得UG二次开发的人机交互界面更加简洁
- 通过借助UG自带的2000多种API函数,结合高级语言C++以及编程软件Visual Studio,可以对UG进行二次开发
- 需要注意的是,市场上的Visual Studio和UG版本众多,并非所有版本都能兼容
程序设计过程通常包括以下步骤:
- 问题分析:对要解决的问题进行深入的分析,理解问题的具体需求和限制。
- 需求定义:明确程序的目标和功能,包括用户需求、系统需求等。
- 设计:根据需求进行设计,包括算法设计、数据结构设计、界面设计等。
- 编码:根据设计的结果,使用一种编程语言将程序代码实现出来。
- 测试:通过各种测试方法来确保程序的正确性,包括单元测试、集成测试、系统测试等。
- 维护:对程序进行修改和完善,以解决可能出现的问题或满足新的需求。
- 文档编写:编写程序文档,描述程序的功能、操作方法、注意事项等。
以下是一个创建体素特征(块、柱、锥、球)的二次开发例子
#include <stdio.h>
#include <stdarg.h>
#include <uf_modl_primitives.h>
#include <uf_ui_ugopen.h>
#include <uf.h>
#include <uf_defs.h>
//封装打印函数,用于将信息打印到信息窗口
//QQ3123197280
int ECHO(const char* szFormat, ...)
{
char szMsg[5000] = "";
va_list arg_ptr;
va_start(arg_ptr, szFormat);
vsprintf_s(szMsg, szFormat, arg_ptr);
va_end(arg_ptr);
UF_UI_open_listing_window();
UF_UI_write_listing_window(szMsg);
return 0;
}
extern DllExport void ufusr(char* param, int* returnCode, int rlen)
{
UF_initialize();
//创建块
UF_FEATURE_SIGN sign = UF_NULLSIGN;
//块起点相对于ABS
double block_orig[3] = { 0.0,0.0,0.0 };
//方向相对于WCS
char* block_len[3] = { "10", "30", "10" };
tag_t blk_obj;//体特征
UF_MODL_create_block1(sign, block_orig, block_len, &blk_obj);
int iEdit = 0;
char* size[3];
UF_MODL_ask_block_parms(blk_obj, iEdit, size);
ECHO("%s,%s,%s\n", size[0], size[1], size[2]);//输出: p6=10,p7=30,p8=10
//创建圆柱
UF_FEATURE_SIGN sign1 = UF_NULLSIGN;
double origin[3] = { 10.0,0.0,10.0 };
char height[] = "20";
char diam[] = "10";
double direction[3] = { 0,0,1 };//方向
tag_t cyl_obj_id;
UF_MODL_create_cyl1(sign1, origin, height, diam, direction, &cyl_obj_id);
int iEdit2 = 0;
char* cDiameter;
char* cHeight;
UF_MODL_ask_cylinder_parms(cyl_obj_id, iEdit2, &cDiameter, &cHeight);
ECHO("%s,%s\n", cDiameter, cHeight);//输出:p9=10,p10=20
UF_free(cDiameter);
UF_free(cHeight);
//创建圆锥
UF_FEATURE_SIGN sign2 = UF_NULLSIGN;
double origin2[3] = { 0.0,0.0,10.0 };
char height2[] = "20";
char* diam2[2] = { "10" ,"5" };
double direction2[3] = { 0,0,1 };//方向
tag_t cone_obj_id;
UF_MODL_create_cone1(sign2, origin2, height2, diam2, direction2, &cone_obj_id);
int iEdit3 = 0;
char* cD1;
char* cD2;
char* cH;
char* cAngle;
UF_MODL_ask_cone_parms(cone_obj_id, iEdit3, &cD1, &cD2, &cH, &cAngle);
ECHO("%s,%s,%s,%s\n", cD1, cD2, cH, cAngle);//输出:p11=10,p12=5,p13=20,p14=7.1250163489018
UF_free(cD1);
UF_free(cD2);
UF_free(cH);
UF_free(cAngle);
//创建球
UF_FEATURE_SIGN sign3 = UF_NULLSIGN;
double douCenter2[3] = { 0.0,0.0,30.0 };
char cDiam[] = "8";
tag_t sphere_obj_id;
UF_MODL_create_sphere1(sign3, douCenter2, cDiam, &sphere_obj_id);
int iEdit4 = 0;
char* cDiam_parm;
UF_MODL_ask_sphere_parms(sphere_obj_id, iEdit4, &cDiam_parm);
ECHO("%s\n", cDiam_parm);//输出:p15=8
UF_free(cDiam_parm);
UF_terminate();
}
extern int ufusr_ask_unload(void)
{
return (UF_UNLOAD_IMMEDIATELY);
}
效果:
文章来源地址https://www.toymoban.com/news/detail-855312.html
到了这里,关于NX二次开发UF_UI_select_conehead 函数介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!