• 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. oascan application

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 5045
  • 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

oascan application

aryansingh
aryansingh over 1 year ago

Hi Everyone, Can i get some idea over how to use oascan application by the help of skill. There is a scenario where i am using cdsScanLibUI() but got stuck in selecting OK function & closing that dailog Box of oascan/repair. 
one more thing is that while running through skill it is popping up previously filled data. How to overcome this ?


  • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago

    I'm not aware of any reason why pressing OK would cause this to get "stuck". Please contact customer support (submit a case after logging in).

    The form intentionally re-uses the previous values the next time it is launched. You could workaround that by creating a wrapper function:

    procedure(CCFcdsScanLibUI()
      unless(boundp('cdsScanLibForm) && hiIsFormDisplayed(cdsScanLibForm)
        cdsScanLibForm='unbound
      )
      cdsScanLibUI()
    )

    This checks to see if the form is already displayed, and if not, it resets the form variable to force the form to be recreated (which would discard any existing values on the form).

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • AurelBuche
    AurelBuche over 1 year ago in reply to Andrew Beckett

    Hi Andrew,

    I believe "stuck" in this case means that the form is modal and blocks the execution of the SKILL commands

    In case you need to write SKILL interacting with forms, you can use the following workaround : 

    (defun fill_and_close_cdsScanLibForm (@rest _)
      "Properly fill form arguments and click OK"
      (let ( (form (symeval 'cdsScanLibForm))
             )
        (if (not (hiIsForm form)) (warn "cdsScanLibForm:%A is no valid form\n" form)
          ;; Set parameters you need
          ;form->lib... = ""
    
          ;; Click OK
          (hiFormDone form)
          )))
    
    (progn
      (hiEnqueueCmd "(fill_and_close_cdsScanLibForm)")
      (cdsScanLibUI)
      (info "This message never gets displayed without `hiEnqueueCmd' call\n")
      )
    

    The queued command (using hiEnqueueCmd) is buffered and evaluated after the form is displayed.

    But please note that this only a workaround, the best approach is to use directly the API (In your case it the Unix utility might be an option) 

    The only relevant case to do so is when the functions behind the form are private.

    Otherwise it is quite dumb to programmatically display a human interface and mimic human behavior instead of directly doing the job.

    Cheers

    Aurélien

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago in reply to AurelBuche

    Thanks Aurélien. That wasn't clear to me. In IC23.1 it's actually changed to be a layout form and a modeless one at that...

    aryansingh Given that the SKILL code for this utility is given as a sample in the installation (and you have to load it to use it), you can of course change it to behave how you want.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • aryansingh
    aryansingh over 1 year ago in reply to AurelBuche

    thanks, @AurelBuche

    It is not working at my end. I am Trying to write a skill code for this GUI tool...and I facing issue to close this form, as I am using this in repeat mode for list of cells.

    can you please help me how to automatically close this form and run for a different cell.

    aryan

    • Cancel
    • Vote Up +1 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