找回密码
 注册
关于网站域名变更的通知
查看: 369|回复: 9
打印 上一主题 下一主题

导出过孔的padstack的方法,有两种,但是scr方式可能会报错,还不知道原因

[复制链接]
  • TA的每日心情
    开心
    2025-6-25 15:43
  • 签到天数: 33 天

    [LV.5]常住居民I

    跳转到指定楼层
    1#
     楼主| 发表于 2025-3-20 12:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    1. procedure(exportvpad()
    2. prog(()
    3.                 ;FormPathXX=strcat((axlGetVariable "cdsroot") "\\share\\pcb\\text\\forms")
    4.                 ;FormPathXX=buildString(parseString(FormPathXX "\\") "/")
    5.                 ;dlib_form_file=sprintf(nil "%s\\dlib.form" FormPathXX)
    6.                 ;dlib_form=axlMiniStatusLoad( (gensym) dlib_form_file 'dlib t)
    7.                 out = outfile("./export_padstack.scr") ;打开端口,创建一个scr文件在当前的工作目录,令这个文件赋给out
    8.                 fprintf(out "setwindow pcb\n")
    9.                 fprintf(out "generaledit\n")
    10.                 fprintf(out "dlib\n")
    11.                 fprintf(out "setwindow form.dlib\n")
    12.                 fprintf(out "FORM dlib none\n") ;
    13.                 fprintf(out "FORM dlib pad YES\n") ;
    14.                 fprintf(out "FORM dlib browse_export\n") ;
    15.    ;fprintf(out "fillin VIA\n")  ;放在根目录的VIA文件夹下
    16.           fprintf(out "fillin ./\n")  ;放在根目录文件夹下
    17.                 fprintf(out "FORM dlib execute\n") ;
    18.                 fprintf(out "FORM dlib cancel\n") ;
    19.                 fprintf(out "setwindow pcb\n") ;
    20.                 fprintf(out "generaledit\n") ;配置完成
    21.                 close(out)  ;关闭端口
    22.                 axlShell("replay ./export_padstack.scr")       
    23. );endprog
    24. );endprocedure
    复制代码
    方式1为scr方式,会提示找不到dlib
    1. procedure(ccc()
    2. prog(()

    3.         paddbid_lista=axlDBGetDesign()->padstacks ;定义paddbid_lista获得设计用的过孔dbid列表
    4.        
    5.           
    6.         paddbid_listb=nil
    7.   ;foreach(a paddbid_lista if( nindex(upperCase(a->name) "V")!=nil then  paddbid_listb=append1(paddbid_listb a->name)))
    8.   ;列表a里挑选pad名字带V的,即把过孔都找出来并增加到列表b中。列表信息里还是dbid
    9.         foreach(a paddbid_lista
    10.                                 if( nindex(upperCase(a->name) "V")!=nil then  
    11.                                         paddbid_listb=append1(paddbid_listb a->name)
    12.                                         );endif
    13.                                         );endforeach
    14.                
    15.                                        
    16.   ;if( paddbid_listb!=nil then paddbid_listb=sort(paddbid_listb nil))
    17.   ;paddbid_listb进行由小到大的排序,此时得到的就不是dbid了,而是焊盘名字列表
    18.         if( paddbid_listb!=nil then
    19.                 paddbid_listb=sort(paddbid_listb nil)
    20.                 );endif
    21.                
    22.                
    23.         ;foreach( viapadName paddbid_listb  axlPadstackToDisk(viapadName))
    24.         ;保存过孔pad       
    25.         foreach( viapadName paddbid_listb  
    26.                                         axlPadstackToDisk(viapadName)
    27.                                         );endforeach
    28.                                        
    29. );endprog
    30. );endprocedure
    复制代码
    这个画了一些时间才学会写的。skill的函数不熟。
  • TA的每日心情
    开心
    2025-6-25 15:43
  • 签到天数: 33 天

    [LV.5]常住居民I

    2#
     楼主| 发表于 2025-3-20 12:50 | 只看该作者
    本帖最后由 式试1813 于 2025-3-20 13:17 编辑

    第二种是输出的VIA的padstacks,第一种是输出所有PCB的pad封装,第二种删除一下挑选V的代码即可都输出

    点评

    scr方式, 有分新舊版本, SKILL 指令能單個導出.  发表于 2025-3-20 13:08
    头像被屏蔽
  • TA的每日心情
    开心
    2025-1-23 15:05
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    3#
    发表于 2025-3-20 13:57 | 只看该作者
    提示: 作者被禁止或删除 内容自动屏蔽
  • TA的每日心情
    开心
    2025-6-25 15:43
  • 签到天数: 33 天

    [LV.5]常住居民I

    4#
     楼主| 发表于 2025-3-20 14:03 | 只看该作者
    aarom 发表于 2025-3-20 13:57
    請自己加 axlCmdRegister 和 defun, 不要這樣懶.

    秀最後一手, 以後不再貼程式碼了. 因為我最多只會到 ...

    根据你在另一个帖子的回复,把scr模式改成这样也是只能调试时候能输出,加入代码里不能够输出
    procedure(ccc()
                            prog(()
                            sprintf(command "setwindow pcb;generaledit;dlib ;
                            setwindow form.dlib;FORM dlib none  ;FORM dlib pad YES ;FORM dlib browse_export  ;
                            fillin ./;FORM dlib execute ; FORM dlib cancel;  setwindow pcb;generaledit ")
                            axlShellPost(command)
                            axlShell("Done")
                            );endprog
                            );endprocedure


    报错:
    E- Can't find window; form.dlib
    E- Form not found
    E- Command not found: fillin ./

    E- Form not found



    点评

    单独在skill窗口可以调出来,不报错,我的意思是加入其他的有form的il文件里就不行了  详情 回复 发表于 2025-3-20 14:41
    scr模式?? ALLEGRO 分 padstack_editor 下 或 ALLEGRO 下, 而因版本變動, 有些指令原廠會有支援問題, 我不會幫你解的.  发表于 2025-3-20 14:15
  • TA的每日心情
    开心
    2025-6-25 15:43
  • 签到天数: 33 天

    [LV.5]常住居民I

    5#
     楼主| 发表于 2025-3-20 14:41 | 只看该作者
    式试1813 发表于 2025-3-20 14:03
    根据你在另一个帖子的回复,把scr模式改成这样也是只能调试时候能输出,加入代码里不能够输出
    procedure ...

    单独在skill窗口可以调出来,不报错,我的意思是加入其他的有form的il文件里就不行了
    头像被屏蔽
  • TA的每日心情
    开心
    2025-1-23 15:05
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    6#
    发表于 2025-3-20 15:06 | 只看该作者
    提示: 作者被禁止或删除 内容自动屏蔽
  • TA的每日心情
    开心
    2025-6-25 15:43
  • 签到天数: 33 天

    [LV.5]常住居民I

    8#
     楼主| 发表于 2025-3-31 18:56 | 只看该作者
    本帖最后由 式试1813 于 2025-3-31 18:57 编辑
    1. 输出所有设计文件的封装
    复制代码
    lista=axlDBGetDesign()->components                     
    foreach(a lista symDef=car(list(a->symbol->definition)) axlWritePackageFile(symDef))
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-19 05:33 , Processed in 0.125000 second(s), 29 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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