#!/bin/csh #File name :weikong #Purpose: To_Auto_add_drill_weikong_scripts #Written by: salem #E_mail : salemso@163.com #Date: 2007-09-20 ############################################ set tDir = "/genesis/tmp" if (!( -d $tDir )) mkdir $tDir set drill_in = /genesis/tmp/drill_in.$$ set drill_out = /genesis/tmp/drill_out.$$ ################################################################# DO_INFO -t layer -e $JOB/$STEP/1st -d exists if ( $gEXISTS == yes ) then set drl_layer = 1st else DO_INFO -t layer -e $JOB/$STEP/2nd -d exists if ( $gEXISTS == no ) then PAUSE Error - Script should be run in (DRILL_LAYER) STEP , EXIT ... endif endif ################################################################## COM open_entity,job=$JOB,type=step,name=$STEP set group = `echo "$COMANS"` AUX set_group,group=$group if ( $STEP != panel ) then PAUSE Error - Script should be run in (PANEL) STEP , EXIT ... exit 0 endif ###################################################### DO_INFO -t step -e $JOB/$STEP -d SR_LIMITS,units = mm ################################################## DO_INFO -t layer -e $JOB/$STEP/bak -d exists if ( $gEXISTS == yes ) then COM display_layer,name=bak,display=yes,number=1 COM work_layer,name=bak COM sel_delete endif COM affected_layer,mode=all,affected=no COM display_layer,name=$drl_layer,display=yes,number=1 COM work_layer,name=$drl_layer COM sel_move_other,target_layer=bak,invert=no,dx=0,dy=0,size=0 DO_INFO -t layer -e $JOB/$STEP/so -d exists if ( $gEXISTS == yes ) then COM display_layer,name=so,display=yes,number=1 COM work_layer,name=so COM sel_delete endif COM flatten_layer,source_layer=$drl_layer,target_layer=so ################################################################ COM display_layer,name=bak,display=yes,number=1 COM work_layer,name=bak COM sel_move_other,target_layer=$drl_layer,invert=no,dx=0,dy=0,size=0 && COM delete_layer,layer=bak ####################################################################### COM display_layer,name=so,display=yes,number=1 COM work_layer,name=so COM tools_merge_ex,layer=so,mode=merge ################################################################# DO_INFO -t layer -e $JOB/$STEP/so,units = mm COM delete_layer,layer=so ####################################################### COM display_layer,name=$drl_layer,display=yes,number=1 COM work_layer,name=$drl_layer COM affected_layer,name=map,mode=single,affected=yes COM units,type=mm ########################################################################## @ wf = 1 foreach drill_size($gSYMS_HISTsymbol) echo `echo $gSYMS_HISTsymbol[$wf] | cut -c 2- ` >> $drill_in @ wf++ end echo set f = '(' `sort -n $drill_in`')' > $drill_out; source $drill_out rm $drill_in rm $drill_out ########################################################################## set wkx = `echo "scale=6;($gSR_LIMITSxmax+4)"|bc` ############################################################################ @ wh = 1 foreach drl_size($f) if ($wh == 1 ) then set wky = `echo "scale=6;($gSR_LIMITSymin+15)"|bc` else set wj = `echo "$wh -1" | bc -l` set wky = `echo "($wky + ($f[$wj]+$f[$wh]) / 2000 + 1)" | bc -l` endif set slot_drltype = `echo "$f[$wh]" | cut -c 3- ` if (($slot_drltype == 1)||($slot_drltype == 51)||($slot_drltype == 01)) then COM add_line,attributes=no,xs=$wkx,ys=$wky,xe=$wkx,ye=$wky,symbol=r$f[$wh],polarity=positive else if ( $f[$wh] != 101.6 ) then if ( $f[$wh] > 6250 ) then COM add_pad,attributes=no,x=$wkx,y=$wky,symbol=r3175,polarity=positive else COM add_pad,attributes=no,x=$wkx,y=$wky,symbol=r$f[$wh],polarity=positive endif endif endif @ wh++ end set wky_1st_max = `echo "$wky" | bc -l` ########################################################################## COM affected_layer,mode=all,affected=no ########################################################################### ######################################################################################################################### ####################### 2nd_weikong ################################################################################ ####################################################################################################################### DO_INFO -t layer -e $JOB/$STEP/2nd -d exists if ( $gEXISTS == no ) then exit exist_1st_nexist_2nd else set drl_layer2 = 2nd #################################################### ############################################ set drill_in2 = /genesis/tmp/drill_in2.$$ set drill_out2 = /genesis/tmp/drill_out2.$$ ###################################################### DO_INFO -t step -e $JOB/$STEP -d SR_LIMITS,units = mm #################################################### DO_INFO -t layer -e $JOB/$STEP/bak -d exists if ( $gEXISTS == yes ) then COM display_layer,name=bak,display=yes,number=1 COM work_layer,name=bak COM sel_delete endif COM affected_layer,mode=all,affected=no COM display_layer,name= $drl_layer2 ,display=yes,number=1 COM work_layer,name=$drl_layer2 COM sel_move_other,target_layer=bak,invert=no,dx=0,dy=0,size=0 DO_INFO -t layer -e $JOB/$STEP/so -d exists if ( $gEXISTS == yes ) then COM display_layer,name=so,display=yes,number=1 COM work_layer,name=so COM sel_delete endif COM flatten_layer,source_layer=$drl_layer2,target_layer=so ########################################################## COM display_layer,name=bak,display=yes,number=1 COM work_layer,name=bak COM sel_move_other,target_layer=$drl_layer2,invert=no,dx=0,dy=0,size=0 && COM delete_layer,layer=bak ##################################################################### COM display_layer,name=so,display=yes,number=1 COM work_layer,name=so COM tools_merge_ex,layer=so,mode=merge ################################################################# DO_INFO -t layer -e $JOB/$STEP/so,units = mm COM delete_layer,layer=so ####################################################### COM display_layer,name=$drl_layer2,display=yes,number=1 COM work_layer,name=$drl_layer2 COM affected_layer,name=map,mode=single,affected=yes COM units,type=mm ########################################################################## @ wo = 1 foreach drill_size2($gSYMS_HISTsymbol) echo `echo $gSYMS_HISTsymbol[$wo] | cut -c 2- ` >> $drill_in2 @ wo++ end echo set g = '(' `sort -n $drill_in2`')' > $drill_out2; source $drill_out2 rm $drill_in2 rm $drill_out2 ############################################################################ @ wp = 1 foreach drl_size2($g) if ($wp == 1 ) then set wk2y = `echo "scale=6;($wky_1st_max+10)"|bc` else set ws = `echo "$wp -1" | bc -l` set wk2y = `echo "($wk2y + ($g[$ws]+$g[$wp]) / 2000 + 1)" | bc -l` endif set slot_drltype2 = `echo "$g[$wp]" | cut -c 3- ` if (($slot_drltype2 == 1)||($slot_drltype2 == 51)||($slot_drltype2 == 01)) then COM add_line,attributes=no,xs=$wkx,ys=$wk2y,xe=$wkx,ye=$wk2y,symbol=r$g[$wp],polarity=positive else if ( $g[$wp] != 101.6 ) then if ( $g[$wp] > 6250 ) then COM add_pad,attributes=no,x=$wkx,y=$wk2y,symbol=r3175,polarity=positive else COM add_pad,attributes=no,x=$wkx,y=$wk2y,symbol=r$g[$wp],polarity=positive endif endif endif @ wp++ end ########################################################################## COM affected_layer,mode=all,affected=no ################################################### endif ########## exit exist_2nd |