UFun设置工序操作中的各个参数

        UFun设置工序操作中的转速、部件余量/侧面余量、底部余量、毛坯余量、检查余量、修剪边界余量/修剪余量、设置合并距离、最小切削长度、切削顺序、设置内外公差,设置边界内外公差。

UFun设置工序操作中的各个参数_第1张图片

UFun设置工序操作中的各个参数_第2张图片

/*这里operTag为一个工序操作,可以是已经创建好的操作,也可以是新创建的操作*/
//operTag的获取过程,这里是通过查询选中的工序操作来获取
int count=0;
tag_t * objects;
UF_UI_ONT_ask_selected_nodes(&count, &objects);
if (count<=0)
{
    return;
}
else
{
    if(GetTagType(vSelectNodes[0])== UF_machining_operation_type)
    {
        tag_t operTag = objects[0];
        /进行参数设置

    }
    else
    {
        return;
    }
}

///设置参数
tag_t operTag;
//设置进给率需要先读在设置
UF_PARAM_feedrate_t feed_value;     
UF_PARAM_ask_subobj_ptr_value(vOperTags[i], UF_PARAM_FEED_CUT, &feed_value);
feed_value.value = jinggilv;
UF_PARAM_set_subobj_ptr_value(vOperTags[i], UF_PARAM_FEED_CUT, &feed_value);
//设置转速
UF_PARAM_set_double_value(vOperTags[i], UF_PARAM_SPINDLE_RPM, zhuanshu);
//不勾选侧面与底面余量―致
UF_PARA_set_int_value (operTag,UF_PARAL_STOCK_PART_USE,UF_PARA_stock_part_use_as_is);
//设置侧面余量/部件余量
UF_PARAM_set_double_value (operTag,UF_PARAM_STOCK_PART,0.4);
//设置底部余量
UF_PARAM_set_double_value (operTag,UF_PARA_STOCK_FLOOR,0.3);
//设置毛坯余量
//UF_PARAM_set_double_value(vOperTags[i], UF_PARAM_STOCK_BLANK, yuliang);
//设置检查余量
UF_PARAM_set_double_value (operTag,UF_PARAM_STOCK_CHECK,0.2);
//设置修剪边界余量/修剪余量
UF_PARAM_set_double_value (operTag,UF_PARAM_STOCK_TRIM,0.1);
//设置合并距离
UF_PARAM_set_double_value (operTag, UF_PARAM_MERGE_DIST , 1.26);
//设置最小切削长度
UF_PARAM_set_double_value (operTag, UF_PARAM_CUT_MIN_LENGTH , 3.33);
//设置切削顺序(深度优先)
UF_PARAM_set_int_value (operTag, UF_PARAM_CUT_LEVEL_ORDER ,  UF_PARAM_cut_level_order_depth_first);
//设置内、外公差
double InOutValue[2] = { neigongcha,waigongcha };
UF_PARAM_set_2d_value(vOperTags[i], UF_PARAM_TOL_IN_OUT, InOutValue);
//设置边界内外公差
UF_PARAM_set_2d_value (operTag,UF_PARAA_BOUNDARY_TOL,InOutvlaue);
//同理,如果要获取公差,使用UF_PARA_ask_2d_value方法即可,得到的也是一个二维数组。
///
//函数声明
//获取对象的类型,subtype=1获得子类型,否则为子类型
int GetTagType(tag_t objTag, int sub = 0);

//函数定义
//获取对象的类型,subtype=1获得子类型,否则为子类型
int GetTagType(tag_t objTag, int sub)
{
 
	int type = 0, subtype = 0;
	UF_OBJ_ask_type_and_subtype(objTag, &type, &subtype);
	if (sub <=0)
	{
		objTag = type;
		
	}
	else
	{
		objTag = subtype;
	}
	return objTag;
}

你可能感兴趣的:(NX二次开发CAM加工,c++,ui)