Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
SKILL
:
dev_skill.il
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(gui() tmp2 = '() cv = geGetWindowCellView() terminal_list = sort(cv~>terminals~>name nil) ordonner_terminal = sort( terminal_list 'alphalessp ) for(i 0 length(ordonner_terminal)-1 ;id = leSearchHierarchy(cv cv~>bBox 0 "label" list(list("text" "==" nth(i ordonner_terminal) ))) id = leSearchHierarchy(cv cv~>bBox 0 "pin" list(list("term name" "==" nth(i ordonner_terminal) ))) tmp2 = append1(tmp2 car(id)) ) longueur = length(ordonner_terminal) champs_datas = '() y=0 for(i 0 longueur-1 nom = nth(i tmp2)~>net~>name printf(" >>>>** : %s \n" nom) id_nom = stringToSymbol(sprintf(nil "nom_%d" i)) id_nom = hiCreateLabel( ?name stringToSymbol(sprintf(nil "nom_pin_%d" i)) ?labelText nom ) champs_datas = append1(champs_datas list(id_nom 10:y+10 20:50 )) y = y + 30 ) y=0 for(i 0 longueur-1 box = nth(i tmp2)~>bBox x1 = car(car(box)) y1 = cadr(car(box)) x2 = car(cadr(box)) y2 = cadr(cadr(box)) largeur = abs(abs(x2) - abs(x1) ) hauteur = abs(abs(y2) - abs(y1) ) id_largeur = stringToSymbol(sprintf(nil "largeur_%d" i)) id_largeur = hiCreateFloatField( ?name stringToSymbol(sprintf(nil "largeur_pin_%d" i)) ?prompt "" ?value largeur ?defValue 10.0 ?callback "check_champ( Form_sec )" ;hiGetCurrentForm() ;"println(\"float changed\" )" ?range list(0 100) ) champs_datas = append1(champs_datas list(id_largeur 100:y+20 60:50 )) y = y + 30 ) y=0 for(i 0 longueur-1 box = nth(i tmp2)~>bBox x1 = car(car(box)) y1 = cadr(car(box)) x2 = car(cadr(box)) y2 = cadr(cadr(box)) largeur = abs(abs(x2) - abs(x1)) hauteur = abs(abs(y2) - abs(y1)) id_hauteur = stringToSymbol(sprintf(nil "hauteur_%d" i)) id_hauteur = hiCreateFloatField( ?name stringToSymbol(sprintf(nil "hauteur_pin_%d" i)) ?prompt "" ?value hauteur ?defValue 10.0 ?callback "check_champ( Form_sec )" ?range list(0 100) ) champs_datas = append1(champs_datas list(id_hauteur 180:y+20 60:50 )) y = y + 30 ) y=0 for(i 0 longueur-1 position = "left" id_position = stringToSymbol(sprintf(nil "position_%d" i)) id_position = hiCreateCyclicField( ?name stringToSymbol(sprintf(nil "position_pin_%d" i)) ?prompt " " ?choices list("left" "right" "top" "bottom") ?value position ?callback "println( \"position change\" )" ) champs_datas = append1(champs_datas list(id_position 350:y+20 200:50 10)) y = y + 30 ) y=0 for(i 0 longueur-1 couche = "METAL1" id_couche = stringToSymbol(sprintf(nil "couche_%d" i)) id_couche = hiCreateCyclicField( ?name stringToSymbol(sprintf(nil "couche_pin_%d" i)) ?prompt " " ?choices list("METAL1" "METAL2" "METAL3" "METAL4") ?value couche ?callback "println( \"couche change\" )" ) champs_datas = append1(champs_datas list(id_couche 450:y+20 200:50 10)) y = y + 30 ) id_space = hiCreateFloatField( ?name 'spacing ?prompt "Espace:" ?value 0.28 ?defValue 0.28 ?range list(0 10000) ) champs_datas = append1(champs_datas list(id_space 10:y+20 130:80 50)) y = y + 60 id_style = hiCreateCyclicField( ?name 'text_style ?choices '("stick" "roman" "gothic") ?prompt "Style :" ?value "stick" ?defValue "stick" ) champs_datas = append1(champs_datas list(id_style 10:y+20 10:180 100)) id_taille = hiCreateFloatField( ?name 'taille ?prompt "Taille:" ?value 0.28 ?defValue 0.28 ?range list(0 10000) ) champs_datas = append1(champs_datas list(id_taille 10:y+20 130:80 50)) y = y + 60 btn_place = hiCreateButton( ?name 'btn_place ?buttonText "Placer pins" ?callback "placer()" ) champs_datas = append1(champs_datas list(btn_place 200:y+50 110:30 10)) Form_appli = hiCreateAppForm( ?name 'Form_sec ?formTitle "PIN Definition : @ patrice.delpy" ?fields champs_datas ?callback 'verifier_focus ?initialSize t ?unmapAfterCB nil ) hiDisplayForm(Form_appli) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(placer() cpt_gauche=0 cpt_droite=0 cpt_haut=0 cpt_bas=0 espace = 0.0 H_precedent = 0.0 L_precedent = 0.0 minX=0 minY=0 maxX=200 maxY=100 tmp3 = '() espace = Form_appli~>spacing~>value style = Form_appli~>text_style~>value for(i 0 length(ordonner_terminal)-1 sprintf(largeur "Form_appli~>largeur_pin_%d~>value" i) L = evalstring(largeur) sprintf(hauteur "Form_appli~>hauteur_pin_%d~>value" i) H = evalstring(hauteur) sprintf(position "Form_appli~>position_pin_%d~>value" i) pos = evalstring(position) sprintf(couche "Form_appli~>couche_pin_%d~>value" i) layer = evalstring(couche) case( pos ("left" printf(" LEFT \n" ) if(cpt_gauche==0 then x1=minX y1=minY cpt_gauche++ H_precedent=H else x1=x1 y1=y1+H_precedent+espace cpt_gauche++ H_precedent=H );if ) ("right" printf(" right \n" ) if(cpt_droite==0 then x1=maxX-L y1=minY cpt_droite++ H_precedent=H else x1=x1 y1=y1+H_precedent+espace cpt_droite++ H_precedent=H );if ) ("top" printf(" top \n" ) if(cpt_haut==0 then x1=minX y1=maxY-H cpt_haut++ L_precedent=L else x1=x1+L_precedent+espace y1=maxY-H cpt_haut++ L_precedent=L );if ) ("bottom" printf(" bottom \n" ) if(cpt_bas==0 then x1=minX y1=minY L_precedent=L cpt_bas++ else x1=x1+L_precedent+espace y1=y1 L_precedent=L cpt_bas++ );if ) ); case delta_x=x1+L ;x0 delta_y=y1+H ;y0 couple=list(x1:y1 delta_x:delta_y) printf(" nouvelle taille %L \n" couple) nth(i tmp2)~>bBox=couple ) for(i 0 length(ordonner_terminal)-1 id = leSearchHierarchy(cv cv~>bBox 0 "label" list(list("text" "==" nth(i ordonner_terminal) ))) tmp3 = append1(tmp3 car(id)) ) for(i 0 length(ordonner_terminal)-1 box = nth(i tmp2)~>bBox centreX=((caadr(box) - caar(box))/2.0) + caar(box) centreY=((cadadr(box) - cadar(box))/2.0) + cadar(box) nth(i tmp3)~>xy=list(centreX centreY) nth(i tmp3)~>lpp = list("METAL1" "pin") nth(i tmp3)~>height = 0.2 nth(i tmp3)~>font = style ;printf(" Centre %L %L\n" centreX centreY) ) printf(" Placement is done ... \n" ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(traitement_pins() cpt_gauche=0 cpt_droite=0 cpt_haut=0 cpt_bas=0 espace=1 position = "bottom" minX=0 minY=0 L = 0.4 H = 0.6 cv=geGetWindowCellView() tmp1 = '() tmp2 = '() terminal_list = sort(cv~>terminals~>name nil) ordonner_terminal = sort( terminal_list 'alphalessp ) for(i 0 length(ordonner_terminal)-1 id = leSearchHierarchy(cv cv~>bBox 0 "pin" list(list("term name" "==" nth(i ordonner_terminal) ))) tmp1 = append1(tmp1 car(id)) ) for(i 0 length(ordonner_terminal)-1 printf(" ** : %s \n" nth(i tmp1)~>pin~>term~>name ) ) for(i 0 length(terminal_list)-1 case( position ("left" if(cpt_gauche==0 then x1=minX y1=minY cpt_gauche++ H_precedent=H else x1=x1 y1=y1+H_precedent+espace cpt_gauche++ H_precedent=H );if ) ("right" if(cpt_droite==0 then x1=maxX-L y1=minY cpt_droite++ H_precedent=H else x1=x1 y1=y1+H_precedent+espace cpt_droite++ H_precedent=H );if ) ("top" if(cpt_haut==0 then x1=minX y1=maxY-H cpt_haut++ L_precedent=L else x1=x1+L_precedent+espace y1=maxY-H cpt_haut++ L_precedent=L );if ) ("bottom" if(cpt_bas==0 then x1=minX y1=minY L_precedent=L cpt_bas++ else x1=x1+L_precedent+espace y1=y1 L_precedent=L cpt_bas++ );if ) ); case delta_x=x1+L ;x0 delta_y=y1+H ;y0 couple=list(x1:y1 delta_x:delta_y) printf(" nouvelle taille %L \n" couple) nth(i tmp1)~>bBox=couple ) for(i 0 length(ordonner_terminal)-1 id = leSearchHierarchy(cv cv~>bBox 0 "label" list(list("text" "==" nth(i tmp1)~>pin~>term~>name ))) tmp2 = append1(tmp2 car(id)) ) for(i 0 length(ordonner_terminal)-1 box = nth(i tmp1)~>bBox centreX=((caadr(box) - caar(box))/2.0) + caar(box) centreY=((cadadr(box) - cadar(box))/2.0) + cadar(box) nth(i tmp2)~>xy=list(centreX centreY) nth(i tmp2)~>lpp = list("METAL1" "pin") nth(i tmp2)~>height = 0.2 ;printf(" Centre %L %L\n" centreX centreY) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(extraire() tmp2 = '() cv = geGetWindowCellView() terminal_list = sort(cv~>terminals~>name nil) ordonner_terminal = sort( terminal_list 'alphalessp ) for(i 0 length(ordonner_terminal)-1 id = leSearchHierarchy(cv cv~>bBox 0 "label" list(list("text" "==" nth(i ordonner_terminal) ))) tmp2 = append1(tmp2 car(id)) ) ;gui(tmp2) )