PCB论坛网

 找回密码
 注册
12
返回列表 发新帖
楼主: sugar

[原创]MentorBoardStation自动改Gerber名字程序

  [复制链接]
发表于 2010-10-27 15:33:07 | 显示全部楼层
请教sugar,
想用AMPLE在FABLINK做个拼版脚本
比如说6层阴阳拼版,由于每个项目的artwork_order 设置可能不同,
Layer_order number排序也不同,
如可能是1 2 3 4 5 6, 也可能是其他顺序,如1 2 3 4 7 8,
想根据此order number做条件判断,来决定如何做接下来的拼版动作,如何做呢?
能否提供个AMPLE 示例,多多感谢
$report_artwork_order();
回复 支持 反对

使用道具 举报

发表于 2010-11-3 10:16:15 | 显示全部楼层
感谢楼主,这样的楼主要顶,狂顶!!
哈哈
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-11-4 11:10:45 | 显示全部楼层
回复 12# sunsong


我不清楚你的阴阳板拼板是怎么来实现的,但是如果你想仅仅根据Order Number来判断,估计不行,得根据artwork_order每一行里面的关键字来判断。
回复 支持 反对

使用道具 举报

发表于 2010-11-4 11:52:38 | 显示全部楼层
做阴阳拼版我的方法是先在FABLINK里手工建立两个PANEL_P,PANLE_N,分别是阳板和阴板,分别$create_artwork_data,出GERBER,
再将PANEL_P的 1层GERBER和PANEL_N的4层,用下面的方法合为一层,另存为panel_artwork_1,完成一层阴阳拼版,重复1-4,2-3,3-2, 4-1,完成4层板阴阳拼版,其他层也用此方法完成。
请SUGAR指点下,此法下,根据何种条件判断能自动根据artwork_order来做4,6层等不同artwork_order顺序下的拼版动作。
$set_active_window($strcat("BO$",$get_board_name()));
   $open_artwork_data("PANEL_P_artwork_1", "SIGNAL", "", @select, @warnonce);
   $open_artwork_data("PANEL_N_artwork_4", "SIGNAL", "", @select, @warnonce);
$set_active_window("AR$PANEL_P_artwork_1");
$add_geometry("PANEL_N_artwork_4", "", @d0, @nomirror, 1, [0, 0, "AR$PANEL_P_artwork_1"], @NoRepeat);
$save_artwork_data($strcat($get_design_name(),"/pcb/mfg/panel_artwork_1"), "PANEL_P_artwork_1", @gerber, "Gerber_274X", @ascii, ["signal"], @specify_layers, @flash_area_fill, @flash_polygon);
//$set_active_window("AR$PANEL_P_artwork_1");
   $delete_this_geometry("PANEL_P_artwork_1", @confirm);
//$set_active_window("AR$PANEL_N_artwork_4);
   $delete_this_geometry("PANEL_N_artwork_4", @confirm);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-11-4 14:20:41 | 显示全部楼层
做阴阳拼版我的方法是先在FABLINK里手工建立两个PANEL_P,PANLE_N,分别是阳板和阴板,分别$create_artwork_d ...
sunsong 发表于 2010-11-4 11:52


既然你已经分别产生了阴和阳的Gerber,逻辑关系还是挺好确定的,比如信号层是10层,那么假设N=layer number, 那么,N应该和11-N的那个层来合并,mask和silk 等等也可以这么做。
我想最主要的困难是如何用Ample来实现,我觉得Ample的功能比较弱,要是我做的话,我会先用Perl产生一个对应关系的文件,然后再在Fablink下由Ample去读取。
或者我直接用Perl来合并Gerber,反正都是ASCII码的,只是要把第一个Gerber中的最后一个光绘语句M02去除掉再合并就行了。
回复 支持 反对

使用道具 举报

发表于 2010-11-4 16:16:40 | 显示全部楼层
谢谢SUGAR,提供了个很新颖的思路,直接编辑合并P,N两个ASCII码文件,完成阴阳拼版,我试了了下合并P,N两个ASCII码文件两个文件,在CAM350导入查看,是正确的。只是不懂PERL,看来的学习PERL了。
请求SUGER,能否将你的rn.pl功能扩展下,合并两个ASCII码并另存命名。这样就造福人民了,人民感谢你,呵呵!
#!/usr/bin/perl -w
use   Cwd;
my $dir  = getcwd;
my $file_name="$dir/pcb/mfg/artwork_order";
& read_file($file_name);
sub read_file{my($file_name)=@_;
$i = -1;
@artwork_list = (artwork_1,artwork_2,artwork_3,artwork_4,artwork_5,artwork_6,artwork_7,artwork_8,artwork_9,artwork_10,artwork_11,artwork_12,artwork_13,artwork_14,artwork_15,
artwork_16,artwork_17,artwork_18,artwork_19,artwork_20,artwork_21,artwork_22,artwork_23,artwork_24,artwork_25,artwork_26,artwork_27,artwork_28,artwork_29,artwork_30);

open (MYFILE,"$file_name") || die ("Could not open this file!");

@array = <MYFILE>;

foreach $line (@array){foreach $al (@artwork_list)
{if (grep /\b$al\b/,$line)
{if (grep /signal/i,$line)
{rename $dir."/pcb/mfg/".$al, $dir."/pcb/mfg/"."LAY".$i.".GBR"}
elsif (grep /\bsolder_mask_1\b/i,$line){rename $dir."/pcb/mfg/".$al, $dir."/pcb/mfg/"."MASK1".".GBR"}
elsif (grep /\bsolder_mask_2\b/i,$line){rename $dir."/pcb/mfg/".$al, $dir."/pcb/mfg/"."MASK2".".GBR"}
elsif (grep /\bpaste_mask_1\b/i,$line){rename $dir."/pcb/mfg/".$al, $dir."/pcb/mfg/"."PASTE1".".GBR"}
elsif (grep /\bpaste_mask_2\b/i,$line){rename $dir."/pcb/mfg/".$al, $dir."/pcb/mfg/"."PASTE2".".GBR"}
elsif (grep /\bsilkscreen_1\b/i,$line){rename $dir."/pcb/mfg/".$al, $dir."/pcb/mfg/"."SILK1".".GBR"}
elsif (grep /\bsilkscreen_2\b/i,$line){rename $dir."/pcb/mfg/".$al, $dir."/pcb/mfg/"."SILK2".".GBR"}
elsif (grep /\bboard_outline\b/i,$line){rename $dir."/pcb/mfg/".$al, $dir."/pcb/mfg/"."OUTLINE".".GBR"}}}$i = $i+1;}
close(MYFILE);}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-11-8 12:45:45 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2011-9-19 13:28:22 | 显示全部楼层
回复 10# sunsong


    ding
回复 支持 反对

使用道具 举报

发表于 2022-8-13 18:42:32 | 显示全部楼层
你好,有MentorBoardStation安装程序吗,急需,非常感谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 16:17 , Processed in 0.137549 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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