PowerMill高级应用:参数、宏与表达式结合技巧



- 新版本的PowerMILL公开了很多参数可供用户使用

- 以前很多需要通过使用二次开发程序才能实现的功能,现在可以很方便的通过参数和宏的结合即可实现

- 下面通过几个实例来举例说明:

一、参数在区域过滤中的应用:

- 定义上述的表达式要用到两个PowerMILL参数
- 表示刀具直径的参数: tool.Diameter
- 表示刀尖半径的参数: tool. TipRadius
- 这样,表示刀具平底部分直径的PowerMILL表达式就可以这样定义:(Tool. Diameter- (Tool. TipRadius * 2))
- 最小区域过滤系数(刀具平底部分直径/刀具直径)就可以定义成下面这样:(Tool. Diameter - (Tool. TipRadius * 2)) / (Tool. Diameter)
- 如果再加上20%的安全系数,就可以这样表达:(Tool.Diameter - (Tool. TipRadius * 2)) / (Tool. Diameter) * 1. 2
- 所有公开的PowerMILL参数都可以在“帮助”-“参数”-“综述”中查找

二、参数和表达式在公差设置中的应用:



- 上面的表达式还有一个问题,那就是当余量设置为零的情况下会出现计算错误



- 为了避免这个错误,我们可以给表达式设置一个判断if语句,if语句用法如下:

- If(表达式;表达式为真时;表达式为假时)

- 在表达式处输入条件判断表达式,如果值为真,则返回“表达式为真时”;如果表达式为假,则返回“表达式为假时”

- 比如,我们可以设定当余量设置为0时,公差设置为0.01,如果不是零,则公差设置为余量的1/10,

- 用PowerMILL表达式设置如下:if((thickness == 0) ;0.01; (thickness/10))

- 用上面的方法设置好以后,虽然解决了余量为0的情况下,公差运算出错的情况,

- 但是,有时候我们可能会用到负余量,这种情况下,用上面的表达式还是会出错,因为公差不可以设置为负值,我们可以用PowerMILL提供的功能函数“abs”,对上面的表达式做一个改进,对余量的1/10取一个绝对值,

- 完整的表达式如下:

- if((thickness == 0);0.01;abs(thickness/10))

- 注: PowerMILL提供的功能函数,可以在“帮助”-“参数”-“参考”-“function”中查找



- 上面的表达式已经基本完善,但是有时候余量留的比较小,比如余量设置为0.05,

- 那么计算出来的公差为0.005,我们不想使用这么小的公差,无论余量设置为多少,

- 我们想把公差控制在0.01之内,这时候我们可以用PowerMILL功能函数max对上述的表达式做出改进,

- 取自动计算出的公差和0.01里面较大的一个值,

- 完整的表达式如下:max(if ((thickness == 0) ;0. 01;abs (thickness/10));0.01)

三、参数和表达式在残留加工检测材料厚于中的应用:

- 残留粗加工中,一般情况下探测材料的设置如下:

- TOLERANCE * 2(小于此值会造成刀具路径出现中出现一些很小的片段),或者设置为:THICKNESS / 3 (假如余量设置为1mm,那么PowerMILL会探测并加工残留材料大于1.33mm的区域)

- 假如我们需要在这两个值之间取一个大值,可以这样设置:max (tolerance*2; thickness/3)如果要将此值限制到小数点后3位,则可以这样设置:round (max (tolerance*2:thickness/3):3)

- 可以用同样的方法在扩展区域进行设置

四、参数和if表达式在行距设置中的应用:

- 切削行距在很多情况下会设置成和刀具直径成一定关系。

- 比如端铣刀可以设置成: Tool.Diameter * 0.70

- 刀尖圆角端铣刀可以设置为: (Tool. Diameter- (Tool. TipRadius * 2))*0.70

- 对于球头刀,行距设置:

- 右侧图示的数学描述:Radius 2 = (RadiusTolerance) 2 + (Stepover/2) 2

- 这样可以计算出行距:Stepover = (SQRT ( (Radius 2) ((Radius - Tolerance) 2) ) *2)

- 相应的PowerMILL表达式如下:

- (sgrt(((tool. diameter/2)^2)((tool. diameter/2 tolerance)2))*2)


- 对于上面的三种刀具,对应有三种不同的行距计算方法。
- 下面我们通过使用嵌套的if语句将行距的定义统一起来:
- if (Tool. Type==' end_mill' ;Tool. Diameter*0. 7; (if (Tool. Type==' tip_radiu sed'; (Tool. Diameter- (Tool. TipRadius* 2))*0.70;(sqrt (((tool. diameter/2) ^2)-((tool. diameter/2 - tolerance) ^2) ) *2))))
- 这样PowerMILL就会自动判断当使用刀具是端铣刀时,设置行距为:Tool. Diameter*0.7
- 当使用的刀具是刀尖圆角端铣刀时,设置行距为:(Tool. Diameter - (Tool. TipRadius* 2))*0. 70
- 当使用的刀具是球头刀时,设置行距为:(sgrt(((tool. diameter/2) 2)-((tool. diameter/2 - tolerance) 2))*2)

五、参数结合宏或者右键菜单在刀具路径设置更改中的应用:

我们知道PowerMILL从9版本后增加了“设置命名的参数”的功能


- 将上面的操作录制为宏“设置连接.mac” ,宏中的内容如下:
- EDIT PAR SELECTED' Connections’
- 将宏中的这两个命令合并成一行:EDIT PAR SELECTED ' Connections’
- 下面可以将宏或者命令加入到右键菜单中:
- I“设置切入切出和连接” 1 “macro ‘X:\X\设置连接. mac“I”设置切入切出和连接” 1 “EDIT PAR SELECTED ’Connections’”
- 这样,以后就可以直接使用右键功能来实现一次更改多个刀具路径连接目的。

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空