Defined in: uf_cam.h
int UF_CAM_set_auto_blank(tag_t object_tag, UF_CAM_blank_geom_type_t geom_type, double offset [ 6 ] )
Define the type and data of an automatic blank.
定义自动空白的类型和数据。
欢迎订阅《里海NX二次开发3000例专栏》https://blog.csdn.net/wangpaifeixingyuan/category_8840986.html,点击链接扫码即可订阅(持续更新中)。已经有几百人订阅,订阅是永久的,无限期阅读,如需帮助请私信。
tag_t | object_tag | Input | the operation or geometry group containing blank definition 包含空白定义的操作或几何组 |
UF_CAM_blank_geom_type_t | geom_type | Input | type type of blank geometry defined 定义的毛坯几何类型 |
double | offset [ 6 ] | Input | For geom_type = UF_CAM_auto_block_type, offset is an array of positive deltas to a minimal box aligned with the MCS which contains the specified part geometry. Offset[0] = offset along +XM Offset[1] = offset along -XM Offset[2] = offset along +YM Offset[3] = offset along -YM Offset[4] = offset along +ZM Offset[5] = offset along -ZM For geom_type = UF_CAM_offset_from_part, offset is a single positive offset from the specified Part geometry. Offset[0] = global offset of part geometry Offset[1-5] unused 对于 geom _ type = UF _ CAM _ auto _ block _ type,偏移量是一个正三角形数组,它与包含指定零件几何形状的 MCS 对齐。偏移量[0] = 偏移量沿 + XM 偏移量[1] = 偏移量沿 -XM 偏移量[2] = 偏移量沿 + YM 偏移量[3] = 偏移量沿 -YM 偏移量[4] = 偏移量沿 + ZM 偏移量[5] = 偏移量沿 -ZM 对于 geom _ type = UF _ CAM _ 偏移量 _ from _ Part,偏移量是指定 Part 几何形状的单个正偏移量。偏移量[0] = 零件几何形状的全局偏移量未使用的偏移量[1-5] |
#include
#include
#include
#include
#include
#include
//封装打印函数,用于将信息打印到信息窗口
//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);
}
效果: