\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, 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, 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, Are these functions to be called while the create contact form is open, or before the form is launched? Regards, Andrew.
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
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
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, You could just use: hiGetCurrentForm()->columns->value... and so on - i.e. use hiGetCurrentForm() anywhere you have le0ContactForm. Andrew.
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
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.