UG/NX二次开发自动编程系列之七识别特征并构建加工区域

有疑问或无法实现请留言或私信可以提供解答

算法介绍

三轴机床的工作原理是刀具在主轴上,主轴高速旋转带动刀具转动。主轴相当于几何轴的Z轴,代表高度轴,它的运动方向是垂直的。机床的工作台是一个矩形平台,它可以进行横向跟纵向移动。分别代表几何上的X,Y轴。它是通过主轴带到刀具高速旋转并调节高度,然后利用工作台的移动来进行工件加工的。当然工件毛坯是通过装夹固定在加工台上的。基于这个原理,我们很容易看到工件是按照高度,从上到下一层层的加工出来的。同样我们容易发现,如果两个加工面在相同高度并且这两个面是连通的。理论上这两个面是可以一同加工的。而这也是我们区分加工区域的依据。就是在相同加工区域内的面必然连通。区分加工区域我们采用两个步骤,1.先按照高度将加工面组成加工树,2.将相同高度的加工面进行合并,主要验证他们是否连通,连通即可合并。然后将其转换成加工区域树。这算法相对于识别算法简单很多,需要识别的加工区域大概有: 通孔,孔,通槽,外轮廓,倒角,加工平面,其他

算法讲解

按高度组装加工树

这个比较简单,就是验证面的所有边(外轮廓边+内部边)是不是邻面的顶边,如果是则邻面是当前面的子级

通孔

这个也比较简单,我们首先找到没有子级并且面的类型是圆柱或者圆锥的面。然后将面的轴心(在AskFaceData对象中)抽掉观察轴数据,将剩余两个轴的值当做唯一key,进行分组。即可得到,(但是需要验证它的完成性)

孔的识别跟通孔一样。唯一的区别就是将通孔的面过滤掉。首先找到没有子级并且面的类型是圆柱或者圆锥的面。然后将面的轴心(在AskFaceData对象中)抽掉观察轴数据,将剩余两个轴的值当做唯一key,进行分组。即可得到,(但是需要验证它的完成性)

孔的完整性验证

这个算法很简单,但计算量比较大。就是从第一个面开始找它的邻面里包含孔面中的哪个面。找到后再从找到的那个面开始,持续上一个步骤。直到找到第一个面为止。如果能循环一圈找到第一个面则孔完成。

通槽

这个算法稍微复杂些,首先找到没有子级并且没有确定加工区域的面,之后组环。首先什么是通槽,通槽直观理解就是工件上挖了一个洞,但它不是孔,孔的面是由相同轴线的。但是槽可能是随意形状的。这里说的组环跟验证孔的完整性类似,就是找到哪些面是连续的,连续的面属于同一个槽。

外轮廓

外轮廓属于一种通槽的一种特例。唯一不同的是,因为它是工件的边缘,包含工件的坐标极值。

倒角

倒角与通槽有些像,首先找到类型是圆锥和平面,并且平面的法向量与观察轴角度大于0,并且没有确定加工区域的面。简单理解就是符合三个条件的面,类型=圆锥,平面,平面与观察轴不垂直,还未识别加工区域的。之后就是组环,与通槽的组环一样,不同的是这个不强调完整性。

平面

加工平面的识别难得是如何判断两个平面是否归属同一个加工区域。也就是如何验证他的连通性。这里提供一种判断思路,就是验证是否有相同的底,简单讲就是如果跟同一条山谷相连的两座山峰,那么他们必然是连通的。也就是说我们肯定能找到一条不调整高度的情况下从一座山峰到达另一座山峰。因为可以沿着下山的路径做平移。

首先将所有垂直于观察轴的平面观察轴的大小排序。然后将相同高度的面进行连通性判定。原则是A与B连通,B与C连通。则ABC都连通,属于同一区域。

总结

我们会发现算法是按照一个顺序依次计算的,通孔,孔,通槽,外轮廓,倒角,加工平面,其他。这样好处是降低计算量,并且降低复杂度。因为特征算法之间存在交集,比如倒角的算法它会把圆锥孔包含在内,孔的算法会包含通孔等。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值