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

NX二次开发UF_CAM_wizard_ask_current_object 函数介绍

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


文章作者:里海

UF_CAM_wizard_ask_current_object

Defined in: uf_ui_param.h 
int UF_CAM_wizard_ask_current_object(tag_t * param_tag )

overview 概述

This function queries the current object the manufacturing wizard
is working with. If there is no current object in the wizard process
the function will return NULL. The current object is returned through
the output parameter ‘param_tag’

此函数查询制造向导正在使用的当前对象。如果向导进程中没有当前对象,函数将返回 NULL。当前对象通过输出参数‘ param _ tag’返回

UFUN例子

parameters 参数

tag_t *

param_tag

Output

see above

见上文

NX二次开发UF_CAM_wizard_ask_current_object 函数介绍_UG二次开发

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_CAM_wizard_ask_current_object 函数介绍_开发语言_02


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

相关文章

  • NX二次开发UF_CAM_wizard_set_current_object 函数介绍
    文章作者:里海UF_CAM_wizard_set_current_objectDefinedin:uf_ui_param.h intUF_CAM_wizard_set_current_object(tag_tparam_tag)overview概述Thisfunctionsetsthecurrentobjectthemanufacturingwizardshouldworkwith.Theobjectmustexistsinthecurrentwor......
  • NX二次开发UF_CURVE_add_string_to_ocf_data 函数介绍
    文章作者:里海UF_CURVE_add_string_to_ocf_dataDefinedin:uf_curve.h intUF_CURVE_add_string_to_ocf_data(tag_tstring_tag,intoffset_direction,intnum_offsets,UF_CURVE_ocf_values_p_toffset_distances,UF_CURVE_ocf_data_p_tuf_offset_data)overview概述Addas......
  • 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......
  • Object类
    Object类是比较特殊的类,它是所有类的父类是java类层中的最高层类,所有的类都直接或间接继承了Object类当创建一个类时,总是在继承,除非某个类已经指定要从其他类继承,否则它就是从Object类继承而来的。由于所有类都是Object类子类,所以在定义类时,还省略了Object关键字:classa{}等价于cl......
  • Learning Auxiliary Monocular Contexts Helps Monocular 3D Object Detection (5)
    QualitativeResults如下图所示:  ......
  • Object Storage Service
    AliyunOSS1.createbucket2.createsub-accountthathasgrantedpermissions3.useaccesskeyandsecretbrowser->transferdirectly->osscallback-baseddirecttransfer ......