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

论坛下载的SKILL包的问题:为何更改了text设置值没有起作用?如何增加自定义功能?

[复制链接]
  • TA的每日心情
    擦汗
    2020-1-14 15:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2015-8-4 20:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    使用的是论坛下载的skill打包中的quick_textset.il文件
    尝试修改里面的数值貌似没有起作用

    axlCmdRegister("quick_textset" 'quicktext)


    ;get the old layer display,for recover


    defun( quicktext ()
    let( (curdsnunit)
                      curdsnunit = axlGetParam("paramDesign")->units
                       case(curdsnunit
                    ("mils"  du = 1)
                        ("millimeters" du = 0.0254 )
                            ;(u can add other units)
                          )


    old_visList = axlVisibleGet()

    setTextSize()
    axlVisibleSet(old_visList)
    ))


    ;load("quick_textset.il")

    defun( setTextSize ()
          let(()
              ;1,GET 字体
              Text_need = '("1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15"

    "16")
              
              foreach(text_block Text_need
                        p = axlGetParam(strcat("paramTextBlock:" text_block))
                        block_pl = atoi(text_block) ;change string to num   (1.0/du)
                        p->width = (15 + 5*block_pl)*(1.0/du)
                         p->height = (20 + 5*block_pl)*(1.0/du)
                         p->lineSpace = 25*(1.0/du)
                        p->photoWidth = 4*(1.0/du)
                        p->charSpace = 5*(1.0/du)
                        axlSetParam(p)       
                        )
              ;set the textblock size
              


              
              axlVisibleDesign(nil)
              axlVisibleLayer("REF DES/SILKSCREEN_TOP" t)
              axlVisibleLayer("REF DES/SILKSCREEN_BOTTOM" t)
              ;if u need other text ,please add below:
              ;axlVisibleLayer("REF DES/assembly_TOP" t)
              
              
              axlClearSelSet()
              axlSetFindFilter( ?enabled (list "noall" "text" "clinesegs") , ?onButtons (list

    "text"))
              allrefs = axlGetSelSet(axlAddSelectAll())
              foreach(i allrefs   
                      axlDBChangeText(i nil 2)为何我更改这里的数值,没有按照设置的值进行变化?例如我更改为4,为何变更的不是第4号字体?
                      )
              ;change the rESDes
              
              axlVisibleDesign(nil)
              axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_TOP" t)
              ; axlVisibleLayer("BOARD GEOMETRY/SILKSCREEN_TOP" t)
              axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_BOTTOM" t)
              ; axlVisibleLayer("BOARD GEOMETRY/SILKSCREEN_BOTTOM" t)
              axlClearSelSet()
              axlSetFindFilter( ?enabled (list "noall" "text" "clinesegs") , ?onButtons (list

    "text"))
              alloth_text = axlGetSelSet(axlAddSelectAll())
              foreach(i alloth_text
              axlDBChangeText(i nil 1))
              ;change all other text
              ))


    如果实现如下的效果:
    [1]新建的文件,通过skill自动按照预设的字体格式设置,并且增加上name说明(name里面增加一些字体格式说明,方便在实际选择的时候灵活应用,总比记数字选择方便);同时能以窗口方便点选的方式进行修改需要变化的字符大小;能通过划选统一修改字符大小(划选的时候可以分别选择位号或者value)
    [2]能将元件value自动归中




  • TA的每日心情
    擦汗
    2020-1-14 15:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
     楼主| 发表于 2015-8-4 21:05 | 只看该作者
    下面是quick_display的源代码;我希望增加这样的效果:
    [1] 顶层丝印+顶层布线/ 底层丝印+底层布线/顶层丝印+顶层布线(隐藏铜皮)/ 底层丝印+底层布线(隐藏铜皮)/顶层丝印+顶层布线+底层丝印+底层布线
    [2]希望隐藏铜皮的选择可以是一种勾选项,方便切换
    [3]希望同时显示丝印与走线时一种勾选项目,方便切换

    这样的效果如何在下面的代码基础上进行修改呢?


    axlCmdRegister( "quick_display" `Quick_Display)
    axlCmdRegister( "Quick_Displaymini" `Quick_Displaymini)

    axlSetFunckey("ssq" "quick_display")
    axlSetFunckey("sq" "quick_displaymini")

    /* ---------------------------------
    define all the layers
    --------------------------------- */


    defun( crlistneed ()
          let((fixlayerfirst etchlayerlistneed)
    fixlayerfirst = list(
                              list("TOP_SILK" "VIA CLASS/TOP" "PIN/TOP" "PACKAGE GEOMETRY/SILKSCREEN_TOP"
                               "BOARD GEOMETRY/SILKSCREEN_TOP" "REF DES/SILKSCREEN_TOP" "BOARD GEOMETRY/OUTLINE")
                                              
                          list("BOTTOM_SILK" "VIA CLASS/BOTTOM" "PIN/BOTTOM" "PACKAGE GEOMETRY/SILKSCREEN_BOTTOM"
                                               "BOARD GEOMETRY/SILKSCREEN_BOTTOM" "REF DES/SILKSCREEN_BOTTOM" "BOARD GEOMETRY/OUTLINE")

                          list("TOP_PLACE" "PIN/TOP" "VIA CLASS/TOP" "PACKAGE GEOMETRY/SILKSCREEN_TOP" "PACKAGE GEOMETRY/PLACE_BOUND_TOP"
                           "PACKAGE KEEPIN/ALL" "PACKAGE KEEPOUT/ALL" "PACKAGE KEEPOUT/TOP" "BOARD GEOMETRY/OUTLINE")
                                              
                          list("BOTTOM_PLACE" "PIN/BOTTOM" "VIA CLASS/BOTTOM" "PACKAGE GEOMETRY/SILKSCREEN_BOTTOM" "PACKAGE GEOMETRY/PLACE_BOUND_BOTTOM"
                                               "PACKAGE KEEPIN/ALL" "PACKAGE KEEPOUT/ALL" "PACKAGE KEEPOUT/BOTTOM" "BOARD GEOMETRY/OUTLINE")
                                              
                          list("ALL_PLACE" "PIN/TOP" "VIA CLASS/TOP" "PACKAGE GEOMETRY/SILKSCREEN_TOP" "PACKAGE GEOMETRY/PLACE_BOUND_TOP"
                           "PACKAGE KEEPIN/ALL" "PACKAGE KEEPOUT/ALL" "PACKAGE KEEPOUT/TOP" "BOARD GEOMETRY/OUTLINE"
                                               "PIN/BOTTOM" "VIA CLASS/BOTTOM" "PACKAGE GEOMETRY/SILKSCREEN_BOTTOM" "PACKAGE GEOMETRY/PLACE_BOUND_BOTTOM" "PACKAGE KEEPOUT/BOTTOM")                          
                                              
                          list("ALL_VIEW" "PACKAGE GEOMETRY/SILKSCREEN_TOP" "PACKAGE GEOMETRY/SILKSCREEN_BOTTOM" "PACKAGE GEOMETRY/PLACE_BOUND_BOTTOM"  
                                              "PACKAGE GEOMETRY/PLACE_BOUND_TOP" "REF DES/SILKSCREEN_TOP" "BOARD GEOMETRY/SILKSCREEN_TOP" "BOARD GEOMETRY/SILKSCREEN_BOTTOM" "REF DES/SILKSCREEN_BOTTOM"
                                              "ETCH/TOP" "VIA CLASS/TOP" "ETCH/BOTTOM" "VIA CLASS/BOTTOM" "ROUTE KEEPIN/ALL" "ROUTE KEEPOUT/ALL" "ROUTE KEEPOUT/TOP" "ROUTE KEEPOUT/BOTTOM" "PIN/TOP"
                                              "PIN/TOP" "PIN/BOTTOM" "BOARD GEOMETRY/OUTLINE"
                                               )       
                          list("TB_LAYOUT" "ETCH/TOP" "VIA CLASS/TOP" "PACKAGE GEOMETRY/SILKSCREEN_TOP" "ETCH/BOTTOM" "VIA CLASS/BOTTOM" "PACKAGE GEOMETRY/SILKSCREEN_BOTTOM"
                                              "ROUTE KEEPIN/ALL" "ROUTE KEEPOUT/ALL" "ROUTE KEEPOUT/TOP" "ROUTE KEEPOUT/BOTTOM" "PIN/TOP" "PIN/BOTTOM" "BOARD GEOMETRY/OUTLINE"
                                               )                                                                       
                                               )                                          
                    etchlayerlist = axlGetParam("paramLayerGroup:ETCH")->groupMembers
                    etchlayerlistneed = list()
                    foreach(onel etchlayerlist
                                    curetchlayer = list(list(strcat(onel "_LAYOUT") strcat("ETCH/" onel) strcat("VIA CLASS/" onel) strcat("ROUTE KEEPOUT/" onel) strcat("PIN/" onel)
                                    strcat("Drc Error Class/" onel) strcat("PACKAGE GEOMETRY/SILKSCREEN_" onel) "BOARD GEOMETRY/OUTLINE" "ROUTE KEEPIN/ALL" "ROUTE KEEPOUT/ALL"))
                                                              
                                etchlayerlistneed = append(etchlayerlistneed curetchlayer)
                                    )
                    aaa = append(fixlayerfirst etchlayerlistneed)
            ))
           
            ; load("quick_display.il")
           
    /* ---------------------------------
    define other layers
    --------------------------------- */
    defun( onofflistneed ()
          let((fixlayerfirst1 AllEtchlist AllDRClist AllAntlist Etchlist)       
              fixlayerfirst1 = list(
                         '("SilkT" "BOARD GEOMETRY/SILKSCREEN_TOP" "PACKAGE GEOMETRY/SILKSCREEN_TOP" "REF DES/SILKSCREEN_TOP")
                                     '("SilkB" "BOARD GEOMETRY/SILKSCREEN_BOTTOM" "PACKAGE GEOMETRY/SILKSCREEN_BOTTOM" "REF DES/SILKSCREEN_BOTTOM")
                                     '("PlacT" "PACKAGE GEOMETRY/PLACE_BOUND_TOP")
                                     '("PlacB" "PACKAGE GEOMETRY/PLACE_BOUND_BOTTOM")
                                     ; AllAntlist
                                     ; AllDRClist
                                     ; AllEtchlist
                                     )
                   
            AllEtchlist = list("AllEtch")
            AllDRClist = list("AllDrc" "Drc Error Class/ALL" "Drc Error Class/PASTEMASK_BOTTOM" "Drc Error Class/PASTEMASK_TOP" "Drc Error Class/WIRE" "Drc Error Class/SOLDERMASK_BOTTOM"
                               "Drc Error Class/SOLDERMASK_TOP" "Drc Error Class/PACKAGE_BOTTOM" "Drc Error Class/PACKAGE_TOP")                  
                    AllAntlist = list("Allant" "ANTI ETCH/ALL")
                   
                    Etchlist = list()
                   
                    foreach(onel etchlayerlist
                            curEtchl =  list(strcat("ETCH/" onel) strcat("PIN/" onel) strcat("VIA CLASS/" onel))
                                    AllEtchlist = append(AllEtchlist curEtchl)
                            )                               
                    foreach(onel etchlayerlist
                            curDrcl =  strcat("Drc Error Class/" onel)
                                    AllDRClist = append1(AllDRClist curDrcl)
                            )
                    foreach(onel etchlayerlist
                            curAntl =  strcat("ANTI ETCH/" onel)
                                    AllAntlist = append1(AllAntlist curAntl)
                            )
                                   
                    foreach(onel etchlayerlist
                               curetchlayer = list(list(onel strcat("ETCH/" onel) strcat("VIA CLASS/" onel)  strcat("PIN/" onel) strcat("ANTI ETCH/" onel)))
                                    Etchlist = append(Etchlist curetchlayer)
                                    )                               
                              onoffalllist = append(append(append(append(fixlayerfirst1 list(AllAntlist)) list(AllDRClist)) list(AllEtchlist)) Etchlist)
              ))

           
           
           
    /* ---------------------------------
    Create the main function
    --------------------------------- */

    defun(Quick_Display ()
              Quick_Displayform()
              
              )


    defun(Quick_Displaymini ()
              Quick_Displayformmini()
              
              )          
              
    defun(Quick_Displayformmini ()
    disetchlayerlist = crlistneed()
            DisplayFormfile = "artformcreat.form"
                    formport = outfile(DisplayFormfile "w")
                    fprintf(formport "FILE_TYPE=FORM_DEFN VERSION=2\n")
            fprintf(formport "FORM\n")
            fprintf(formport "FIXED\n")
            fprintf(formport "PORT 20 6\n")
            fprintf(formport "HEADER \"Quick Display - kevin\"\n")
            fprintf(formport "TILE\n")          
                   
                    fprintf(formport "\n")
                    fprintf(formport "TEXT \"Please Choose The\"\n")
                    fprintf(formport "TLOC 3 1\n")
                    fprintf(formport "ENDTEXT\n")
                   
                    fprintf(formport "\n")
                    fprintf(formport "TEXT \"Layers Below:\"\n")   
                    fprintf(formport "TLOC 3 2\n")
                    fprintf(formport "ENDTEXT\n")
                   
            a = 4
                    foreach(curlayerlist disetchlayerlist  
                            cur_checklist = car(curlayerlist)
            fprintf(formport "FIELD %L\n" cur_checklist)
            fprintf(formport "FLOC 3 %d\n" a)
            fprintf(formport "FGROUP \"displayl\"\n")
            fprintf(formport "CHECKLIST %L\"displayl\"\n" cur_checklist)
            fprintf(formport "ENDFIELD\n")
                    a = a+2
                           )

                              
                    fprintf(formport "ENDTILE\n")
            fprintf(formport "ENDFORM\n")
            close(formport)
                    displayform = axlFormCreate((gensym) DisplayFormfile '(se inner) 'Display_currentmini t)
                    axlFormDisplay(displayform)
                    axlUIWPrint(displayform "Kevin Wong")
                    deleteFile("artformcreat.form")
    )
              

    defun( Display_currentmini (displayform)
          let(()
    disetchlayerlist = crlistneed()
            if(displayform->curField
            then
            axlUIWPrint(displayform "Kevin Wong")
                    foreach(onec disetchlayerlist
                           if(displayform->curField == car(onec)
                                ; axlUIWPrint(displayform car(onec))                           
                           Display_currentls(displayform->curField)
                              
                             )
                           )
              )
         ))
              
              


    defun(Quick_Displayform ()
    disetchlayerlist = crlistneed()
    onofflistneed()
            DisplayFormfile = "artformcreat.form"
                    formport = outfile(DisplayFormfile "w")
                    fprintf(formport "FILE_TYPE=FORM_DEFN VERSION=2\n")
            fprintf(formport "FORM\n")
            fprintf(formport "FIXED\n")
            fprintf(formport "PORT 40 6\n")
            fprintf(formport "HEADER \"Quick Display\"\n")
            fprintf(formport "TILE\n")          
                   
                    fprintf(formport "\n")
                    fprintf(formport "TEXT \"Please Choose The\"\n")
                    fprintf(formport "TLOC 3 1\n")
                    fprintf(formport "ENDTEXT\n")
                   
                    fprintf(formport "\n")
                    fprintf(formport "TEXT \"Layers Below:\"\n")   
                    fprintf(formport "TLOC 3 2\n")
                    fprintf(formport "ENDTEXT\n")
                   
            a = 4
                    foreach(curlayerlist disetchlayerlist  
                            cur_checklist = car(curlayerlist)
            fprintf(formport "FIELD %L\n" cur_checklist)
            fprintf(formport "FLOC 3 %d\n" a)
            fprintf(formport "FGROUP \"displayl\"\n")
            fprintf(formport "CHECKLIST %L\"displayl\"\n" cur_checklist)
            fprintf(formport "ENDFIELD\n")
                    a = a+2
                           )
                ;buttons       
                    fprintf(formport "\n")
                    fprintf(formport "TEXT \"You can on/off the\"\n")
                    fprintf(formport "TLOC 22 1\n")
                    fprintf(formport "ENDTEXT\n")
                   
                    fprintf(formport "\n")
                    fprintf(formport "TEXT \"layers below\"\n")
                    fprintf(formport "TLOC 22 2\n")
                    fprintf(formport "ENDTEXT\n")               
                   
            fprintf(formport "FIELD SilkT\n")
            fprintf(formport "FLOC 22 4\n")
            fprintf(formport "MENUBUTTON \"SilkTop_On/Off\" 15 2\n")
            fprintf(formport "ENDFIELD \n\n")
                              
            fprintf(formport "FIELD SilkB\n")
            fprintf(formport "FLOC 22 6\n")
            fprintf(formport "MENUBUTTON \"SilkBot_On/Off\" 15 2\n")
            fprintf(formport "ENDFIELD \n\n")

            fprintf(formport "FIELD PlacT\n")
            fprintf(formport "FLOC 22 8\n")
            fprintf(formport "MENUBUTTON \"PlacTop_On/Off\" 15 2\n")
            fprintf(formport "ENDFIELD \n\n")
                              
            fprintf(formport "FIELD PlacB\n")
            fprintf(formport "FLOC 22 10\n")
            fprintf(formport "MENUBUTTON \"PlacBot_On/Off\" 15 2\n")
            fprintf(formport "ENDFIELD \n\n")               

            fprintf(formport "FIELD Allant\n")
            fprintf(formport "FLOC 22 12\n")
            fprintf(formport "MENUBUTTON \"AllAnt_On/Off\" 15 2\n")
            fprintf(formport "ENDFIELD \n\n")
                              
            fprintf(formport "FIELD AllDrc\n")
            fprintf(formport "FLOC 22 14\n")
            fprintf(formport "MENUBUTTON \"AllDRC_On/Off\" 15 2\n")
            fprintf(formport "ENDFIELD \n\n")                                          
                              
            fprintf(formport "FIELD AllEtch\n")
            fprintf(formport "FLOC 22 16\n")
            fprintf(formport "MENUBUTTON \"AllEtch_On/Off\" 15 2\n")
            fprintf(formport "ENDFIELD \n\n")                                          
                              
                b = 18
                    foreach(curlayer etchlayerlist
                             curbtn = strcat(curlayer "_On/Off")
            fprintf(formport "FIELD %s\n" curlayer)  ;top
            fprintf(formport "FLOC 22 %d\n" b)
            fprintf(formport "MENUBUTTON \"%s\" 15 2\n" curbtn)               
            fprintf(formport "ENDFIELD\n\n")
                    b = b+2
                           )

                            ; printf("FIELD %s\n" cur_checklist)
                            ; printf("FIELD %s\n" curlayer)

                              
                    fprintf(formport "ENDTILE\n")
            fprintf(formport "ENDFORM\n")
            close(formport)
                   
                    displayform = axlFormCreate((gensym) DisplayFormfile '("NE" "Outer" "Canvas" "NoBorder" "msglines" 1) 'Display_current t)
                    axlFormDisplay(displayform)
                    axlUIWPrint(displayform "Kevin Wong")
                    deleteFile("artformcreat.form")
    )

    /* ---------------------------------
    Display_current layer
    --------------------------------- */

    ; load("quick_dis.il")


    defun( Display_current (displayform)
          let(()  
        disetchlayerlist = crlistneed()

           
           
            if( or((car(reverse(parseString(displayform->curField "_"))) == "LAYOUT") (car(reverse(parseString(displayform->curField "_"))) == "SILK")
            (car(reverse(parseString(displayform->curField "_"))) == "PLACE") (car(reverse(parseString(displayform->curField "_"))) == "VIEW"))
           
               then
               if(displayform->curField
           then
               axlUIWPrint(displayform "Kevin Wong")
                    foreach(onec disetchlayerlist
                           if(displayform->curField == car(onec)                  
                                ; axlUIWPrint(displayform car(onec))
                               then
                       ; axlDBDisplayControl('filledPadsEnable nil)
                       ; axlDBDisplayControl('endcapsEnable t)                          
                           Display_currentls(displayform->curField)          
               )))
               else
               if(displayform->curField
           then
               axlUIWPrint(displayform "Kevin Wong")
                    foreach(onec onoffalllist
                           if(displayform->curField == car(onec)
                                ; axlUIWPrint(displayform car(onec))
                               then
                           OporCllayer(cdr(onec))
                       ; axlDBDisplayControl('filledPadsEnable nil)
                       ; axlDBDisplayControl('endcapsEnable t)                          
                               ; axlUIWRedraw(nil)       
                               axlVisibleUpdate(t)
                              
                              
                               ))
                 ))
                     ))
             
    /* ---------------------------------
    open/close the layer
    --------------------------------- */          
    defun( OporCllayer (onelayerlist)

              if(axlIsVisibleLayer(car(onelayerlist))
                 then
                     foreach(onelayer onelayerlist
                     axlVisibleLayer(onelayer nil)
                     )
                     else
                     foreach(onelayer onelayerlist
                     axlVisibleLayer(onelayer t)
                     )                 
                     )
          )
              
              
              
              
              
    /* ---------------------------------
    Create the display layer list
    --------------------------------- */

    defun( Display_currentls (curlayers)
          let(()
        disetchlayerlist = crlistneed()
            axlVisibleDesign(nil)
            foreach(one disetchlayerlist
                    if(
                        curlayers == car(one)
                        then
                        willdl = cdr(one)
                          foreach(dl willdl
                          axlVisibleLayer(dl t)
                                         )
                       ; axlDBDisplayControl('filledPadsEnable nil)
                       ; axlDBDisplayControl('endcapsEnable t)                                         
                              axlUIWRedraw(nil)                         
                      )
                      )
         ))

  • TA的每日心情
    擦汗
    2020-1-14 15:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
     楼主| 发表于 2015-8-4 21:11 | 只看该作者
    skill.rar (1.45 MB, 下载次数: 2)

    附件是论坛里面下载的skill集成包,有些效果如果能更好改进效果就会更好一些

    像skill有没有好的编辑与调试环境,自带的文档看起来总是感觉有点难度大

    有没有针对常见的功能能说说如何实现比较好的自动化参数设置?


    希望能以一定类似菜单的方式定义,一次性设置搞出
    [1]自定义板框,字体等常见习惯性设置
    [2]自定义板层(4层,6层或者更多层的常规勾选执行自动设置)
    [3]自定义gerber层设置(4层,6层或者更多层的常规勾选执行自动设置)[3]常用的电气,安全间距规则定义设置
    等等
    希望可以实现模板化规则设置



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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-22 07:56 , Processed in 0.078125 second(s), 27 queries , Gzip On.

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

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

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