打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
基于Python语言铣削封闭区域的下刀算法

☞ 这是金属加工(mw1950pub)发布的第13705篇文章

编者按


该文分别推导了封闭区域铣削斜线下刀及螺旋下刀的数学算法,并基于Python语言环境开发PyQt5工具包,制作了一个计算下刀参数的软件,免去工程技术人员编写数控代码时繁琐的计算过程,增强了编程效率。


1


序 言

在数控铣削加工过程中,有一种常见的情形——封闭区域铣削。目前市面上所使用的铣刀,尤其是直径>30mm的可转位粗加工铣刀(见图1),大多没有中心切削刃,没有竖直切削能力,若竖直下刀铣削,会产生“顶刀”事故,造成刀具损坏。

在加工封闭区域的过程中,为了避免铣刀与工件发生“顶刀”事故,铣削时多采用斜线下刀或螺旋下刀的加工策略,如图2所示。但实际生产过程中受刀具型号、现场工况复杂等因素的影响,加工技术人员基于安全方面的考虑,往往仅凭借经验值来确定斜线下刀或螺旋下刀的参数值(最长切削距离S、最大下切角θ、螺旋线直径Dl、螺距P等),采用这种方式确定的参数值往往比较保守,不利于铣削粗加工时客户对生产效率的追求。本文针对封闭区域铣削加工中常见的两种下刀方式以及其所需的最短下刀距离进行了详细的数学算法推导,并基于Python语言编制了计算机软件用来计算相关下刀参数值,以方便技术人员计算使用。


2


斜线下刀分析及参数计算

可转位铣刀加工封闭区域时,刀具前刀片的侧刃和底刃、后刀片的底刃是参与切削的接触部分。斜线下刀参数如图3所示,此时前刀片的切削刃与处于后刀片的切削刃间存在着一个深度差h,深度差随着刀具轨迹与工件上表面之间夹角θ的增大而增大。当深度差超过可转位铣刀底刃的容屑区域,也就是工件底面接触刀具极限位置B点所在的平面时,工件上的残留材料就会挤压刀具,造成工件“顶刀”事故。

   

因此,斜线下刀的刀具轨迹与工件表面之间的最大下切角θ应满足:

                                             

         (1)

式中,Dc为刀具直径,h为深度差(也叫盲区高度),w为刀片宽度。

铣削加工斜线下刀时,除了需要注意下切角度必须小于最大下切角θ之外,还需要注意刀片侧刃有效切深La大于工件实际的深度L,否则也会发生撞刀事故,斜线下刀切削深度如图4所示。斜线下刀时,最长切削距离S不能无限大,应当满足:

    (2)



3


螺旋下刀分析及参数计算

螺旋下刀切削封闭区域时,刀具底刃旋转形成环状区域,下刀过程中刀具沿柱面上的螺旋线走刀,螺旋线在底面上的投影为圆。螺旋下刀过程中出现的三种情形如图5所示。

情形A中,螺旋直径过小,刀片不能把刀具正下方的余料切除,工件与刀具中心发生碰撞,这种情形需要严格避免;情形B中,刀具刀片正好过孔中心,能清除孔内所有余料,这种情况是最理想的情形;情形C中,刀具直径过小,切削过程中孔中心会留下一个圆柱形状的余料,如果圆柱余料过细,则自身就会发生折断,容易造成工件及刀具损坏,这种情况下,可以适当减小刀具螺旋下刀的直径。综上所述,工件孔直径Dk与刀具各参数(见图6)的关系如下所示:

                       (3)

式中,Dc为刀具直径,w为刀片宽度,Dk为工件孔的直径。

刀具螺旋线路径的直径Dl=Dk-Dc,带入式(3)得:

                        (4)

对于螺旋下刀时下刀角度、螺距与刀具各参数之间的关系,可将螺旋下刀看作特殊的斜线下刀,将弯曲形状的螺旋线展开成直线,如图7所示,图中P为螺旋下刀螺距。

螺旋下刀时角度范围与斜线下刀时相同,即:    

                        (5)

同时,受到刀具侧刃有效切深的影响,螺距P应该同时满足P<La,该值一般较大不会超过。因此,只考虑顶刀问题即可,当螺旋线直径值取大值Dc,则螺距P应满足:     

      (7)

