Bonjour tout le monde, je viens d'arriver sur le forum et j'aurais besoin d'un peu d'aide. C'est ma première fois de coder sur tcl et c'est vraiment basique mon problème je pense.
Mon problème est le suivant: Je travaille sur hypermesh ( logiciel de modelisation). les components sont déjà créés. J'aimerais automatiser le fait de créer des includesfiles qui porteront le même nom que les components et ensuite migrer le corps du component dans l'includefile créé portant le même nom. c'est un code de moins de 20 lignes de code. J'ai donc essayer de le faire tant bien que mal, j'ai essayé une première méthode avec une boucle for et ensuite une deuxieme methode avec foreach mais ca ne marche pas. J'ai l'impression que ma syntaxe même n'est pas bonne. Pouvez vous m'aidez svp? j'arrive pas charger le fichier sur le site
1iere méthode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 # Ce mini programme sert dans un premier temps à créer automatiquement des includefiles par component avec la même dénomination # et ensuite dans un second temps à migrer la pièce du component a l'includefile #DEBUT DU MINI PROG # 2 données doivent être entrées pour le bon fonctionnement du prog a savoir le nombre de component a réorganiser qui sera stocké dans la variable Nbr_de_components # et aussi la liste des components qui sera stocké dans la variable liste_de_component #Definir le nombre de component set Nbr_de_components 5 #Definir la liste de components set liste_de_component {FRAME_76 FRAME_77 FRAME_78 FRAME_79 FRAME_80}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 for {set i 0} {$i < $Nbr_de_components} {incr i} { puts *startnotehistorystate {Create Include "includefile_temp"} puts *createinclude 0 "includefile_temp" "includefile_temp" 0 puts *endnotehistorystate {Create Include "includefile_temp"} puts *startnotehistorystate {Renamed Includefile from "includefile_temp" to ""[lindex $liste_de_component $i]".dat"} puts *updateinclude [expr $i + 10000] 1 ""[lindex $liste_de_component $i]"" 1 ""[lindex $liste_de_component $i]"" 0 0 puts *endnotehistorystate {Renamed Includefile from "includefile_temp" to ""[lindex $liste_de_component $i]""} puts *createmark components 1 ""[lindex $liste_de_component $i]"" puts *markmovetoincludewithcontents components 1 [expr $i + 10000] "elements nodes" }
2ieme méthode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 set i 0 foreach liste_de_component[FRAME_76 FRAME_77 FRAME_78 FRAME_79 FRAME_80] foreach liste_de_component[CLIPS_18 CLIPS_19] { puts *startnotehistorystate {Create Include "includefile_temp"} puts *createinclude 0 "includefile_temp" "includefile_temp" 0 puts *endnotehistorystate {Create Include "includefile_temp"} puts *startnotehistorystate {Renamed Includefile from "includefile_temp" to "$liste_de_component"} puts *updateinclude [expr $i + 10000] 1 "$liste_de_component" 1 "$liste_de_component" 0 0 puts *endnotehistorystate {Renamed Includefile from "includefile_temp" to "$liste_de_component"} puts *createmark components 1 "$liste_de_component" puts *markmovetoincludewithcontents components 1 [expr $i + 10000] "elements nodes" incr i 1 } #Fin du programme
Partager