Commit 48be72f8 authored by Scott Sun's avatar Scott Sun

scott

parent 55212463
...@@ -430,9 +430,6 @@ try{ ...@@ -430,9 +430,6 @@ try{
$GEN->closeStep(); $GEN->closeStep();
} }
_deleteLayer(step=>$Step,layer=>['qec_goldfr+++','qec_goldba+++','qec_ospfr+++','qec_ospba+++', _deleteLayer(step=>$Step,layer=>['qec_goldfr+++','qec_goldba+++','qec_ospfr+++','qec_ospba+++',
'rel_qec_goldfr+qec_ospfr+++','rel_qec_goldba+qec_ospba+++']); 'rel_qec_goldfr+qec_ospfr+++','rel_qec_goldba+qec_ospba+++']);
...@@ -443,9 +440,6 @@ try{ ...@@ -443,9 +440,6 @@ try{
} }
my $info_step=$layerinfo->{sel}; my $info_step=$layerinfo->{sel};
$GEN->openStep(job=>$Job,name=>$Step); $GEN->openStep(job=>$Job,name=>$Step);
$GEN->units(type=>'mm'); $GEN->units(type=>'mm');
if ($PLAN_STATE eq 'SHA') { if ($PLAN_STATE eq 'SHA') {
...@@ -497,17 +491,11 @@ try{ ...@@ -497,17 +491,11 @@ try{
} }
} }
if ($GEN->isLayerExists(job=>$Job,layer=>$ref_layer_c)){ if ($GEN->isLayerExists(job=>$Job,layer=>$ref_layer_c)){
my $ff = exposed_pad_size($Job,$Step,$layerinfo->{$ll},$ref_layer_c,$info_step); my $ff = exposed_pad_size($Job,$Step,$layerinfo->{$ll},$ref_layer_c,$info_step);
foreach my $num (keys %$ff){ foreach my $num (keys %$ff){
$guard_warning{$ll}{$num}=$ff->{$num}; $guard_warning{$ll}{$num}=$ff->{$num};
} }
#push @guard_warning , "On $ll side, ".join("<br>",@$ff) if (@$ff);
} }
else{ else{
$guard_warning{1} ="On $ll side, All layer exposed"; $guard_warning{1} ="On $ll side, All layer exposed";
...@@ -554,90 +542,6 @@ try{ ...@@ -554,90 +542,6 @@ try{
-jobinfohash=>{ATS_GE01_mail =>$sent_mail}); -jobinfohash=>{ATS_GE01_mail =>$sent_mail});
} }
} }
#if ($PLAN_STATE eq 'SHA') {
# my @guard_warning;
# foreach my $ref_layer_c('ref_layer_c_fr','ref_layer_c_ba'){
# my $ll='top';
# my @refs= ('qec_goldfr','qec_ospfr');
# if ($ref_layer_c eq 'ref_layer_c_ba'){
# @refs= ('qec_goldba','qec_ospba') ;
# $ll='bottom';
# }
#
# if (!$GEN->isLayerExists(job=>$Job,layer=>$ref_layer_c)){
# foreach my $ggg (@refs){
# if ($GEN->isLayerExists(job=>$Job,layer=>$ggg)){
# my @steps11 = $GEN->getSubSteps(job=>$Job,step=>$Step);
# if (@steps11) {
# foreach my $f (@steps11){
# $GEN->openStep(job=>$Job,name=>$f);
# $GEN->units(type=>'mm');
# $GEN->copyLayer(source_job=>$Job,
# source_step=>$Step,
# source_layer=>$ggg,
# dest_layer=>$ref_layer_c.'_tmp',
# mode=>'append', #append
# invert=>'yes');#|'yes'
# }
#
# $GEN->openStep(job=>$Job,name=>$Step);
# $GEN->units(type=>'mm');
# $GEN->flattenLayer(source_layer=>$ref_layer_c.'_tmp',target_layer=>$ref_layer_c.'_tmp1');
# $GEN->copyLayer(source_job=>$Job,
# source_step=>$Step,
# source_layer=>$ref_layer_c.'_tmp1',
# dest_layer=>$ref_layer_c,
# #mode=>'append', #append
# invert=>'no');#|'yes'
# }
# else{
# $GEN->copyLayer(source_job=>$Job,
# source_step=>$Step,
# source_layer=>$ggg,
# dest_layer=>$ref_layer_c,
# mode=>'append', #append
# invert=>'no');#|'yes'
# }
# }
#
# }
# }
#
#
# if ($GEN->isLayerExists(job=>$Job,layer=>$ref_layer_c)){
# my $ff = exposed_pad_size($Job,$Step,$ll,$ref_layer_c,$info_step);
# push @guard_warning , "On $ll side, ".join("<br>",@$ff) if (@$ff);
# }
# else{
# push @guard_warning , "On $ll side, All layer exposed";
# }
# }
#
# if (@guard_warning) {
# my $subject = "AUTO MAIL:GE01 risk PN[$JOB]";
# my $sent_mail = "Base on [$info_step]<br>".join("<br>",@guard_warning);
# mail_sand_task(jobname=>$JOB,
# title=>'exposed_pad_Area_GE01',
# subject=>$subject,
# body=>$sent_mail,
# #sand_mode=>'always',
# );
# ##### 生产拷贝文件
# #my $output_path = "/winshare/Z_customerdrawing/$Job";
# #my $tmp_path = "/winshare/Z_customerdrawing/".uc $Job;
# #if (-d $tmp_path){
# # `mv $tmp_path $output_path`;
# #}else{
# # mkdir $output_path ;
# #}
# #open(my $fh , ">$output_path/GE01 risk PN [$JOB].html");
# #print $fh "GE01 risk PN[$JOB]<br>";
# #print $fh "$sent_mail";
# #close($fh);
# }
#}
my %surface; my %surface;
$surface{'gold_fr'}=0; $surface{'gold_fr'}=0;
...@@ -660,7 +564,6 @@ try{ ...@@ -660,7 +564,6 @@ try{
$surface{'ref_fr'}=$layerinfo->{Reffr}; $surface{'ref_fr'}=$layerinfo->{Reffr};
$surface{'ref_ba'}=$layerinfo->{Refba}; $surface{'ref_ba'}=$layerinfo->{Refba};
#$GEN->PAUSE("11111111111111 $drill $layerinfo->{Goldfr} and $layerinfo->{Reffr}");
$surface{'gold_fr'}=exposedArea($Job,$Step,$thick,$layerinfo->{Front},'qec_goldfr',$layerinfo->{Back},'ats_empty',$layerinfo->{Drill}) if ($layerinfo->{Goldfr} and $layerinfo->{Reffr}); $surface{'gold_fr'}=exposedArea($Job,$Step,$thick,$layerinfo->{Front},'qec_goldfr',$layerinfo->{Back},'ats_empty',$layerinfo->{Drill}) if ($layerinfo->{Goldfr} and $layerinfo->{Reffr});
...@@ -694,14 +597,6 @@ try{ ...@@ -694,14 +597,6 @@ try{
$surface{'carbon'}=sprintf('%.4f',$surface{'carbon'}); $surface{'carbon'}=sprintf('%.4f',$surface{'carbon'});
} }
#= $GUI->select_single(
# -title=>'All the surface calculation is based on:',
# -list=>['Card'=>'Card','Array'=>'Array'],
# -defaultvalue=>'all_left'
#);
$surface{'baseon'} = $info_step; $surface{'baseon'} = $info_step;
# $GEN->PAUSE("$surface{baseon} g $surface{ref_fr} h $surface{ref_ba} "); # $GEN->PAUSE("$surface{baseon} g $surface{ref_fr} h $surface{ref_ba} ");
my %InfoHash; my %InfoHash;
...@@ -755,7 +650,7 @@ try{ ...@@ -755,7 +650,7 @@ try{
-jobcategory=>'org', -jobcategory=>'org',
-jobinfohash=>\%InfoHash); -jobinfohash=>\%InfoHash);
# $GUI->debug(dump(\%InfoHash));
my $Check_gold_size= sprintf('%-15s',' ').sprintf('%-15s','Exposed').sprintf('%-15s','Gold').sprintf('%-15s','Sel.Ref (sqin)')."\n"; my $Check_gold_size= sprintf('%-15s',' ').sprintf('%-15s','Exposed').sprintf('%-15s','Gold').sprintf('%-15s','Sel.Ref (sqin)')."\n";
my $Check_gold_state = 0; my $Check_gold_state = 0;
my($step_size_x,$step_size_y); my($step_size_x,$step_size_y);
...@@ -782,97 +677,6 @@ try{ ...@@ -782,97 +677,6 @@ try{
$Check_gold_size.= sprintf('%-15s',$tmpmm)."\n"; $Check_gold_size.= sprintf('%-15s',$tmpmm)."\n";
} }
# if ($Check_gold_state==1 and $Job =~/^coc/i){
# my $profile_limits = $GEN->getProfileLimits(job=>$Job,step=>$Step,units=>'mm');
# my $Card_sizex=sprintf "%.2f",$profile_limits->{xsize};
# my $Card_sizey=sprintf "%.2f",$profile_limits->{ysize};
# my $Card_size="Card size: X $Card_sizex,Y $Card_sizey (mm)";
# my $subject = "Please be informed P/N $Job gold area > 2.5sqin per single card per side";
# my $content = "Dear All\n Pls be informed gold area > 2.5sqin \nIf any feedback Please contact PE!\n\n\n$Check_gold_size${Card_size}";
# my $title="Pls be informed gold area > 2.5sqin";
# my $mails = $DB->select_arrayhash(
# -table => 'ats_auto_mail_record',
# -where => {job_id => $JOB_ID}
# );
# my $n=0;
# foreach my $item (@$mails) {
# if ( $item->{mail_subject} eq $subject) {
# $n=1;
# last;
# }
# }
# if ($PAR->{send_mail} eq 'yes' and $n==0){
# my $username =$GEN->getUserName();
# Top::MailSender->send_mail(
# subject => $subject,#标题不能为中文
# group => $PAR->{mail_group},
# to => $PAR->{internal_mail_group},
# cc_user=>[$username],
# body=>$content,
# );
# $DB->insert(
# -table => 'ats_auto_mail_record',
# -data => {
# job_id => $JOB_ID,
# mail_from => $username,
# mail_to => join(',',Top::MailSender->get_mail_list($PAR->{$PAR->{mail_group}},'to')),
# mail_cc => $username,
# mail_subject => $subject,
# mail_title => $title,
# mail_content => $content,
# mail_version => 1
# }
# )
# }
#$sql="select mail_title from auto_mail_record where job_id=$processInfo{job_id} and mail_title='Pls be informed gold area > 2.5sqin'";
#my $db1 = DB::ACAMMysql->new();
#$db1->run($sql);
#my $mail_title=$db1->next();
#my $n=0;
#if ($mail_title){
# $n=1;
# return 1;
#}
#
#if ($n==0){
# # my @mailto1=('m.pei@cn.ats.net');
# my @mailto1 = $CAM->getMailListByTypeAndCategory(-type=>'gold area > 2.5sqin',-category=>'to');
# my $mailfrom1 = $CAM->getGenesisUserMail(-username=>$USERNAME);
# my @mailcc1=('SHA_PE','m.pei@cn.ats.net',$mailfrom1);
# my $subject1 = "Pls be informed P/N ${JOB_NAME} gold area > 2.5sqin per single card per side";
# my $content1 = "Dear All\n Pls be informed gold area > 2.5sqin \nIf any feedback Please contact PE!\n\n\n$Check_gold_size${Card_size}";
#
# Lib::MailMix->sendmail_ATSMail( -mailfrom =>$mailfrom1,
# -mailto =>\@mailto1,
# -mailcc =>\@mailcc1,
# -subject =>$subject1,
# -content =>$content1
# );
#
# my $nowtime=$Genesis->localtimemysql();
# &RecordMail(-jobname=>$JOB_NAME,
# -mail_from=>$mailfrom1,
# -mail_to=>join(',',@mailto1),
# -mail_cc=>join(',',@mailcc1),
# -mail_subject=>$subject1,
# -mail_title=>"Pls be informed gold area > 2.5sqin",
# -mail_content=>$content1,
# -mail_send_time=>$nowtime,
# -mail_attachment=>''
# );
#}
# }
###output and return status, if genesis error, it will output genesis error command
unless ($GEN->{STATUS}){ unless ($GEN->{STATUS}){
return $Return; return $Return;
} }
...@@ -983,6 +787,9 @@ sub expcopperArea { ...@@ -983,6 +787,9 @@ sub expcopperArea {
} }
sub exposedArea { sub exposedArea {
# ($thick,$layerinfo->{Front},'qec_goldfr',$layerinfo->{Back},'ats_empty',$layerinfo->{Drill}) if ($layerinfo->{Goldfr} and $layerinfo->{Reffr});
# ($thick,$layerinfo->{Front},'ats_empty',$layerinfo->{Back},'qec_goldba',$layerinfo->{Drill}) if ($layerinfo->{Goldba} and $layerinfo->{Refba});
my ($job,$step,$thick,$layer1,$mask1,$layer2,$mask2,$drill) = @_; my ($job,$step,$thick,$layer1,$mask1,$layer2,$mask2,$drill) = @_;
$GEN->openStep(job=>$Job,name=>$Step); $GEN->openStep(job=>$Job,name=>$Step);
$GEN->units(type=>'mm'); $GEN->units(type=>'mm');
...@@ -1009,7 +816,7 @@ sub exposedArea { ...@@ -1009,7 +816,7 @@ sub exposedArea {
$reprot = sprintf "%0.4f",$reprot->{area}/10000; $reprot = sprintf "%0.4f",$reprot->{area}/10000;
return $reprot; return $reprot;
} }
#exposed_pad_size($Job,$Step,$layer,$ref_layer);
sub exposed_pad_size{ sub exposed_pad_size{
my $Job=shift; my $Job=shift;
my $Step= shift; my $Step= shift;
...@@ -1155,7 +962,7 @@ sub exposed_pad_size1{ ...@@ -1155,7 +962,7 @@ sub exposed_pad_size1{
} }
} }
#$GUI->debug("@guard_warning");
return \@guard_warning; return \@guard_warning;
} }
......
...@@ -438,6 +438,7 @@ function delSameJob(props){ ...@@ -438,6 +438,7 @@ function delSameJob(props){
} }
} }
} }
function analyJobFiles(props){ function analyJobFiles(props){
var files = props.jobFiles; var files = props.jobFiles;
var config = props.config; var config = props.config;
......
...@@ -3,18 +3,6 @@ NAME: ...@@ -3,18 +3,6 @@ NAME:
DESCRIPTION: 锣带输出; DESCRIPTION: 锣带输出;
PARAMETER: PARAMETER:
[ [
{
name : 'Outpath',
title : '导出路径',
type : 'LineEdit',
property : {tool_tip : '导出路径'},
},
{
name : 'step',
title : '工作step',
type : 'LineEdit',
property : {tool_tip : '工作step'},
},
{ {
name : 'auto_save', name : 'auto_save',
title : '自动保存', title : '自动保存',
...@@ -79,9 +67,8 @@ var Status = 'ok'; ...@@ -79,9 +67,8 @@ var Status = 'ok';
var resultData = []; var resultData = [];
var par = PAR; var par = PAR;
var default_par = { var default_par = {
Outpath:"C:/Users/Administrator/Desktop/jobs/demo",
auto_save: "No", auto_save: "No",
step:"step", step:"orig",
units:"mm" units:"mm"
} }
for(var key in default_par){ if (!par.hasOwnProperty(key) || par[key] == ""){ par[key] = default_par[key] }} for(var key in default_par){ if (!par.hasOwnProperty(key) || par[key] == ""){ par[key] = default_par[key] }}
...@@ -103,24 +90,54 @@ try { ...@@ -103,24 +90,54 @@ try {
GEN.clearLayers(); GEN.clearLayers();
GEN.affectedLayer( {mode:'all',affected:'no'} ); GEN.affectedLayer( {mode:'all',affected:'no'} );
GEN.COM( "sel_options,clear_mode=clear_after,display_mode=all_layers,area_inout=inside,area_select=select,select_mode=standard,area_touching_mode=exclude"); GEN.COM( "sel_options,clear_mode=clear_after,display_mode=all_layers,area_inout=inside,area_select=select,select_mode=standard,area_touching_mode=exclude");
GEN.units( {type:'mm'} );
GEN.zoomHome(); GEN.zoomHome();
var matrix = GEN.getMatrix({job:Job}); var layer = "gtl";
Object.keys(matrix).forEach(function(layer){
if(matrix[layer].context && matrix[layer].context == 'board' ){ GEN.workLayer({name:layer,display_number:2,clear_before:'yes'})
if(matrix[layer].layer_type == 'rout'){ var drl_layer = layer + "_drl"
rou_layer.push(layer) if(GEN.isLayerExists({job:job, layer:drl_layer})){GEN.deleteLayer({job:job, layer:drl_layer})}
} GEN.createLayer({job:job,layer:drl_layer,type:'drill'})
} GEN.selCopyOther({dest:'layer_name',target_layer:drl_layer,invert:'no',dx:0,dy:0,size:0})
})
if(rou_layer.length) { if(GEN.isChklistExists({job:job,step:step,chklist:'tmp_chk'})){
var info = confirm_gui({layers:rou_layer}); GEN.COM("chklist_delete,chklist=tmp_chk")
}
output_rou({job:Job,step:step,info:info}); GEN.COM("chklist_create,chklist=tmp_chk")
GEN.COM("chklist_show,chklist=tmp_chk")
input_layers({job:Job,step:step,info:info}); GEN.COM("chklist_single,action=valor_analysis_drill,show=yes")
GEN.COM("chklist_pclear")
GEN.COM("chklist_cupd,chklist=valor_analysis_drill,nact=1,params=((pp_drill_layer="+drl_layer+
")(pp_rout_distance=200)(pp_tests=Hole Separation)(pp_extra_hole_type=Pth\;Via)(pp_use_compensated_rout=Skeleton)),mode=regular")
GEN.COM("chklist_pcopy,chklist=valor_analysis_drill,nact=1")
GEN.COM("chklist_ppaste,chklist=tmp_chk,row=0")
GEN.COM("chklist_run,chklist=tmp_chk,nact=1,area=profile")
GEN.COM("chklist_close,chklist=valor_analysis_drill,mode=hide")
GEN.COM("chklist_close,chklist=tmp_chk,mode=hide")
GEN.deleteLayer({job:job, layer:drl_layer})
var meas = GEN.getCheckMeas({job:job,step:step,chklist:'tmp_chk',nact:1})
meas = ["touchh gtl_drl 1.302 mil r5.315 r5.512 SG 2.0707502 6.2600882 2.0695853 6.2595058 1 R",
"touchh gtl_drl 3.222 mil r5.315 r5.512 SG 2.0915237 6.2635829 2.0883541 6.2641619 1 R",
"closeh gtl_drl 11.209 mil r5.512 r5.512 SG 2.0849209 6.2506255 2.0876766 6.2614906 1 R",
"closeh gtl_drl 11.828 mil r5.315 r5.512 SG 2.0904016 6.2611739 2.085407 6.2504523 1 R",
"closeh gtl_drl 12.656 mil r5.315 r5.512 SG 2.0733393 6.2606873 2.0856692 6.2635406 1 Y",
"closeh gtl_drl 12.733 mil r5.315 r5.512 SG 2.0727262 6.2583112 2.0821941 6.2497969 1 Y",
"closeh gtl_drl 13.151 mil r5.512 r5.512 SG 2.0820787 6.2496599 2.0717499 6.2578 1 Y",
"closeh gtl_drl 13.826 mil r5.512 r5.512 SG 2.0722601 6.2601694 2.0856793 6.2634983 1 Y",
"closeh gtl_drl 15.75 mil r5.315 r5.315 SG 2.0733709 6.260529 2.0889031 6.263142 1 G",
"closeh gtl_drl 16.901 mil r5.315 r5.512 SG 2.088911 6.2630973 2.0722949 6.2600094 1 G",
"overlap_width gtl_drl 2.191 mil r5.315 r5.512 SG 2.0889095 6.2640604 2.0910652 6.2636666 1 R",
"overlap_width gtl_drl 4.111 mil r5.315 r5.512 SG 2.0683732 6.2588998 2.0720503 6.2607382 1 R"
]
meas = meas.filter(function(v){return /^touch/.test(v)})
if(meas.length){
meas.forEach(function(v){
var tmparr = v.split(" ")
GEN.COM("sel_net_feat,operation=select,x="+tmparr[7]+",y="+tmparr[8]+",use_ffilter=no")
if(GEN.getSelectCount() > 0){GEN.selDelete()}
})
} }
}) })
......
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment