Contact Form

Discussion in 'Cadence' started by eric.d.fitzsimmons, Mar 2, 2009.

  1. \a leHiCreateContact()
    \a le0ContactForm->contactType->value = "v12"
    \a le0ContactForm->rows->value = Xcut
    \a le0ContactForm->columns->value = Ycut

    I have some code that helps "fill out" the contact form. My question
    is I did a set up today and replay file that from above wasnt'
    working. I played around with the Creat Contact form and realized
    when filling out rows->values, for example, it was calling
    le2contactform. I resetup and it was fine.

    Oh boy, can someone tell me why it changed from 0 to 2? Anyway I can
    write code to detect this and store it in a variable, or something to
    protect against this?

    Thank you,
    Eric
     
    eric.d.fitzsimmons, Mar 2, 2009
    #1
  2. Eric,

    The contact form needs to be unique per technology, and so it is built on the
    fly (hence the varying symbol names). So making assumptions on the name of the
    form symbol isn't wise - it could be le1ContactForm, le23ContactForm - how would
    you know? Finding the form handle for a technology requires a private function,
    so I don't think that going down that route is a good idea.

    There's a clean way of doing what you want without needing replay files:

    procedure(EFcreateContact(contactType Xcut Ycut)
    leSetEnv("contactResetRowCol" nil)
    leSetEnv("contactName" contactType)
    ; I think your Xcut and Ycut were back to front?
    leSetEnv("contactRows" Ycut)
    leSetEnv("contactColumns" Xcut)
    leHiCreateContact()
    )

    And then you can call EFcreateContact("v12" 4 3)

    to get 4 horizontal cuts versus 3 vertical cuts.

    Regards,

    Andrew.
     
    Andrew Beckett, Mar 3, 2009
    #2
  3. Andrew,

    I was able to clear up that script. I have another that is not front
    to back, but changes the value of the via rows and columns while the
    Create Contact from is up. Can you give me some help here. You are
    saving my arse as I have given this code to others on my team.

    Thank you for your help,
    Eric

    procedure(IncrementViaRow()
    le0ContactForm->rows->value = le0ContactForm-
    );

    procedure(DecrementViaRow()
    le0ContactForm->rows->value = le0ContactForm-
    );

    procedure(IncrementViaColumn()
    le0ContactForm->columns->value =
    le0ContactForm->columns->value+(1*1);

    );

    procedure(DecrementViaColumn()
    le0ContactForm->columns->value =
    le0ContactForm->columns->value-(1*1);
    );
     
    eric.d.fitzsimmons, Mar 3, 2009
    #3
  4. Eric,

    Are these functions to be called while the create contact form is open, or
    before the form is launched?

    Regards,

    Andrew.
     
    Andrew Beckett, Mar 3, 2009
    #4
  5. Andrew,

    I have to programs that are changing forms after they are up that need
    a new solution.

    One
    =====================================
    procedure(ABlayerChange(layer)
    le0PathForm->changePathLayer->value =
    car(
    hiMakeLPChoiceList(
    techGetTechFile(geGetEditCellView())
    list(list(layer "drawing"))
    )
    )
    )

    Second program
    ================


    procedure(IncrementViaRow()
    le0ContactForm->rows->value = le0ContactForm-
    );

    procedure(DecrementViaRow()
    le0ContactForm->rows->value = le0ContactForm-
    );

    procedure(IncrementViaColumn()
    le0ContactForm->columns->value =
    le0ContactForm->columns->value+(1*1);

    );

    procedure(DecrementViaColumn()
    le0ContactForm->columns->value =
    le0ContactForm->columns->value-(1*1);
    );

    Is there a way to get the le(number)ContactForm as the form comes up
    and store it in a variable.

    Thank you for saving my arse!@
    Eric
     
    eric.d.fitzsimmons, Mar 3, 2009
    #5
  6. These are called AFTER the forms are up. I use these codes to change
    the rows/columns while the create contact form is up.

    Thank you!
    Eric
     
    eric.d.fitzsimmons, Mar 3, 2009
    #6
  7. Andrew,

    I have two more skill programs. One that is using le0PathForm to
    change the path layer while the Create Path form is active(to perform
    metal transitions). The second is using le0contactForm to change via
    rows and columns while the Create Contact form is active. Both allow
    user to change values without touching the form. Via rows and
    columns are attached to the "roll" on the mouse to decrement and
    increment cuts.

    Thank you for your expertise and help,
    Eric
     
    eric.d.fitzsimmons, Mar 4, 2009
    #7
  8. Eric,

    You could just use:

    hiGetCurrentForm()->columns->value...

    and so on - i.e. use hiGetCurrentForm() anywhere you have le0ContactForm.

    Andrew.
     
    Andrew Beckett, Mar 4, 2009
    #8
  9. Andrew,

    That fixed everything!

    I can't say how much I appreciate your support. Does Cadence take
    consumer/user feedback? You are a great asset to Cadence.

    Have a nice day,
    Eric
     
    eric.d.fitzsimmons, Mar 4, 2009
    #9
  10. Thanks!

    We do when doing official support via sourcelink.cadence.com - there are surveys
    sent out ofter a service request.

    However comp.cad.cadence is just something I (and a few others within Cadence)
    do for fun because it helps the community at large, so I guess there's no easy
    way to send feedback...

    Cheers,

    Andrew.
     
    Andrew Beckett, Mar 4, 2009
    #10
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.