【NX】NX二次开发中如何设置刀具位置(对中和相切)

文章讲述了在UGCAM编程中如何设置刀具位置,特别是对中和相切的方式。作者在尝试使用UF_OPEN的代码进行设置时遇到问题,通过查阅资料和同事帮助,最终成功设置了刀具位置。关键代码涉及UF_CAMBND_app_data_t结构体和UF_CAMBND_append_bnd_from_curve函数,用于创建边界并指定刀具位置类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在cam编程中的设置窗口如下,相切或者对中,而对中其实就是刀具的中心沿着曲线居中,对称居中,所以才叫做对中吧:

 具体如何设置呢,我自己在nxopen的代码中搜索,得到:

UF_CALL(UF_PARAM_set_int_value(geometry, UF_PARAM_TOOL_POSITION, UF_PARAM_tool_posi_on_same));

但是操作失败,提示索引不合法,我猜这个函数应该实现类似的功能,但是因为没有范例,自己测试也失败了,所以只能继续寻找解决办法。

直到我看到这篇博文《UG二次开发—CAM—设置程序修剪边界Boundary》,博主提供了详细的设置参数,给了我不少启发,最终在同事的帮助下,总算成功设置了刀具位置。

以下是我成功设置刀具位置的关键代码,供参考:

{
				pCam = ivCamFeats[f];

				vector<Curve *> vProjectCurves(1);
				vProjectCurves = pCam->m_vpCurves;

				UF_CAMBND_boundary_data_t boundary_data;
				boundary_data.boundary_type = UF_CAM_boundary_type_open;


				boundary_data.plane_type = 1;
				boundary_data.ignore_chamfers = 1;
				boundary_data.ignore_holes = 1;
				boundary_data.ignore_islands = 1;
				boundary_data.app_data = nullptr;

				//修改时间:2023/07/11 ,修改人:autumoon
				//修改原因:需要修改刀具位置 相切或者居中
				UF_CAMBND_app_data_t *app_data = create_and_init_bnd_app_data(pCam->m_nCurveCamMethod == 0 ? UF_CAM_tool_position_on : UF_CAM_tool_position_tanto);

				int curveCount = vProjectCurves.size();

				tag_t * curves = new tag_t[curveCount];

				std::vector<UF_CAMBND_app_data_t*> vpAppData(curveCount);

				for (int j = 0;j < curveCount;++j)
				{
					curves[j] = vProjectCurves[j]->Tag();
					vpAppData[j] = app_data;
				}

				UF_CALL(UF_CAMBND_append_bnd_from_curve(geometry, UF_CAM_part, curveCount, curves, &boundary_data, &vpAppData[0]));

				UF_free(app_data);
				app_data = nullptr;

				delete[] curves;
				curves = nullptr;
			}

以上,欢迎交流与讨论。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值