本文介绍宏如何编辑一个自动化宏,实现不用做任何操作情况下,自动提取工件模型顶部轮廓,以及生成刀具路径。
作者寄语:如果这些内容对您有帮助,请推荐给你的朋友一起参考吧,助人为乐,如需定制个人宏或需要提供帮助,可在下方留言或私发给本公众号 。
实例模型如下图示:
自动生成路径如下图:
一、自动化技术路线思路:
1.自动创建顶部毛坯。
2.自动创建球头刀具。
3.自动生成顶部等高路径。
4.将路径自动转换成参考线。
5.自动激活倒角刀具。
6.自动将使用倒角刀具将参考下转成路径。
二、如下是具体的代码过程:
//定义一个参考线名称
string patternname = new_entity_name('pattern')
//相关变量定义可查看以下链接
PowerMill二次开发(宏编程基础篇)宏的常量与定义变量方法
//自动创建一个毛坯,以下代码可通过宏录制得到
EDIT MODEL ALL DESELECT ALL
DELETE BLOCK
EDIT BLOCKTYPE BOX
DELETE BLOCK
EDIT BLOCK ALL LOCK
EDIT BLOCK ALL UNLOCK
EDIT BLOCK COORDINATE WORKPLANE
EDIT BLOCK TOLERANCE '0.01'
//毛坯扩展值需要设置2左右
EDIT BLOCK RESETLIMIT '2'
EDIT PAR powermill.Options.Block.UseReferenceModel 1
EDIT PAR powermill.Options.Block.UseReferenceModel 0
UNDRAW BLOCK
DRAW BLOCK
EDIT BLOCK RESET
BLOCK ACCEPT
BLANK UNDO
//编辑毛坯高度,使其在模型顶部往下1mm处
EDIT BLOCK ZMIN UNLOCK
EDIT BLOCK ZMax UNLOCK
//先编辑当前毛坯高度方向最大值为当前最大值减去2.8,因为扩展了2mm
EDIT BLOCK Zmax 'BLOCK.LIMITS.ZMax-2.8'
//编辑当前毛坯高度方向最小值为当前最大值减去0.2,此处毛坯厚度为0.2mm
EDIT BLOCK Zmin 'BLOCK.LIMITS.ZMax-0.2'
BLOCK ACCEPT
//取消激活边界,即不激活边界
DEACTIVATE Boundary
//输入测试刀轨等高策略模板ptf
IMPORT TEMPLATE ENTITY TOOLPATH '\templates\MyApp\外轮廓等高.ptf'
//获取当前刀轨路径名称,以备后面操作
string Toolpathname = entity('Toolpath','').name
//定义当前新产生刀具名称变量,以备后面呼叫及操作
//相关变量定义可查看以下链接
PowerMill二次开发(宏编程基础篇)宏的常量与定义变量方法
string Testtool = new_entity_name('Tool')
//产生一把测算球刀
CREATE TOOL ; BALLNOSED
//编辑刀具直径为0.3
EDIT TOOL $Testtool DIAMETER '0.3'
//编辑路径余量为-0.1,因为刀具直径是0.3,半径为0.15,所以有意留有0.05的间隙
EDIT PAR 'Thickness' '-0.1'
//编辑下切深度值是2,目的是为了只输出一层刀轨
EDIT PAR 'AxialDepthOfCut.UserDefined' '1' EDIT PAR 'Stepdown' '2'
EDIT PAR 'CutDirection' 'any'
//编辑参数 允许刀具切削在毛坯外
EDIT PAR 'AllowToolOutsideBlock' '1'
EDIT TPPAGE STRATEGYAREAFILTER
//打开不安全段移去
EDIT PAR 'UnsafeSegmentRemoval.Active' '1'
//设置将小于分界值的段移去值15,可根据自己情况调整。防止小位置也产生路径
EDIT PAR 'UnsafeSegmentRemoval.Threshold' '15'
EDIT PAR 'UnsafeSegmentRemoval.EnclosedOnly' '1'
DEACTIVATE Boundary
//执行刀具路径计算
EDIT TOOLPATH ; CALCULATE
//判断刀具路径计算结果
//相关if-else-语句结构知识可查看下列链接
PowerMill二次开发(宏编程基础篇)6.2 控制语句-if-else语句详解
If entity('toolpath', $Toolpathname).computed = "0" {
//如果刀具路径未计算则执行以下命令,表明不可以生成顶部轮廓刀具轨迹。
//设置参考线为空,表示没有生成轮廓轨迹参考线
$patternname = ""
//删除测算的等高路径
DELETE Toolpath $Toolpathname
//删除产生的测算刀具
DELETE Tool $Testtool
} Else {
//如果刀具路径计算则执行以下命令,表明可以生成顶部轮廓刀具轨迹
//设置移动测算刀具轨迹在Z方向向上1mm,因起初做的时候是在模型最高处往下1mm
TRANSFORM MOVE '1'
TRANSFORM TYPE MOVE TRANSFORM MOVEZ PRESET TRANSFORM Toolpath ;
//移动刀具轨迹向下到需要的倒角轨迹路径深度0.6mm
TRANSFORM MOVE '-0.6'
TRANSFORM TYPE MOVE TRANSFORM MOVEZ PRESET TRANSFORM Toolpath ;
//产生一个参考线,这个参考线的名称将是给到开头定义的patternname变量
CREATE PATTERN ;
//给参考线插入当前的刀轨路径
EDIT PATTERN $patternname INSERT TOOLPATH ;
//删除测算的等高路径
DELETE Toolpath $Toolpathname
//删除产生的测算刀具
DELETE Tool $Testtool
//激活参考线
ACTIVATE Pattern '" & patternname & "'
//激活倒角刀具Mytool
ACTIVATE Tool 'Mytool'
//重新计算一次毛坯
EDIT BLOCK RESET
BLOCK ACCEPT
//关键一步将参考线转成路径的语句命令
Commit Pattern ;
// 对转换出的刀具轨迹'设置安全高度
EDIT TOOLPATH SAFEAREA RESET
TOOLZHEIGHTS ACCEPT
//到此结束生成了如图要求的轨迹路径效果
}
三、结语:
作者亲自测试,可以运行执行得到如图效果,感兴趣的读者可以根据本文进行仿制和应用,希望你可以成功做出图示自动化宏。如有不清楚过程代码含义,可翻看合计前面的基础篇内容介绍。