文章作者:里海
来源网站:https://blog.csdn.net/wangpaifeixingyuan
uf_assem_capture_arrangement_from_current_sequence_extended
defined in: uf_assem.h
int uf_assem_capture_arrangement_from_current_sequence_extended(const char * arrangement_name, logical ignore_constraints, tag_t arrangement, int warnings_count, int* * warnings )**
overview 概述
performs an update validity check on a component array. if the array
can be updated, then this function returns 0. if the array check fails,
then this function returns an error code. use uf_get_fail_message to
capture the error string. some possible errors that can occur are as
follows:
“array is suppressed.”
“array template is unloaded.”
“array master is unloaded.”
“array template is not mated to a valid feature instance.”
“array size expression is invalid.”
对组件数组执行更新有效性检查。如果数组可以更新,则此函数返回0。如果数组检查失败,则此函数返回错误代码。使用 uf _ get _ fall _ message 捕获错误字符串。可能发生的一些错误如下: “ array 被抑制。”“数组模板已卸载”“数组管理器已卸载”“数组模板与有效的特性实例不匹配。”“数组大小表达式无效。”
ufun例子
欢迎订阅《里海nx二次开发3000例专栏》,点击链接扫码即可订阅(持续更新中)。已经有几百人订阅,订阅是永久的,无限期阅读,如需帮助请私信。
parameters 参数
const char * | arrangement_name | input | the name of the arrangement 安排的名称 |
logical | ignore_constraints | input | whether to ignore assembly constraints 是否忽略程序集约束 |
tag_t* | arrangement | output | the created arrangement 创造的安排 |
int* | warnings_count | output | the number of warnings 警告的数量 |
int* * | warnings | output to uf_free | list of warning codes. must be freed with uf_free 警告代码列表。必须使用 uf _ free 释放 |
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);
}
效果:
发表评论