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进行确认。

如上图所示,系数已经变为万分之几的钻孔格式。