一般计算下刀参数时,会给定一个安全系数γ(取值范围0~1),推荐的螺旋下刀直径值Dl和螺距P都是最大值和安全系数相乘得出的结果。


4


Python语言软件设计

依据以上斜线下刀及螺旋下刀的相应算法,基于Python语言环境下开发PyQt5工具包,开发一个下刀参数实用软件,点击.exe文件,界面如图8所示。 

手动输入刀具直径Dc,刀片宽度w,盲区高度h(也叫深度差),刀片侧刃有效切深La,安全系数γ,点击“计算”按钮,则可计算出最长切削距离S,最大下切角度θ,最大螺距Pmax,推荐螺旋直径Dl,推荐螺距P。例如,按照提示输入相应的参数,即可生成结果,如图9所示。

Python编程核心代码如下。

#设置框架布局
classMyClass(QWidget):
def__init__(self):
super().__init__()
self.initUI()
definitUI(self):
  self.setWindowTitle('封闭区域下刀参数计算器')
  self.resize(600,400)
  self.move(desk.width()/2-self.height()/2,100)
  lbl1=QLabel('刀具直径 Dc:',self)
  lbl2=QLabel('刀片宽度 w:',self)
  lbl3=QLabel('盲区高度 h:', self)
  lbl4=QLabel('有效切削长度 La:', self)
  lbl0=QLabel('安全系数γ:', self)
  lbl5 = QLabel('最长切削距离 S:', self)
  lbl6 = QLabel('最大下切角度θ:', self)
  lbl7 = QLabel('最大螺距 Pmax:', self)
  lbl10 = QLabel('推荐螺旋线直径 Dl:', self)
  lbl8 = QLabel('推荐螺距 P:', self)
  lbl9 = QLabel('结果显示区', self)
#设置提示报警的文字
  if (aaa=='' or bbb=='' or ccc=='' or ddd==''or iii==''):
  QMessageBox.question(self, '消息:', '请输入完整数值!', QMessageBox.Ok)
  else:
  AAA1 =eval(aaa)
  BBB1 = eval(bbb)
  CCC1 = eval(ccc)
  DDD1 = eval(ddd)
  III1=eval(iii)#安全系数
if((AAA1 <= 2 * BBB1) or (AAA1==0) or (BBB1==0) or (CCC1==0) or (DDD1==0) orIII1==0):
  QMessageBox.question(self, '消息:', '数值不正确', QMessageBox.Ok)
#设置主要公式
  try:
  EEE1=DDD1*(AAA1-2*BBB1)/CCC1 #最大切削距离La*(Dc-2*w)/h
  FFF1=atan(CCC1/(AAA1-2*BBB1))*180/pi #arctanh/(Dc-2*w)
  GGG1=pi*AAA1*CCC1/(AAA1-2*BBB1)#最大螺距
  JJJ1=AAA1*III1#推荐螺旋线
  HHH1=GGG1*III1
  if DDD1<HHH1:
  HHH1=DDD1*III1

5


结束语

本文以封闭区域铣削过程中常出现的“顶刀”事故为出发点,对比研究了数控铣削加工中斜线下刀和螺旋下刀两种下刀策略的算法。基于加工工况及基础参数(刀具直径Dc、刀片宽度w、盲区高度h、刀片侧刃有效切深La及安全系数γ)建立了相关数学模型,同时运用Python语言下的PyQt5工具包编制了实用软件,用来计算相关下刀参数值(最长切削距离S、最大下切角θ、螺旋线直径Dl及螺距P等)。经过多台计算机反复测试,该软件操作方便、运行稳定,免去了编写数控代码时繁琐的计算过程,在保证安全的前提下大大提高了加工效率。目前该软件已在本公司内部员工中运行使用,并逐渐推广。

本文发表于《金属加工(冷加工)》2021年第8期第70~73页,作者:沈阳云科聚匠教育科技有限公司  成建峰,沈阳职业技术学院 赵猛。原标题:《基于Python语言铣削封闭区域的下刀算法》。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
多刃螺纹铣刀加工螺纹
【视频】螺纹加工视频大全,看过真是赚到了!
螺纹铣刀与丝锥攻丝有什么区别,谁的优势大呢?
关于铣削螺纹加工的故事
Mastercam进刀方式的设定
【第三节】PyQt5布局管理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服