SCRIPT 求救
见图片,写一个封边加板边的Script,红色为出错的提示,X是GUI输入的X方向的长度变量,见下面的程序,当程序执行到这里的时候,就出现这样的错误(X的值502.006也出来了),但是如果再执行,就没有问题了,程序能正常运行,也就是说这个程序,只要新开了GENESIS,第一次执行都会这样,出现后,再怎么执行都OK了,哪位大侠来指点下啊。贴部分代码
set gui_out = /tmp/gui_out.$$
set gui_in = /tmp/gui_in.$$
echo "WIN 200 200" > $gui_in
echo "FG 000000" >>$gui_in
echo "BG 328068" >>$gui_in
echo "LABEL this panel gui:" >>$gui_in
echo "TEXT wenzi WENZI :" >>$gui_in
echo "TEXT lengthx X-- :" >>$gui_in
echo "TEXT lengthy Y-- :" >>$gui_in
echo "CLABEL OK" >>$gui_in
/GENESIS/E91/ALL/GUI $gui_in >$gui_out
source $gui_out
set mkx = `echo "scale=10;$lengthx + 2.006" | bc`
set mky = `echo "scale=10;$lengthy + 2.006" | bc`
set zzz = `echo "scale=10;$lengthx/2+ 3" | bc`
COM add_pad,attributes=no,x=-5.08,y=-5.08,symbol=donut_r5000x4000,\
polarity=positive,angle=0,mirror=no,nx=1,ny=1,dx=0,dy=0,xscale=1,\
yscale=1
COM add_pad,attributes=no,x=-5.08,y=0,symbol=donut_r5000x4000,\
polarity=positive,angle=0,mirror=no,nx=1,ny=1,dx=0,dy=0,xscale=1,\
yscale=1
COM add_pad,attributes=no,x=-2.0066,y=-2.0066,symbol=donut_r1500x1200,\
polarity=positive,angle=0,mirror=no,nx=1,ny=1,dx=0,dy=0,xscale=1,\
yscale=1
COM add_pad,attributes=no,x=$mkx,y=-2.0066,symbol=donut_r1500x1200,\
polarity=positive,angle=0,mirror=no,nx=1,ny=1,dx=0,dy=0,xscale=1,\
yscale=1 (到了$MKX这个变量就开始报错)
另外 set mkx = `echo "scale=10;$lengthx + 2.006" | bc` 这个格式代表具体的每个词含义还请高手能解释下,小弟新学的

你的变量定义无误,有两方面的可能性导致以上结果,其一你用的是WINXP系统,其二,你用的D版GEN。你可以进入程序后直接试一下DRILL TOOL MANAGER中的USER PARAMETERS项,第一次运行后也会有此提示,我得出的结论是BC计算器的问题,但与别人交流时,别人不同类型的机器没有出现这种情况。
今天心情好,教你一招.以后脚本卡住了找我.发到salemso@163.com即可
用以下的方法,可解决Invalid keyboard code specified
原理:将脚本的第一个计算值,设一临时变量.如果是Invalid keyboard code specified
就切掉这个东东.脚本照常运行OK
set mkx = `echo "scale=10;$lengthx + 2.006" | bc`
set error_yesno = `echo $mkx | grep "Invalid keyboard code specified" `
if ($#error_yesno == "5") then
set tmp_silk = `echo "$tmp_silk" | cut -c 32- `
endif
bc是计算用的,scale上精确到小数点第几位
set mkx = `echo "scale=10;$lengthx + 2.006" | bc`
set error_yesno = `echo $mkx | grep "Invalid keyboard code specified" `
if ($#error_yesno == "5") then
set mkx = `echo "$mkx" | cut -c 32- `
endif
楼上解析有误
mine579
说的完全正确啊。真的是这样啊
salem 大哥的,小弟要试试啊。我还发了个镜像字的问题,就在本页的贴中,希望能不惜解答,拜谢
salem 大哥,这样弄了是没有报错了,太有才了啊
set error_yesno = `echo $mkx | grep "Invalid keyboard code specified" `
看的不是很明白啊!
能否讲解下error_yesno是个什么 变量呢? grep的是什么东西?
太高深了啊。只懂点皮毛啊
顶

加板边的料号的时候,由于用的是$JOB,但是$job的字母只能是小写的,能否加文字的时候用 $JOB,可以变成大些字母?
如:genesis里料号名称为 abc,在SCRIPT中加板边文字用$job,加出来的文字就是‘abc’,能不能改为‘ABC'呢
set JOB = `echo $JOB | tr '[a-z]' '[A-Z]'`
高手啊。又见高手。555
在你的指导下,我的封边差不多要完成了啊。在这里拜谢啊。
现在还有一点,是我今天试的时候发现的,4层板的封边,我是先封外层的,用 SR_FILL,填充的为solid,然后再用fill_params选择SYMBOL来填内层的阻流PAD,这样运行一次后程序正确,但是如果在运行的话,外层会变成内层的封边方式,我看了看,运行一次后,因为最后封的是内层,FILLPROFILE内的参数保留的是用symbol填充的,再运行的话,先运行的应该是外层的SR_FILL,但是参数改不回来,还是内层symbol填充方式。?到底是为什么呢?
因为封边程序基本上就运行一次,上面出的问题也不会怎么遇到,但到底是为什么改不回来,还请高手指点啊
你录制铺铜的时候可能少录了一段:
surface:
COM fill_params,type=solid,origin_type=datum,solid_type=surface,\
min_brush=1,use_arcs=yes,symbol=r50,dx=0.1,dy=0.1,break_partial=yes,\
cut_prims=no,outline_draw=no,outline_width=0,outline_invert=no
COM sr_fill,polarity=positive,step_margin_x=0,step_margin_y=0,\
step_max_dist_x=100,step_max_dist_y=100,sr_margin_x=0,sr_margin_y=0,\
sr_max_dist_x=0,sr_max_dist_y=0,nest_sr=yes,consider_feat=no,\
feat_margin=0,consider_drill=no,drill_margin=0,consider_rout=no,\
dest=affected_layers,layer=l2,attributes=no
pattern:
COM fill_params,type=pattern,origin_type=datum,solid_type=surface,\
min_brush=1,use_arcs=yes,symbol=r50,dx=0.1,dy=0.1,break_partial=yes,\
cut_prims=no,outline_draw=no,outline_width=0,outline_invert=no
COM sr_fill,polarity=positive,step_margin_x=0,step_margin_y=0,\
step_max_dist_x=100,step_max_dist_y=100,sr_margin_x=0,sr_margin_y=0,\
sr_max_dist_x=0,sr_max_dist_y=0,nest_sr=yes,consider_feat=no,\
feat_margin=0,consider_drill=no,drill_margin=0,consider_rout=no,\
dest=affected_layers,layer=l1,attributes=no
好久的贴,在上来顶顶,郁闷,之前用这个命令加的 JOB名字都是大写的,但不知道为什么最近什么都没有改动
部分电脑用同一个 SRIPT,有的加的是大写,有的是小写,那位大哥能解答啊?
顶啊
回 alangwansui
grep是查找字符串,error_yesno 不就是set error_yesno = `echo $mkx | grep "Invalid keyboard code specified" `这个变量吗
我个人感觉这样写不太严谨.
