• 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. Custom IC SKILL
  3. How to Load the Forms items/Menus automatically by text...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 143
  • Views 4481
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to Load the Forms items/Menus automatically by text file (using load button on form) in skill !!!

Sonu Chopra
Sonu Chopra over 5 years ago

Hello Everyone,

I have a query regarding the loading of skill forms items/Menu's automatically . As in some of tools the forms items can be loaded automatically by text file (usually called runset file & it stored the value of all the form items),

Can we do the similar thing in skill too ? Can we save the skill form items/Menus in a text file or in some other way and load it later on (using load button in form itself) .

For Example :

I am explaining the above query with an example : In the Below Form I want to load the items/Menu based on the text file (run set file) which stored the values of all the form items.

Can you please provide some help on this how we can do this?

Regards

Sonu

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 5 years ago

    You'd have to write code specific to your form to do this. See this example which has an option to save/load a template for inspiration.

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Sonu Chopra
    Sonu Chopra over 4 years ago in reply to Andrew Beckett

    Hello Andrew,

    I am posting my query in my existing thread as query is completely related to it (So I didn't have to add the information again).

    I was able to Load/Save the Runset by clicking the Load/Save Button and its working Perfectly Fine. Thanks for help for the last time.

    Now , We Want to go 1 first further in automation by loading all the Runset files for all forms automatically through a script without any user invention (No Need of Clicking of Load for loading the Runset and OK/Apply

    Button for Form Callback).for that we are adding additional parameter in Runset File Such as Form Symbol to Display the Form and Access it Fields

     I Tried to solve this problem by 2 Approaches but I  am Facing a lot of issues and not able to solve or understand how its can be done :-

    1. Blocking Nature of Form :- Blocking Nature of Form is by Default and to avoid this we have set ?dontBlock argument as t which immediately return t after hiDisplayForm Command otherwise it was not executing

    below remaining code . But As we set this ?dontBlock t and if I use hiCurrentForm() in my script now it return nil which means i am not able to access form now or its out of Focus. Can you please confirm this Point ?

    2. Storing Form Symbol Name in Runset File :- As we have form Symbol in Runset File so I used get function  to Extract form Symbol and then applying ~> or -> Field Parameters which even Doesn't Work.

    For Example :-  Form Symbol is Stored As an Additional List as disembodied property List 

    Runset File Contents :

    RunsetParameter = '( 'Paramters_List

    library_Name_Gen "DTK_Qacells_Lib"

    library_Name_Dg "DTK_Qacells_Lib"

    width_Gen 0.8

    length_Gen 0.9

    grid_Gen 0.005

    x_Ref_Gen 1.0

    y_Ref_Gen -4.0

    x_Ref_Testcase 5.0

    y_Ref_Testcase 5.0

    tolerance 1.0

    loc_Enc_Layer1 0.01

    loc_Enc_Layer2 0.01

    overwrite_Qacell "Yes"

    )

    RunsetAddParameter = '( 'Add_Paramters_List

    form_Name general_Var_Form

    )

     Script to Load Form Automatically with Issues Highlighted :- I am facing issues in the Following Line as shown Below .Can you Suggest Something on This ?

    if(General_Runset_File != nil then

    load(strcat(runset_Path car(General_Runset_File)))

    hiDisplayForm(get(RunsetAddParameter "form_Name"))

    Form_Str = get(RunsetAddParameter "form_Name")

    Form_Str~>fieldList  --------------------------------------------------------------> Doesn't Work and Return Nil

    or get(RunsetAddParameter "form_Name")~>fieldList ----------------------> Doesn't Work and Return Nil

     loadi(strcat(getShellEnvVar("DTKROOT") "/skill/Skill_DUV_Scripts/Load_Template_Function.il"))

    hiFormDone(Form_Str)

    Regards

    Sonu

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to Sonu Chopra

    Sonu,

    It's going to involve too much guess work to try to figure out how you've defined your code, what is going on and so on. I rather doubt it's necessary to display the forms in order to initialise them.

    My suggestion is that you contact customer support for this, and provide all the code, rather than hoping that somebody will be able to read between the lines and guess what implementation decisions you've made so far from just a few selected pieces of information. I certainly can't guess (or rather it's going to be a load of work to try to figure out what you've done here from what you've said).

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Sonu Chopra
    Sonu Chopra over 4 years ago in reply to Andrew Beckett

    Hello Andrew,

    I agree with you i will contact customer support with details info as you mentioned.

    Just one point if you have any suggestion/Advice on this point

    can you we please suggest how i can load the Form without Displaying them ?

    As my Load Procedure invovle hiGetCurrentForm() to make it generic for all form . If I will not Display them then hiGetCurrentForm() will return nil ?

    There is any other way to do that ?

    Regards

    Sonu

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Sonu Chopra
    Sonu Chopra over 4 years ago in reply to Andrew Beckett

    Hello Andrew,

    I agree with you i will contact customer support with details info as you mentioned.

    Just one point if you have any suggestion/Advice on this point

    can you we please suggest how i can load the Form without Displaying them ?

    As my Load Procedure invovle hiGetCurrentForm() to make it generic for all form . If I will not Display them then hiGetCurrentForm() will return nil ?

    There is any other way to do that ?

    Regards

    Sonu

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to Sonu Chopra

    If your load procedure is defined as:

    procedure(MyLoadTemplate(form)
       ...
       ; use the form argument passed in to interact with the form
    )

    Then from the button on the form you can call MyLoadTemplate(hiGetCurrentForm()), but when called procedurally, you can call MyLoadTemplate(get(RunsetAddParameter "form_Name")) .

    You might also need to use hiInstantiateForm() after creating the form with hiCreateAppForm etc, if you're trying to interact with the form but you've not displayed it yet - it depends on what you're doing (this is sometimes necessary). That builds all the UI structures, but doesn't actually display it.

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

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