电路板改板技巧中PROTEL到ALLEGRO的转换技术
    在PCB抄板、PCB设计等过程中,由于不同软件平台之间的数据或文件格式不同,常常需要借助其他的工具进行平台或文件格式的转换,本文我们将为大家介绍从PROTEL到ALLEGRO的转换技巧。
    1. Protel 原理图到Cadence Design Systems, Inc. Capture CIS
    在Protel原理图的转化上我们可以利用Protel DXP SP2的新功能来实现。通过这一功能我们可以直接将Protel的原理图转化到Capture CIS中。
    这里,我们仅提出几点通过实践总结出来的注意事项。
    1) Protel DXP在输出Capture DSN文件的时候,没有输出封装信息,在Capture中我们会看到所以元件的PCB Footprint属性都是空的。这就需要我们手工为元件添加封装信息,这也是整个转化过程中最耗时的工作。在添加封装信息时要注意保持与Protel PCB设计中的封装一致性,以及Cadence在封装命名上的限制。例如一个电阻,在Protel中的封装为AXIAL0.4,在后面介绍的封装库的转化中,将被修改为AXIAL04,这是由于Cadence不允许
封装名中出现“.”;再比如DB9接插件的封装在Protel中为DB9RA/F,将会被改为DB9RAF。因此我们在Capture中给元件添加封装信息时,要考虑到这些命名的改变。
    2) 一些器件的隐藏管脚或管脚号在转化过程中会丢失,需要在Capture中使用库编辑的方法添加上来。通常易丢失管脚号的器件时电阻电容等离散器件。
    3) 在层次化设计中,模块之间连接的总线需要在Capture中命名。即使在Protel中已经在父设计中对这样的总线命名了,还是要在Capture中重新来过,以确保连接。
    4) 对于一个封装中有多个部分的器件,要注意修改其位号。例如一个74ls00,在protel中使用其中的两个门,位号为U8A,U8B。这样的信息在转化中会丢失,需要重新添加。
fprintf格式    基本上注意到上述几点,借助Protel DXP,我们就可以将Protel的原理图转化到Capture中。进一步推广,这也为现有的Protel原理图符号库转化到Capture提供了一个途径。
    2. Protel 封装库的转化
    长期使用Protel作PCB设计,我们总会积累一个庞大的经过实践检验的Protel封装库,当
设计平台转换时,如何保留这个封装库总是令人头痛。这里,我们将使用Orcad Layout,和免费的Cadence工具Layout2allegro来完成这项工作。
    1) 在Protel中将PCB封装放置到一张空的PCB中,并将这个PCB文件用Protel PCB 2.8 ASCII的格式输出出来;
    2) 使用Orcad Layout导入这个Protel PCB 2.8 ASCII文件;
    3) 使用Layout2allegro将生成的Layout MAX文件转化为Allegro的BRD文件;
    4) 接下来,我们使用Allegro的Export功能将封装库,焊盘库输出出来,就完成了Protel封装库到Allegro转化。
    4. Protel PCB到Allegro的转化
    有了前面两步的基础,我们就可以进行Protel PCB到Allegro的转化了。这个转化过程更确切的说是一个设计重现过程,我们将在Allegro中重现Protel PCB的布局和布线。
    1) 将第二步Capture生成的Allegro格式的网表传递到Allegro BRD中,作为我们重现工作
的起点;
    2) 首先,我们要重现器件布局。在Protel中输出Place 
    ::AfxMessageBox("hello");
    fp1=fopen("", "rt");
    if (fp1==NULL) ::AfxMessageBox("Can not open the file!!!");
    fp2=fopen("","wt");
    if (fp2==NULL) ::AfxMessageBox("Can not create the file!!!");
    char refdes[5], Pattern[5];
    float midx,midy,refx,refy,padx,pady,rotation;
    char tb[1];
    char tmp='"';
    fprintf(fp2,"%sn", "# Allegro script");
    fprintf(fp2,"%sn", "version 13.6");
    fprintf(fp2,"%sn", "place refdes");
    while (!feof(fp1)) {
    fscanf(fp1,"%s", refdes);
    fscanf(fp1,"%s", Pattern);
    fscanf(fp1,"%f", 
    fscanf(fp1,"%f", 
    fscanf(fp1,"%f", 
    fscanf(fp1,"%f", 
    fscanf(fp1,"%f", 
    fscanf(fp1,"%f", 
    fscanf(fp1,"%s", tb);
    fscanf(fp1,"%f", 
    fprintf(fp2, "fillin %c%s%c n",tmp,refdes,tmp);
    if (rotation!=0) {
    fprintf(fp2, "rotaten");
    fprintf(fp2, "iangle %fn", rotation);
    };
    char yy=tb[0];
    if (yy!='T') fprintf(fp2, "pop mirrorn");
    fprintf(fp2, "pick %f %f n", padx,pady);
    fprintf(fp2, "next n");
    };
    fprintf(fp2, "done");
    fclose(fp1);
    fclose(fp2);
    3. 使用的工具
    a) Protel DXP SP2
    b) Cadence Design Systems, Inc. Capture CIS
    c) Cadence Design Systems, Inc. Orcad Layout
    d) Cadence Design Systems, Inc. Layout2allegro
    e) Cadence Design Systems, Inc. Allegro
    f) Cadence Design Systems, Inc. Specctra

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。