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

各位大神好,想请教如下,如何将a1这串替代下面那些层面前面的数字,谢谢!

[复制链接]
  • TA的每日心情
    开心
    2021-10-26 15:48
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2023-6-6 15:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    a1 = list("1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12 " "13" "14" "15" "16" "17" "18" "19"
                                     "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33" "34" "35" "36")



                                    p2 = outfile("artworkfilm.scr\n")
                                    fprintf(p2 "setwindow pcb\n")
                                    fprintf(p2 "trapsize 4411\n")
                                    fprintf(p2 "placementedit \n")
                                    fprintf(p2 "artwork \n")

                                    fprintf(p2 "setwindow form.film_control\n")
                                    fprintf(p2 "FORM film_control filmtree  01_TOP  \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")

                                    fprintf(p2 "FORM film_control filmtree  02_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  04_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  06_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  08_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  10_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  12_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  14_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  16_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  18_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  20_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  22_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  24_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  26_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  28_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")
                                    fprintf(p2 "FORM film_control filmtree  30_BOTTOM \n")
                                    fprintf(p2 "FORM film_control suppress_unconnect NO \n")

  • TA的每日心情
    开心
    2023-5-15 15:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2023-6-6 16:18 | 只看该作者
    我们一般都是用现成的,都是我们提需求,同事去改
  • TA的每日心情
    开心
    2021-10-26 15:48
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
     楼主| 发表于 2023-6-6 16:52 | 只看该作者
    ad_gao 发表于 2023-6-6 16:18
    我们一般都是用现成的,都是我们提需求,同事去改

    嗯嗯,每次都要去检查这些勾选项,特繁琐,想整个一键设置,方便些

    该用户从未签到

    4#
    发表于 2023-6-6 21:01 | 只看该作者
    这是为了快速切换层 ?  应该有其他更高效的解决方案的吧。
    头像被屏蔽
  • TA的每日心情
    开心
    2025-1-23 15:05
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    5#
    发表于 2023-6-6 22:07 | 只看该作者
    提示: 作者被禁止或删除 内容自动屏蔽
  • TA的每日心情
    开心
    2021-10-26 15:48
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
     楼主| 发表于 2023-6-7 08:47 | 只看该作者
    zsking_SKillDev 发表于 2023-6-6 21:01
    这是为了快速切换层 ?  应该有其他更高效的解决方案的吧。

    是快速设定光绘层的勾选项
  • TA的每日心情
    开心
    2021-10-26 15:48
  • 签到天数: 1 天

    [LV.1]初来乍到

    7#
     楼主| 发表于 2023-6-7 08:48 | 只看该作者
    aarom 发表于 2023-6-6 22:07
    其實許多層面是固定, 有變數的層面是:1,etch 層, 有變數可偵測. 2,dxf 層.
    確實是只要基本層面設定好後, R ...

    感谢大神,我去试一下

    该用户从未签到

    8#
    发表于 2023-6-13 21:57 | 只看该作者
    这个东西,用SKill做比较简单的吧 。
    下面这是一段一键重进film的代码,自己根据需求修改film名称和film包含层 ,后面就可以一键创建了。

    (defun ns_gerber_help ()
    let((txt_file)
    txt_file = axlDMOpenFile("ALLEGRO_TEXT", "help_info", "w")
    fprintf(txt_file "This Skill Program Creates Artwork Films\n")
    fprintf(txt_file "To Run the Program Type \"ns_gerber\" on the Allegro Command line.\n")
    fprintf(txt_file "\n")
    fprintf(txt_file "NB:You Need To Create Drill Legend Before Running The Program\n")
    fprintf(txt_file "-----------------------------------------------------------------\n")
    fprintf(txt_file "Tested on Allegro SPB 17.2\n")
    fprintf(txt_file "Written by: ")
    fprintf(txt_file "Ole Ejlersen\n")
    fprintf(txt_file "ReEdit by: ")
    fprintf(txt_file "ZS_KING\n")
    fprintf(txt_file "-----------------------------------------------------------------\n")
    axlDMClose(txt_file)
    axlUIViewFileCreate("help_info.txt" "Help for creating gerber films" t)
    ))


    (defun ns_gerber ()
    ;        ns_gerber_help()
    ; initialize variables
            units = car(axlDBGetDesignUnits())

    ; Specify undefined line width below (in mm)
            undefwidth = "0.1016"
            ext = 10000
            when(units == "mils"  ext = 10)
            case(units
                    ("millimeters" ext = 10000)
                    ("mils" ext = 100)
                    ("inch" ext = 0.01)
                    ("microns" ext = 10000000)
                    ("millimeters" ext = 10000)
                    ("millimeters" ext = 10000)

                    )


            ;sprintf(ulw "%f" 1000 * axlMKSConvert(undefwidth "millimeters" units)) ;undefined_line_width
            sprintf(ulw "%f" ext * axlMKS2UU(strcat("0.10" " millimeters") ))
            ulw =atoi(ulw)
            ;sprintf(sbb "%f" 1000 * axlMKSConvert(2.54 "millimeters" units)) ; shape bounding box, only used for negative artwork
            sprintf(sbb "%f" ext * axlMKS2UU(strcat("2.54" " millimeters") )) ; shape bounding box, only used for negative artwork
            sbb = atoi(sbb)



            axlMsgPut("ulw %A | sbb %A " ulw sbb)
    ;delete existing film records
            my_films_members = axlGetParam("artwork")->groupMembers

    ; create temp artwork film - will be deleted later on
            (axlfcreate "temp" '(0 0 0 200 2540 1 0 0 0 0 0 1 1) nil)
            foreach(film my_films_members;->groupMembers
                    filmparams = axlGetParam(strcat("artwork:" film))
                    axlDeleteObject(filmparams)
            )

    ; get conductor layers
            my_layers = axlGetParam("paramLayerGroup:etch")
            etchcount = 0
            i = 0
            foreach(layer my_layers->groupMembers
                    layerparams = axlLayerGet(strcat("ETCH/" layer))
                    if(layerparams->type=="PLANE" && layerparams->drcPhotoType=="negative" then
                            pm = 0 ; plot mode negative
                            pm1 = t
                    else
                            pm = 1 ; plot mode positive
                            pm1 = nil
                    )
    ;                sprintf(film_name "%d_%s" ++i layer)
                    sprintf(film_name "%s" layer)
                    ld1 = strcat("VIA CLASS/" layer)
                    ld2 = strcat("PIN/" layer)
                    ld3 = strcat("ETCH/" layer)
                    data_list = (list "BOARD GEOMETRY/OUTLINE" ld1 ld2 ld3)
                    param_list = (list 0 0 0 ulw sbb pm 0 0 0 0 0 1 1)
                    axlFilmCreate(film_name
                            ?negative               pm1
                            ?undefineLineWidth      axlMKS2UU("0.127 millimeters")
                            ?shapeBoundingBox       axlMKS2UU("2.54 millimeters")
                            ?mirrored               nil
                            ?fullContact            nil
                            ?vectorBasedPad         t
                            ?drawHolesOnly          nil
                            ?layers                 data_list
                            )


                    ;(axlfcreate film_name param_list data_list)
                    ++etchcount
            )

    ; Create drill layers gerber files
            param_list = (list 0 0 0 ulw sbb 1 0 0 0 0 0 1 1)
            drill_created = "YES"
            drill_count = 0
            my_layers = axlGetParam("paramLayerGroup:Manufacturing")
            foreach(layer my_layers->groupMembers
                    if(nindex(layer "NCLEGEND")!=nil then
                    ld1 = strcat("MANUFACTURING/" layer)
                           
                            data_list = (list "BOARD GEOMETRY/OUTLINE" ld1)
    ;                        film_name = layer
                            film_name_0 = index(strcat(layer) "-")
                            ;film_name = strcat("DRILL" film_name_0)
                            film_name = sprintf(nil "DRILL_%s" film_name_0 )
                            (axlfcreate film_name param_list data_list)
                            ++drill_count
                    else
                            drill_created = "NO"

                    )
                                    if(nindex(layer "NCBACKDRILL")!=nil then
                    ld2 = strcat("MANUFACTURING/" layer)
                           
                            data_list = (list "BOARD GEOMETRY/OUTLINE" ld2)
    ;                        film_name = layer
                            film_name_0 = index(strcat(layer) "-")
                            film_name = strcat("BACKDRILL" film_name_0)
                            (axlfcreate film_name param_list data_list)
                            ++drill_count
                    else
                            drill_created = "NO"

                    )
            )
            if( drill_created == "NO" && drill_count == 0 then
                    axlUIConfirm( "No drill drawing generated - Please create!" )
            )

            param_list = (list 0 0 0 ulw sbb 1 0 0 0 0 0 1 1)
    ; Board outline
    ;        data_list = (list "BOARD GEOMETRY/OUTLINE")
    ;        film_name = "Board_outline"
    ;        (axlfcreate film_name param_list data_list)
    ; Soldermask top
            data_list = (list  "BOARD GEOMETRY/OUTLINE" "PIN/SOLDERMASK_TOP" "VIA CLASS/SOLDERMASK_TOP" "PACKAGE GEOMETRY/SOLDERMASK_TOP" "BOARD GEOMETRY/SOLDERMASK_TOP")
            film_name = "Soldermask_top"
            (axlfcreate film_name param_list data_list)
    ; Soldermask bottom
            data_list = (list  "BOARD GEOMETRY/OUTLINE" "PIN/SOLDERMASK_BOTTOM" "VIA CLASS/SOLDERMASK_BOTTOM" "PACKAGE GEOMETRY/SOLDERMASK_BOTTOM" "BOARD GEOMETRY/SOLDERMASK_BOTTOM")
            film_name = "Soldermask_bot"
            (axlfcreate film_name param_list data_list)

    ; Pastemask top
            data_list = (list  "BOARD GEOMETRY/OUTLINE" "BOARD GEOMETRY/PASTEMASK_TOP" "VIA CLASS/PASTEMASK_TOP" "PIN/PASTEMASK_TOP")
            film_name = "Pastemask_top"
            (axlfcreate film_name param_list data_list)


    ; Pastemask bottom
            data_list = (list "BOARD GEOMETRY/OUTLINE" "BOARD GEOMETRY/PASTEMASK_BOTTOM" "VIA CLASS/PASTEMASK_BOTTOM" "PIN/PASTEMASK_BOTTOM")
            film_name = "Pastemask_bot"
            (axlfcreate film_name param_list data_list)

    ; Assembly top
            data_list = (list "BOARD GEOMETRY/OUTLINE" "MANUFACTURING/TITLE_BLOCK_TOP" "REF DES/ASSEMBLY_TOP" "PACKAGE GEOMETRY/ASSEMBLY_TOP")
            film_name = "Assembly_top"
            (axlfcreate film_name param_list data_list)

    ; Assembly bottom
            data_list = (list "BOARD GEOMETRY/OUTLINE" "MANUFACTURING/TITLE_BLOCK_BOTTOM" "REF DES/ASSEMBLY_BOTTOM" "PACKAGE GEOMETRY/ASSEMBLY_BOTTOM")
            film_name = "Assembly_bot"
            (axlfcreate film_name param_list data_list)

    ; Silkscreen top
            jobcounter = 71
            data_list = (list  "BOARD GEOMETRY/OUTLINE" "PACKAGE GEOMETRY/SILKSCREEN_TOP" "BOARD GEOMETRY/SILKSCREEN_TOP" "REF DES/SILKSCREEN_TOP")
            film_name = "Silkscreen_top"
            (axlfcreate film_name param_list data_list)

    ; Silkscreen bottom
            data_list = (list  "BOARD GEOMETRY/OUTLINE" "PACKAGE GEOMETRY/SILKSCREEN_BOTTOM" "BOARD GEOMETRY/SILKSCREEN_BOTTOM" "REF DES/SILKSCREEN_BOTTOM")
            film_name = "Silkscreen_bot"
            (axlfcreate film_name param_list data_list)

    ; Masterdrawing
    ;        data_list = (list "Manufacturing/Stackup_figure")
    ;        film_name = "Masterdrawing"
    ;        (axlfcreate film_name param_list data_list)


    ; Delete temp layer
            filmparams = axlGetParam(strcat("artwork:" "temp"))
            axlDeleteObject(filmparams)
    axlUIWPrint(nil " \271\342\273\346\265\376\262\343\322\321\311\350\326\303\315\352\263\311 \243\254\307\353\274\354\262\351\317\340\271\330\262\316\312\375 !");


    ); end ns_gerber

    axlCmdRegister( "ns_gerber" `ns_gerber)

  • TA的每日心情
    开心
    2021-10-26 15:48
  • 签到天数: 1 天

    [LV.1]初来乍到

    9#
     楼主| 发表于 2023-6-15 11:24 | 只看该作者
    zsking_SKillDev 发表于 2023-6-13 21:57
    这个东西,用SKill做比较简单的吧 。
    下面这是一段一键重进film的代码,自己根据需求修改film名称和film包 ...

    哇塞,感谢大神
  • TA的每日心情
    开心
    2021-10-26 15:48
  • 签到天数: 1 天

    [LV.1]初来乍到

    10#
     楼主| 发表于 2023-6-15 15:02 | 只看该作者
    zsking_SKillDev 发表于 2023-6-13 21:57
    这个东西,用SKill做比较简单的吧 。
    下面这是一段一键重进film的代码,自己根据需求修改film名称和film包 ...

    试了下,非常好用,可不可以在ETCH层面添加序号
  • TA的每日心情
    开心
    2021-10-26 15:48
  • 签到天数: 1 天

    [LV.1]初来乍到

    11#
     楼主| 发表于 2023-6-19 10:06 | 只看该作者
    zsking_SKillDev 发表于 2023-6-13 21:57
    这个东西,用SKill做比较简单的吧 。
    下面这是一段一键重进film的代码,自己根据需求修改film名称和film包 ...

    找到了,是有可以加序号的,非常感谢,个位数的前面怎样才能加个0,就像01、02、03
  • TA的每日心情
    开心
    2021-10-26 15:48
  • 签到天数: 1 天

    [LV.1]初来乍到

    12#
     楼主| 发表于 2023-6-27 10:45 | 只看该作者
    1621142761 发表于 2023-6-19 10:06
    找到了,是有可以加序号的,非常感谢,个位数的前面怎样才能加个0,就像01、02、03

    哦哦,感谢!我去试试
    头像被屏蔽
  • TA的每日心情
    开心
    2025-1-23 15:05
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    13#
    发表于 2023-6-27 21:59 | 只看该作者
    提示: 作者被禁止或删除 内容自动屏蔽
  • TA的每日心情
    开心
    2021-10-26 15:48
  • 签到天数: 1 天

    [LV.1]初来乍到

    14#
     楼主| 发表于 2023-7-4 17:38 | 只看该作者
    aarom 发表于 2023-6-27 21:59
    a=0 ;先設變數值.
    sprintf(film_name "%02d_%s" a=a+1,layer) ; film_name 變數 就是你要的值. 而layer  ...

    感谢!!!
  • TA的每日心情
    开心
    2021-10-26 15:48
  • 签到天数: 1 天

    [LV.1]初来乍到

    15#
     楼主| 发表于 2023-7-5 08:53 | 只看该作者

    哈哈,是的
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-13 21:26 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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