PCB论坛网

 找回密码
 注册
楼主: justwin

genesis 運行perl scripts?

[复制链接]
发表于 2004-7-17 16:53:37 | 显示全部楼层
以下是引用justwin在2004-7-17 16:24:10的发言:

版主:可否給我一個簡單的 .pl 程式,讓我試跑,看是否能執行.(因為example.pl老是有問題)謝謝.

這是我跑example.pl的結果...........

[此贴子已经被作者于2004-7-17 16:55:39编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

发表于 2004-7-17 17:05:10 | 显示全部楼层

寫一個小程序去呼叫他,內容為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";

回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-17 22:54:41 | 显示全部楼层

版主: 執行後,產生警告訊息. f: Undefined variable. 好像perl無執行.....

可否教我,如何debug perl scripts 的方法..謝謝版主.

[em06]
回复 支持 反对

使用道具 举报

发表于 2004-7-18 01:40:29 | 显示全部楼层
以下是引用justwin在2004-7-17 22:54:41的发言:

版主: 執行後,產生警告訊息. f: Undefined variable. 好像perl無執行.....

可否教我,如何debug perl scripts 的方法..謝謝版主.

[em06]
將Genesis.pm server.pl copy到c:\perl\site\lib 下
在genesis中run一個程序:內容為c:\perl\bin\perl.exe test.pl
要記得在genesis中執行,不然Genesis.pm的通道不能被打開.....
至於要除錯可以加一句長舌婦功能......
use Diagnostics; #此功能函數能告訴你的語法哪裡錯了........並舉例給你看......
你再試看看.....加油.........我喜歡有耐性的人............... [em05]
回复 支持 反对

使用道具 举报

发表于 2004-7-18 01:44:11 | 显示全部楼层
以下是引用justwin在2004-7-17 22:54:41的发言:

版主: 執行後,產生警告訊息. f: Undefined variable. 好像perl無執行.....

可否教我,如何debug perl scripts 的方法..謝謝版主.

[em06]

在Genesis中執行........不要另外執行..........

加一句use Diagnostics;它會提示你錯誤的地方及範例.............perl界稱此為長舌婦功能.........

很晚了........我要去睡了.............有問題再貼上來吧....我喜歡有耐心的人.............

回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-18 15:43:59 | 显示全部楼层

謝謝版主的用心指導:

記得有一次使用perl程式執行example.pl時,可跑到第一個訊息劃面...!

可是再重灌perl v5.8.4時,就無法執行example.pl了,好像genesis無法讓perl程式跑.才會每次run perl scripts時,都會無法認得變數值.(我認為perl程式通道,好像没有打開).

我怎麼試,都好像不能執行perl主程式[em06],請版主再次賜教......感激

[em04]
回复 支持 反对

使用道具 举报

发表于 2004-7-18 17:51:43 | 显示全部楼层
以下是引用justwin在2004-7-18 15:43:59的发言:

謝謝版主的用心指導:

記得有一次使用perl程式執行example.pl時,可跑到第一個訊息劃面...!

可是再重灌perl v5.8.4時,就無法執行example.pl了,好像genesis無法讓perl程式跑.才會每次run perl scripts時,都會無法認得變數值.(我認為perl程式通道,好像没有打開).

我怎麼試,都好像不能執行perl主程式[em06],請版主再次賜教......感激

[em04]

因為在家沒genesis所以我不能試5.8.4版本的perl

但我猜想你應該是以下其中一個錯誤吧......

=head: Command not found. Set: Command not found. Most: Command not found. =cut: Command not found. use: Command not found. use: Command not found. sub: Command not found. sub: Command not found. ARGV: Undefined variable.

若有以上錯誤那表示你的scr_start.csh不是最新的或跟genesis版本不配......

我問過我Valor的朋友了.........它的說法跟我一樣........

要跟你的genesis2000安裝時的版本一樣..........你的genesis2000是哪一版呢?

回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-18 22:35:37 | 显示全部楼层

我的版本為v8.0a和v7.11版.

scr_start.csh不是最新的或跟genesis版本不配,請問要如何解決?再請版主賜教...

If you receive the following output then the file scr_start.csh is not up to date and doesn't work with perl scripts.

=head: Command not found. Set: Command not found. Most: Command not found. =cut: Command not found. use: Command not found. use: Command not found. sub: Command not found. sub: Command not found. ARGV: Undefined variable.

[em06]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-18 23:06:19 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-18 23:18:03 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|手机版|PCB设计论坛|EDA论坛|PCB论坛网 ( 沪ICP备05006956号-1 )

GMT+8, 2024-5-15 02:49 , Processed in 0.208929 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表