51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

PowerMill二次开发(宏编程实战篇)1.3 工件模型顶部自动画轮廓

本文介绍宏如何编辑一个自动化宏,实现不用做任何操作情况下,自动提取工件模型顶部轮廓,以及生成刀具路径。

作者寄语:如果这些内容对您有帮助,请推荐给你的朋友一起参考吧,助人为乐,如需定制个人宏或需要提供帮助,可在下方留言或私发给本公众号

实例模型如下图示:

自动生成路径如下图:

一、自动化技术路线思路:

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

//到此结束生成了如图要求的轨迹路径效果

}

三、结语:

作者亲自测试,可以运行执行得到如图效果,感兴趣的读者可以根据本文进行仿制和应用,希望你可以成功做出图示自动化宏。如有不清楚过程代码含义,可翻看合计前面的基础篇内容介绍。


赞(1)
未经允许不得转载:工具盒子 » PowerMill二次开发(宏编程实战篇)1.3 工件模型顶部自动画轮廓