寫一個小程序去呼叫他,內容為c:/perl/bin/perl.exe test.pl (記得按enter)
若無問題會出現Test ok!
若無畫面或Error表示錯誤...........
基本上我認為example.pl的例子還不錯用..........
#############以下為test.pl的內容########################
use Genesis;
$f = new Genesis;
$JOB = $ENV{JOB};
$STEP = $ENV{STEP};
$job_name = $JOB;
$step_name = $STEP;
$f->COM(open_entity,job=> $job_name,type=> step,name=> pcb);
$group=$f->{COMANS};
$f->AUX(set_group,group=> $group);
$f->COM(units,type=> inch);
print "COMANS = $group\n";
$f->COM(affected_layer,name=>"",mode=>all,affected=>"no");
$f->COM(clear_layers);
$f->COM(clear_highlight);
$f->COM(sel_clear_feat);
$f->COM(filter_reset,filter_name=>"popup");
$f->INFO(entity_type => 'layer',
entity_path => "$job_name/pcb/perl_test",
data_type => 'exists');
if ($f->{doinfo}{gEXISTS} eq 'yes') {
$f->COM(delete_layer, layer => perl_test);
}
$f->COM(display_layer,name=>"l1",display=>"yes",number=>"1");
$f->COM(work_layer,name=>"l1");
$f->COM(filter_set,filter_name=>"popup",update_popup=>"no",feat_types=>"pad");
$f->COM(filter_area_strt);
$f->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);
$f->COM(filter_reset,filter_name=>"popup");
$f->COM(get_select_count);
if ($f->{COMANS} != 0) {
#$f->COM(sel_copy_other,dest=>"layer_name",target_layer=>"perl_test",invert=>"no",dx=>0,dy=>0,size=>0);
$f->INFO(entity_type => 'layer',
entity_path => "$JOB/pcb/l1",
data_type => 'FEATURES',
options => "select");
$f->COM(affected_layer,name=>"",mode=>all,affected=>"no");
$f->COM(clear_layers);
$f->COM(clear_highlight);
$f->COM(sel_clear_feat);
$f->COM(filter_reset,filter_name=>"popup");
$f->AUSE("Test ok!");
} else {
$f->AUSE("Error!");
}
###########################################################
open INFO, "/tmp/info_csh.$$" or die "Error!($!)";
$i=0;
while (<INFO>) {
chomp;
if (/^#P/) {
$a = "$_";
$a[$i] = (split (/\s+/))[1];
$i += 1;
}
}
print "Array= @a\n"; |