NX/UG二次开发—CAM—一些外挂刀路选择方案对比

在做一刀轨编辑工具时,大家希望实现类似NX刀轨编辑中选择刀路的功能,以下我罗列了几种目前外挂里使用的几种方式,自己也做了一些对比:

涉及一些运算时间,参考电脑配置(内存32G,CPUi9-12950HX)

1、刀路转成曲线,使用曲线或类选择器:

这个方法相对可实现性比较强,操作安全,都可以采用开放的API,但对于刀路遍历是在NX11之后的版本提供的,因此低版本还需要使用dll导出函数去做迭代和编辑。

其次,对于大刀路,几十万或上百万根刀路,使用UFUN函数转换成曲线,非常慢。测试30万根刀路用UFUN创建,大约38s左右,包括设置曲线颜色。采用PK函数创建,创建大约2s,显示和设置大约6s,总计9s左右,速度勉强接受。

!!!注意PK创建曲线,直线的区间是长度,圆弧的区间是角度。

2、创建UF_machining_pathindex_type对象,使用类选择器            

使用PTHDSP_create_index创建的对象,然后将类选择控件设置选择UF_machining_pathindex_type类型,然后可以实现选择刀路。如果PTHDSP_create_index中的参数采用单根创建,对于刀轨数量多的程序速度依然很慢,但会比UFUN函数快很多。class UGS::CamUI::PathDisplay创建刀路很快,组数自定义,如果设置成1,速度也很慢,用class UGS::CamUI::PathDisplay创建显示的刀路,对于直线与圆弧相切的刀路,会默认成一根刀路进行选择,无法拆分。这种存在一个问题,如果优先选择程序,再打开对话框创建index,类选择控件会出现选择不灵敏的问题。

3、使用刀路选择控件UGS::CamUI::PathSelection

http://t.csdnimg.cn/k0dHaicon-default.png?t=N7T8http://t.csdnimg.cn/k0dHa

参考上面连接,需要将控件先配置到block ui模块,然后按正常制作对话框流程制作。这个对话框稍微特殊,需要用代码初始化一些属性,否则无法使用,具体属性参考如下:

UGS::CamUI::PathSelection

"m_pathOwner" "m_selectHeadIndex" "m_toolPath" "m_appendMode"

UGS::CamUI::PathDisplay

"m_toolPath"

此控件,官方资料几乎为零,很多都是对象的内存传参,使用机制和方法需要不断摸索,导致各种BUG不断。其次,在创建显示刀路,内部一般默认500根刀路一组,刀路选择控件可以自动按单根刀路选择,导致选择多根后,选择控件显示的数量与实际发生不一致。

   以上三种方案,是目前我结合一些外挂测试的的几种方法,总体来说,推荐第一种,虽然牺牲了一些速度,但在创建之后,速度和安全性均比较稳定。第二中方案和第三种就属于单纯炫技操作了,自己摸索,不推荐使用,还需结合工具开发周期和使用目的。

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恩·艾克斯·红

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值