CAM资料钻孔系数设置
CAM在制作工具中,因生产工艺需要考虑物理特性,需要提前预设涨缩系数。其中钻孔为了减少钻孔数量,需要以万分之几的描述
CAM在作业中,经常遇到忘记修改板边系数,换算错误等烦恼,本文以解决此烦恼探讨如何解决这些需求。
01 实现原理
以ODB++格式存储的Genesis软件中,使用.comment属性(可以自行添加自定义的属性),配合line hooks 在output时计算钻孔格式系数并更新.comment属性值,实现动态的效果。
02 修改流程
03 设置hooks
这里以设置output_layer_set.pre输出钻孔为例说明,其他的实现方式可以扩展。
#!/bin/csh
#File Name: output_layer_set.pre
#Written : Alex(wangge@nengxingtech.com)
#Date : Jun26.2021
#Ver : 1.0
#程序用于修改输出时相关到变量
#获取系统传递的参数
source $1
#根据层名判断是否为钻孔层
if($lnVAL[1] == 'drl') then
#计算x涨缩值
set inputscalex = `echo "scale=0; $lnVAL[4] * 100000" | bc | awk -F '.' '{print $1}'`
if ($inputscalex > 100000 ) then
set scalex = `echo "scale=3; ($inputscalex - 100000) * 0.1" | bc`
else if ($inputscalex < 100000 ) then
set scalex = `echo "scale=3; (100000 - $inputscalex) * 0.1" | bc`
set scalex = -${scalex}
else
set scalex = 0
endif
#计算y涨缩值
set inputscaley = `echo "scale=0; $lnVAL[5] * 100000" | bc | awk -F '.' '{print $1}'`
if ($inputscaley > 100000 ) then
set scaley = `echo "scale=3; ($inputscaley - 100000) * 0.1" | bc`
else if ($inputscaley < 100000 ) then
set scaley = `echo "scale=3; (100000 - $inputscaley) * 0.1" | bc`
set scaley = -${scaley}
else
set scaley = 0
endif
#组合涨缩值描述
set drlscale = "X${scalex}Y${scaley}"
#设置钻孔涨缩值到层的变量
COM set_attribute, type=layer,job=$JOB,name1=$STEP,name2=$lnVAL[1],\
name3=,attribute=.comment,value=$drlscale
endif
#退出程序
exit
04 设置钻孔层系数变量
在Panel封边的时候添加钻孔字麦到留边,或者手动添加也可以。这里以.comment举例说明,可以添加自定义变量。初次添加的时候没有设置变量会没有显示,只需要添加位置准确就可以。
05 输出测试
在output界面输出的时候输入输出系数,执行输出。
反读回genesis进行确认。
如上图所示,系数已经变为万分之几的钻孔格式。