• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Allegro X Scripting - Skill
  3. Getting values by form CHECKLIST

Stats

  • Replies 6
  • Subscribers 18
  • Views 10447
  • Members are here 0
More Content

Getting values by form CHECKLIST

vimaldevlpr
vimaldevlpr over 4 years ago

hi,

Any body help me out this kind of loop CHECKLIST case.

In input selected corresponding part value want to print any one please help me out from this.

Input -                                                                                               Output - 

                                                                                                                     aaa ccc

Code:

  list1 = '("aaa" "bbb" "ccc" "ddd")
  
  datainp = 5
  foreach(listlp list1
   adata = sprintf(nil, "TEXT \"%s\"\n", listlp)
   fprintf(backform adata)
   adt = sprintf(nil, "TLOC 5 %d\n", datainp)
   fprintf(backform adt)
   
   datainp = datainp + 5
   fprintf(backform "ENDTEXT\n")
  )
  
  datainp2 = 5
  foreach(listlp3 list1
   fprintf(backform "FIELD Checkdt\n")
   adt2 = sprintf(nil, "FLOC 25 %d\n", datainp2)
   fprintf(backform adt2)
   fprintf(backform "CHECKLIST \"Check\" \n")
   fprintf(backform "ENDFIELD\n")
   fprintf(backform "\n")
   datainp2 = datainp2 + 5
  )

fprintf(backform "FIELD TOCHECK\n")
  fprintf(backform "FLOC 13 1\n")
  fprintf(backform "MENUBUTTON \"Checking\" 10 4\n")
  fprintf(backform "ENDFIELD\n")
  fprintf(backform "\n")

