首页 > 其他分享 >NX二次开发UF_CURVE_add_string_to_ocf_data 函数介绍

NX二次开发UF_CURVE_add_string_to_ocf_data 函数介绍

时间:2023-11-27 15:04:11浏览次数:34  
标签:obj string int CURVE C++ char 二次开发 UF id


文章作者:里海

UF_CURVE_add_string_to_ocf_data

Defined in: uf_curve.h 
int UF_CURVE_add_string_to_ocf_data(tag_t string_tag, int offset_direction, int num_offsets, UF_CURVE_ocf_values_p_t offset_distances, UF_CURVE_ocf_data_p_t uf_offset_data )

overview 概述

Add a string to an associated offset curve on face feature.
If the string is invalid, an error is returned.

将字符串添加到相关的面部特征偏移曲线上。如果字符串无效,则返回错误。

UFUN例子


parameters 参数

tag_t

string_tag

Input

Identifier of a string

字符串的标识符

int

offset_direction

Input

direction along where the offset will be performed

沿着偏移将被执行的地方的方向

int

num_offsets

Input

Number of offsets to create for the input string

要为输入字符串创建的偏移量数

UF_CURVE_ocf_values_p_t

offset_distances

Input

Offset values for each offset

每个偏移量的偏移量值

UF_CURVE_ocf_data_p_t

uf_offset_data

Input / Output

Pointer to the structure containing data to define the offset curve on face operation

指向包含数据的结构的指针,用于在面操作时定义偏移曲线

NX二次开发UF_CURVE_add_string_to_ocf_data 函数介绍_java

C++语言在UG二次开发中的应用及综合分析

  1. C++ 是C语言的扩展,它既可以执行C语言的过程化程序设计,也可以进行以抽象数据类型为特点的基于对象的设计,以及面向对象的程序设计。C++ 在处理问题规模上具有很大的适应性。
  2. C++不仅具有计算机高效运行的实用性特征,并且致力于提升大规模程序的编程质量以及程序设计语言的问题描述能力。

在UG二次开发中,C++语言具有以下特点

  1. C++语言支持多种程序设计风格
  2. C++的许多特性以库的形式存在,保证了语言的简洁和开发运行的效率
  3. 与C语言相比,C++引入了面向对象的概念,使得UG二次开发的人机交互界面更加简洁
  4. 通过借助UG自带的2000多种API函数,结合高级语言C++以及编程软件Visual Studio,可以对UG进行二次开发
  5. 需要注意的是,市场上的Visual Studio和UG版本众多,并非所有版本都能兼容

程序设计过程通常包括以下步骤:

  1. 问题分析:对要解决的问题进行深入的分析,理解问题的具体需求和限制。
  2. 需求定义:明确程序的目标和功能,包括用户需求、系统需求等。
  3. 设计:根据需求进行设计,包括算法设计、数据结构设计、界面设计等。
  4. 编码:根据设计的结果,使用一种编程语言将程序代码实现出来。
  5. 测试:通过各种测试方法来确保程序的正确性,包括单元测试、集成测试、系统测试等。
  6. 维护:对程序进行修改和完善,以解决可能出现的问题或满足新的需求。
  7. 文档编写:编写程序文档,描述程序的功能、操作方法、注意事项等。

以下是一个创建体素特征(块、柱、锥、球)的二次开发例子

#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);
}

效果:

NX二次开发UF_CURVE_add_string_to_ocf_data 函数介绍_NX二次开发_02


标签:obj,string,int,CURVE,C++,char,二次开发,UF,id
From: https://blog.51cto.com/wangpaifeixingy/8586280

相关文章

  • NX二次开发UF_CURVE_ask_arc_data 函数介绍
    文章作者:里海UF_CURVE_ask_arc_dataDefinedin:uf_curve.h intUF_CURVE_ask_arc_data(tag_tarc,UF_CURVE_arc_p_tarc_coords)overview概述Returnsthedataofanarc.Thedataisinthestructurearc_coordspointedtobyUF_CURVE_arc_p_tandincludesthematrixt......
  • NX二次开发UF_CSYS_edit_matrix_of_object 函数介绍
    文章作者:里海UF_CSYS_edit_matrix_of_objectDefinedin:uf_csys.h intUF_CSYS_edit_matrix_of_object(tag_tobject_id,tag_tmatrix_id)overview概述Updatesthespecifiedcoordinatesystemmatrixwiththeidentifierofthenewcoordinatesystemmatrixthatyouspe......
  • NX二次开发UF_CSYS_set_wcs_display 函数介绍
    文章作者:里海UF_CSYS_set_wcs_displayDefinedin:uf_csys.h intUF_CSYS_set_wcs_display(intdisplay_status)overview概述Setdisplayofworkcoordinatesystem.展示工作坐标系。UFUN例子parameters参数intdisplay_statusInput1=thewcsshouldbedisplayed0=thewc......
  • NX二次开发UF_CSYS_create_csys 函数介绍
    文章作者:里海UF_CSYS_create_csysDefinedin:uf_csys.h intUF_CSYS_create_csys(constdoublecsys_origin[3],tag_tmatrix_id,tag_t*csys_id)overview概述CreatesaCSYS.创建一个CSYS。UFUN例子parameters参数constdoublecsys_origin[3]InputTheoriginfor......
  • NX二次开发UF_CSYS_set_wcs 函数介绍
    文章作者:里海UF_CSYS_set_wcsDefinedin:uf_csys.h intUF_CSYS_set_wcs(tag_tcsys_id)overview概述Setstheworkcoordinatesystemtotheprototypecoordinatesystemwhosetagyouspecifyandthenupdatesthedisplay.Ifanoccurrencecoordinatesystemisspeci......
  • linux系统下php安装mbstring扩展的二种方法
    https://pythonjishu.com/zqqrcvxyfjqmmke/下面是详细讲解“Linux系统下PHP安装mbstring扩展的二种方法”的攻略:方法一:通过源码安装下载PHP源码,并解压缩到指定目录。$tar-zxvfphp-7.4.12.tar.gz//解压PHP源码包进入源码目录,执行configure配置脚本。$cdphp-7.4.12......
  • 为什么 IDEA 建议去掉 StringBuilder,而要使用 “+” 拼接字符串?
    作者:京东零售姜波来源:京东云开发者社区各位小伙伴在字符串拼接时应该都见过下面这种提示:内容翻译:报告StringBuffer、StringBuilder或StringJoiner的任何用法,这些用法可以用单个java.lang.String串联来替换。使用字符串串联可以使代码更短、更简单。只有当得到的串联至少与原......
  • 包装类和tostring
    基本数据类型:boolean,byte,short,int,long,char,float,double包装类:Boolean,Byth,Short,Integrt,Long,Character,Float,Double基本数据类型包装成包装类的实例--装箱获得包装类对象中包装的基本类型变量--拆箱jdk1.5后支持自动装箱自动拆箱,但类型必须匹配packageJavaSE.包装类;......
  • 透析Java本质的36个话题03String类
    1.来龙去脉-“+”是怎么连接字符串的?“+”号对String对象的连接OracleJDK1.7的实现: 当使用+字符串拼接,会创建一个临时的StringBuilder对象,该对象调用append连接操作。 类似于StringBuilder.append(s1).append(s2).toString;"+"的性能如果是在循环中对String对象进......
  • apache的字符串工具类StringUtils
    org.apache.commons.lang3.StringUtils。<!--StringUtils、NumberUtils等工具类--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.10</version></d......