有学习脚本的朋友请进
各位客户:
欢迎光临。会脚本,有脚本学习资料的朋友,帮帮兄弟门。老是把脚本当作RMB来交易太没有意思了,好东西大家一起分享,乐趣是最宝贵的。其他的兄弟意下如何。赞成的也不用鼓掌,不喜欢看的兄弟也不要砸鸡蛋。哈哈。
#File name : Copy layers
#Purpose: Copy layers from cad or net to cam,in order to compare cam to cad or net.
#Written by: wjw
#Date: 6/10/2005
source $GENESIS_DIR/sys/scripts/common.csh
DO_INFO -t matrix -e $JOB/matrix -d ROW
DO_INFO -t step -e $JOB/$STEP -d SR_LIMITS
DO_INFO -t step -e $JOB/$STEP -d PROF_LIMITS
DO_INFO -t step -e $JOB/$STEP -d SR
# Define correct temp. dir. depending on env. vars.
if ($?GENESIS_TMP) then
set TMP = $GENESIS_TMP
else if ($?GENESIS_DIR) then
set TMP = $GENESIS_DIR/tmp
else
set TMP = /genesis/tmp
endif
# Set up gui data and response files
set GUI_DATA = $TMP/gui_data.$$
set GUI_RESP = $TMP/gui_resp.$$
# Set varible to use to point to drill size selection program and table (typically $GENESIS_DIR/sys/hooks).
set DTM_PATH = `echo "$GENESIS_DIR/sys/hooks"`
# Set control variable to select use of external drill table.
set NO_DRILL_TABLE = `echo "no"`
# Set control variable to select use of correct metric return.
set PROPER_METRIC = `echo "no"`
# Detect current operating system.
set CURR_OS = `uname -s`
# If current operating system is NT, set alias to call awk95 as "awk".
if ($CURR_OS == "WINDOWS_NT") then
alias awk '$GENESIS_DIR/e${GENESIS_VER}/nt/bin/awk95'
endif
again:
set aquamarine = 409980
set pink = 997580
set tan = 827155
set gold = 998400
set light_blue = 688590
set grey = 757575
set yellow = 999900
set black = 000000
set white = 999999
#Define GUI window
again:
echo WIN 300 200 >> $GUI_DATA
echo FONT cbi18 >> $GUI_DATA
echo FG $black >> $GUI_DATA
echo BG $white >> $GUI_DATA
echo FORM >> $GUI_DATA
echo LABEL "Copy or compare">> $GUI_DATA
echo ENDFORM >> $GUI_DATA
echo BG 008800 >> $GUI_DATA
echo FORM >> $GUI_DATA
echo RADIO radio Copy H 1 890000 >> $GUI_DATA
echo Compare cad >> $GUI_DATA
echo cad to cam >> $GUI_DATA
echo net to cam >> $GUI_DATA
echo Delete >> $GUI_DATA
echo Exit >> $GUI_DATA
echo END >> $GUI_DATA
echo ENDFORM >> $GUI_DATA
echo BG 964650 >> $GUI_DATA
echo CLABEL Softbridge Continue! >> $GUI_DATA
gui $GUI_DATA > $GUI_RESP
source $GUI_RESP; \rm $GUI_RESP; \rm $GUI_DATA
if ( $radio == 1 ) then
###限定在cad中运行
if ($step == cad) then
else
PAUSE Error The current step is not CAD ,please run the scrip in CAD step!
exit
endif
COM open_entity,job=$job,type=step,name=cad,iconic=no
AUX set_group,group=$COMANS
set first_board_layer = 0
set second_layer = 0
set rout_layer = 0
set matrix_counter = 1
set current_layer = 0
set max_layer = 0
set max_layer = $#gROWcontext
###判断最高层
while ( $matrix_counter <= $#gROWcontext )
if ( $gROWname[$matrix_counter] == "rout" ) then
set rout_layer = $matrix_counter
@ rout_layer--
endif
if ( $gROWname[$matrix_counter] == "" ) then
set max_layer = $matrix_counter
@ max_layer--
goto next
endif
@ matrix_counter++
end
next:
##判断第一层
set matrix_counter = 0
while ( $matrix_counter <= $#gROWcontext )
if ($gROWcontext[$matrix_counter] == "board") then
set first_board_layer = $matrix_counter
if ($first_board_layer > 2 ) then
goto continue
else
PAUSE Error Please reading the origin file in cad step!
exit
endif
endif
@ matrix_counter++
end
continue:
#将非board属性的层排到最后
set matrix_counter = $first_board_layer
while ( $matrix_counter <= $rout_layer )
if ($gROWcontext[$matrix_counter] == "misc") then
COM display_layer,name=$gROWname[$matrix_counter],display=yes,number=1
COM work_layer,name=$gROWname[$matrix_counter]
COM sel_move_other,target_layer=$gROWname[$matrix_counter]_tmp,invert=no,dx=0,dy=0,size=0
COM delete_layer,layer=$gROWname[$matrix_counter]
COM rename_layer,name=$gROWname[$matrix_counter]_tmp,new_name=$gROWname[$matrix_counter]
endif
@ matrix_counter++
end
next2:
set matrix_counter = 1
while ( $matrix_counter <= $first_board_layer )
set second_layer = `echo "scale=0;$matrix_counter + $first_board_layer - 1 "|bc`
if ($second_layer > $max_layer ) then
PAUSE Error Please delete the additional layer ,then compare again!
exit
endif
@ matrix_counter++
end
###层比较
set matrix_counter = 1
while ( $matrix_counter < $first_board_layer )
set second_layer = `echo "scale=0;$matrix_counter + $first_board_layer - 1 "|bc`
COM display_layer,name=$gROWname[$second_layer],display=yes,number=1
COM work_layer,name=$gROWname[$second_layer]
COM filter_area_strt
COM filter_area_end,layer=,filter_name=popup,operation=select,area_type=none,inside_area=no,intersect_area=no,lines_only=no,ovals_only=no,min_len=0,max_len=0,min_angle=0,max_angle=0
COM filter_reset,filter_name=popup
COM get_select_count
if ($COMANS == 0) then
goto next1
else
COM clear_highlight
COM sel_clear_feat
COM compare_layers,layer1=$gROWname[$matrix_counter],job2=$job,step2=cad,layer2=$gROWname[$second_layer],layer2_ext=,tol=0.5,area=global,ignore_attr=,map_layer=$gROWname[$second_layer]_diff,map_layer_res=200
COM display_layer,name=$gROWname[$second_layer]_diff,display=yes,number=1
COM work_layer,name=$gROWname[$second_layer]_diff
COM filter_set,filter_name=popup,update_popup=no,include_syms=r0
COM filter_area_strt
COM filter_area_end,layer=,filter_name=popup,operation=select,area_type=none,inside_area=no,intersect_area=no,lines_only=no,ovals_only=no,min_len=0,max_len=0,min_angle=0,max_angle=0
COM filter_reset,filter_name=popup
COM get_select_count
if ($COMANS == 0) then
COM delete_layer,layer=$gROWname[$second_layer]_diff
endif
COM clear_highlight
COM sel_clear_feat
endif
next1:
@ matrix_counter++
end
endif
if ( $radio == 2 ) then
if ($step == cam) then
else
PAUSE Error The current step is not CAM ,please run the scrip in CAM step!
exit
endif
set matrix_counter = 0
while ( $matrix_counter <= $#gROWcontext )
if ( ( $gROWlayer_type[$matrix_counter] == "signal" || $gROWlayer_type[$matrix_counter] == "silk_screen" || $gROWlayer_type[$matrix_counter] == "solder_mask" || $gROWlayer_type[$matrix_counter] == "drill" || $gROWlayer_type[$matrix_counter] == "power_ground" ) && $gROWcontext[$matrix_counter] == "board" && $gROWname[$matrix_counter] != cs1 && $gROWname[$matrix_counter] != ss1 ) then
COM copy_layer,source_job=$JOB,source_step=cad,source_layer=$gROWname[$matrix_counter],dest=layer_name,dest_layer=$gROWname[$matrix_counter]_cad,mode=replace,invert=no
endif
@ matrix_counter++
end
endif
if ( $radio == 3 ) then
if ($step == cam) then
else
PAUSE Error The current step is not CAM ,please run the scrip in CAM step!
exit
endif
set matrix_counter = 0
while ( $matrix_counter <= $#gROWcontext )
if ( ( $gROWlayer_type[$matrix_counter] == "signal" || $gROWlayer_type[$matrix_counter] == "silk_screen" || $gROWlayer_type[$matrix_counter] == "solder_mask" || $gROWlayer_type[$matrix_counter] == "drill" || $gROWlayer_type[$matrix_counter] == "power_ground" ) && $gROWcontext[$matrix_counter] == "board" && $gROWname[$matrix_counter] != cs1 && $gROWname[$matrix_counter] != ss1 ) then
COM copy_layer,source_job=$JOB,source_step=net,source_layer=$gROWname[$matrix_counter],dest=layer_name,dest_layer=$gROWname[$matrix_counter]_net,mode=replace,invert=no
endif
@ matrix_counter++
end
endif
if ( $radio == 4 ) then
DO_INFO -t matrix -e $JOB/matrix
foreach LAYER ($gROWname)
set TST = `echo "$LAYER" | grep -c _cad`
if ($TST != 0) then
COM delete_layer,layer=$LAYER
endif
end
DO_INFO -t matrix -e $JOB/matrix
foreach LAYER ($gROWname)
set TST = `echo "$LAYER" | grep -c _net`
if ($TST != 0) then
COM delete_layer,layer=$LAYER
endif
end
DO_INFO -t matrix -e $JOB/matrix
foreach LAYER ($gROWname)
set TST = `echo "$LAYER" | grep -c _diff`
if ($TST != 0) then
COM delete_layer,layer=$LAYER
endif
end
endif
if ( $radio == 5 ) then
exit
endif
是的,我同意你的说话!
同意,请问想学的话该从何下手
dddddd.我顶!
我也同意思,可这年代,能有几个会这样想呢?人都是很现实,都是在为了钱而活着。哎:悲哀!
cs_cs 你的QQ多少是
有时间跟你学习学习
我真的费了很多力气来学这个,可是,不知道从什么地方入手,麻烦大的很
要从哪个地方开始入手学啊.
说的好啊
我发了4500学了几天,没学到什么,正好可以跟你学一学。
有奥宝教材,可惜没电子挡啊~~
支持!
有的人太现实我们就不要那么活着啊!我赞成!但要从什么地方入手啊!
我也同意思,可这年代,能有几个会这样想呢?人都是很现实,都是在为了钱而活着。哎:悲哀!
吓人的吧!4500?什么培训班啊?一半都不用,唉!这年头!
兄弟 给大家发些资料啊 这个我看不懂啊
我还是不太懂这是什么意思
TO:CS_CS
你的脚本有些不足之处,用CASE语句写较为方便一些.
dd
说的好呀
看不懂这个好麻烦
还有没有关于掏铜皮,做阻抗什么的?
期待小编再贴
shuo de hao
支持