(defun back_Action (backform)
 (case backform->curField
  ("TOCHECK"
   ("Checkdt"
    if(backform->curValue then
           

         ;Help me to get the corresponding value


    )
   )
  )
 )
 axlFormDisplay(backform)
)

  • Cancel
  • Sign in to reply
  • DavidJHutchins
    DavidJHutchins over 4 years ago

    Try replacing:

      foreach(listlp3 list1
       fprintf(backform "FIELD Checkdt\n")

    With the following:

      foreach(listlp3 list1
       fprintf(backform "FIELD %s\n",listlp3)d

    And then replace:

    (defun back_Action (backform)
     (case backform->curField
      ("TOCHECK"
       ("Checkdt"
        if(backform->curValue then

    With the following:

    foreach(listlp3 list1

        axlFormSetField backform listlp3 nil)

    )

    procedure(back_Action(backform)

        foreach(listlp3 list1

            when( (axlFormGetField backfrom listlp3) print(listlp3))

            print(" ")

        )

        println(" ")

    )

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • vimaldevlpr
    vimaldevlpr over 4 years ago in reply to DavidJHutchins

    Hi David,

    Thanks for the reply I tried to replace your code but it shows me ERROR - E- *Error* eval: unbound variable - backfrom.

    I will attach edited code below can you please recorrect it.

    Code -

    (defun chk ()
     createbackform()
     backform()
    )
    (defun backform ()
     backform=axlFormCreate( (gensym) backform_file nil 'back_Action t)
     axlFormDisplay(backform)
    )
    (defun createbackform ()
     drain()
      backform_file = "back.form"
      backform = outfile(backform_file "w")
      fprintf(backform "FILE_TYPE=FORM_DEFN VERSION=2\n")
      fprintf(backform "FORM\n")
      fprintf(backform "FIXED\n")
      fprintf(backform "PORT 42 10\n")
      fprintf(backform "HEADER \"UI CHECK\"\n")
      fprintf(backform "\n")
      fprintf(backform "TILE\n")
      
      list1 = '("aaa" "bbb" "ccc" "ddd")
      
      datainp = 5
      foreach(listlp list1
       adata = sprintf(nil, "TEXT \"%s\"\n", listlp)
       fprintf(backform adata)
       adt = sprintf(nil, "TLOC 5 %d\n", datainp)
       fprintf(backform adt)
       
       datainp = datainp + 5
       fprintf(backform "ENDTEXT\n")
      )
      
      datainp2 = 5
      foreach(listlp3 list1
       fprintf(backform "FIELD %s\n", listlp3)
       adt2 = sprintf(nil, "FLOC 25 %d\n", datainp2)
       fprintf(backform adt2)
       fprintf(backform "CHECKLIST \"Check\" \n")
       fprintf(backform "ENDFIELD\n")
       fprintf(backform "\n")
       datainp2 = datainp2 + 5
      )
      
      ;fprintf(backform "FIELD Checkdt\n")
      ;fprintf(backform "FLOC 10 20 \n")
      ;fprintf(backform "CHECKLIST \"Check\" \n")
      ;fprintf(backform "ENDFIELD\n")
      
      fprintf(backform "FIELD TOCHECK\n")
      fprintf(backform "FLOC 13 1\n")
      fprintf(backform "MENUBUTTON \"Checking\" 10 4\n")
      fprintf(backform "ENDFIELD\n")
      fprintf(backform "\n")
      
      fprintf(backform "\n")
      fprintf(backform "ENDTILE\n")
      fprintf(backform "\n")
      fprintf(backform "ENDFORM\n")
     close(backform)
    )
    (defun back_Action (backform)
     (case backform->curField
      ("TOCHECK"
        foreach(listlp3 list1
         (axlFormSetField backform listlp3 nil)
        )
           foreach(listlp3 list1
         when((axlFormGetField backfrom listlp3) print(listlp3))
         print(" ")
        )
         println(" ")
      )
     )
     axlFormDisplay(backform)
    )
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • DavidJHutchins
    DavidJHutchins over 4 years ago

    try the modified code shown  below:

    (setq list1 list("aaa" "bbb" "ccc" "ddd"))
    (setq backform_file "back.form")
    procedure(chk()
    createbackform()
    backform_run()
    )
    procedure(backform_run()
    let((backform)
    (backform = axlFormCreate(gensym() backform_file nil 'back_Action t))
    axlFormDisplay(backform)
    )
    )
    procedure(createbackform()
    let((backform datainp adata adt datainp2 adt2)
    (backform = outfile(backform_file "w"))
    fprintf(backform "FILE_TYPE=FORM_DEFN VERSION=2\n")
    fprintf(backform "FORM\n")
    fprintf(backform "FIXED\n")
    fprintf(backform "PORT 42 10\n")
    fprintf(backform "HEADER \"UI CHECK\"\n")
    fprintf(backform "\n")
    fprintf(backform "TILE\n")
    (datainp = 5)
    foreach(listlp list1
    (adata = sprintf(nil "TEXT \"%s\"\n" listlp))
    fprintf(backform adata)
    (adt = sprintf(nil "TLOC 5 %d\n" datainp))
    fprintf(backform adt)
    (datainp = (datainp + 5))
    fprintf(backform "ENDTEXT\n")
    )
    (datainp2 = 5)
    foreach(listlp3 list1
    fprintf(backform "FIELD %s\n" listlp3)
    (adt2 = sprintf(nil "FLOC 25 %d\n" datainp2))
    fprintf(backform adt2)
    fprintf(backform "CHECKLIST \"Check\" \n")
    fprintf(backform "ENDFIELD\n")
    fprintf(backform "\n")
    (datainp2 = (datainp2 + 5))
    )
    fprintf(backform "FIELD TOCHECK\n")
    fprintf(backform "FLOC 13 1\n")
    fprintf(backform "MENUBUTTON \"Checking\" 10 4\n")
    fprintf(backform "ENDFIELD\n")
    fprintf(backform "\n")
    fprintf(backform "\n")
    fprintf(backform "ENDTILE\n")
    fprintf(backform "\n")
    fprintf(backform "ENDFORM\n")
    drain()
    close(backform)
    )
    )
    procedure(back_Action(backform)
    case((backform->curField)
    ("TOCHECK"
    foreach(listlp3 list1
    when(axlFormGetField(backform listlp3)
    print(listlp3)
    )
    print(" ")
    )
    println(" ")
    )
    )
    axlFormDisplay(backform)
    )

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • vimaldevlpr
    vimaldevlpr over 4 years ago in reply to DavidJHutchins

    Hi david thanks for the reply one last help please.

    I would like to get like this output shown below. for me it shows nil I will attach my code below can you please recorrect my code. please

    Input -                                                                                                                             Output -

                                                                                                                                                       aaa, 30.00

                                                                                                                                                       ccc, 40.00

    code -

    (setq list1 list("aaa" "bbb" "ccc" "ddd"))
    (setq viamod_lyrform_file "viamod_lyr.form")
    procedure(chk_lyr()
    createviamod_lyrform()
    viamod_lyrform_run()
    )
    procedure(viamod_lyrform_run()
    let((viamod_lyrform)
    (viamod_lyrform = axlFormCreate(gensym() viamod_lyrform_file nil 'viamod_lyr_Action t))
    axlFormDisplay(viamod_lyrform)
    )
    )
    procedure(createviamod_lyrform()
    let((viamod_lyrform datainp adata adt datainp2 adt2)
    (viamod_lyrform = outfile(viamod_lyrform_file "w"))
    fprintf(viamod_lyrform "FILE_TYPE=FORM_DEFN VERSION=2\n")
    fprintf(viamod_lyrform "FORM\n")
    fprintf(viamod_lyrform "FIXED\n")
    fprintf(viamod_lyrform "PORT 42 10\n")
    fprintf(viamod_lyrform "HEADER \"UI CHECK\"\n")
    fprintf(viamod_lyrform "\n")
    fprintf(viamod_lyrform "TILE\n")
    (datainp = 5)
    foreach(listlp list1
    (adata = sprintf(nil "TEXT \"%s\"\n" listlp))
    fprintf(viamod_lyrform adata)
    (adt = sprintf(nil "TLOC 5 %d\n" datainp))
    fprintf(viamod_lyrform adt)
    (datainp = (datainp + 2))
    fprintf(viamod_lyrform "ENDTEXT\n")
    )
    (datainp2 = 5)
    foreach(listlp3 list1
    fprintf(viamod_lyrform "FIELD %s\n" listlp3)
    (adt2 = sprintf(nil "FLOC 25 %d\n" datainp2))
    fprintf(viamod_lyrform adt2)
    ;fprintf(viamod_lyrform "CHECKLIST \n")
    fprintf(viamod_lyrform "REALFILLIN 5 5\n")
    fprintf(viamod_lyrform "REALMIN 1.0\n")
    fprintf(viamod_lyrform "REALMAX 1000.000000\n")
    fprintf(viamod_lyrform "ENDFIELD\n")
    fprintf(viamod_lyrform "\n")
    (datainp2 = (datainp2 + 2))
    )
    fprintf(viamod_lyrform "FIELD TOCHECK\n")
    fprintf(viamod_lyrform "FLOC 13 1\n")
    fprintf(viamod_lyrform "MENUBUTTON \"Checking\" 10 4\n")
    fprintf(viamod_lyrform "ENDFIELD\n")
    fprintf(viamod_lyrform "\n")
    fprintf(viamod_lyrform "\n")
    fprintf(viamod_lyrform "ENDTILE\n")
    fprintf(viamod_lyrform "\n")
    fprintf(viamod_lyrform "ENDFORM\n")
    drain()
    close(viamod_lyrform)
    )
    )
    procedure(viamod_lyr_Action(viamod_lyrform)
    sym_data = nil
    case((viamod_lyrform->curField)
    ("TOCHECK"
    foreach(listlp3 list1
    when(axlFormGetField(viamod_lyrform listlp3)
     StubVal = viamod_lyrform->curValue
     finalrep = sprintf(nil, "%s,%L", listlp3, StubVal)
     print(finalrep)
     when(finalrep push(finalrep sym_data))
    )
    ;print(" ")
    )
    ;println(" ")
    )
    )
    axlFormDisplay(viamod_lyrform)
    sym_wrkng()
    )
    procedure(sym_wrkng()
    print(sym_data)
    )
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • DavidJHutchins
    DavidJHutchins over 4 years ago

    try the modified code below:

    procedure(viamod_lyr_Action(viamod_lyrform)
    let((StubVal finalrep)
    case((viamod_lyrform->curField)
    ("TOCHECK"
    foreach(listlp3 list1
    when((axlFormGetField viamod_lyrform listlp3)
    (StubVal = (axlFormGetField viamod_lyrform listlp3))
    (finalrep = sprintf(nil "%s,%L" listlp3 StubVal))
    ;print(finalrep)
    when(StubVal > 0.0
    ;push(finalrep sym_data)
    println(finalrep)
    )
    )
    )
    )
    )
    (axlFormDisplay viamod_lyrform)
    ;sym_wrkng()
    )
    )

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
>
Cadence Guidelines

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information